{"version":3,"file":"yz_custom_element.umd.cjs","sources":["../../../node_modules/.pnpm/@vue+shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../../node_modules/.pnpm/@vue+reactivity@3.5.13/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../../node_modules/.pnpm/@vue+runtime-core@3.5.13/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../../node_modules/.pnpm/@vue+runtime-dom@3.5.13/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../../node_modules/.pnpm/vue@3.5.13_typescript@5.8.3/node_modules/vue/dist/vue.runtime.esm-bundler.js","../src/vnode.ts","../../core-web/dist/zyzgroup_core_web.js","../src/components/pop/Overlay.vue","../../core-common/dist/zyzgroup_core_common.js","../src/components/base/Box.vue","../src/components/pop/Pop.vue","../src/context/store/reducers/parkReducer.ts","../src/context/store/reducers/lotReducer.ts","../src/context/store/reducers/billReducer.ts","../src/context/store/reducers/orderReducer.ts","../src/context/store/reducers/plateReducer.ts","../src/context/store/reducers/groupReducer.ts","../src/context/store/reducers/userReducer.ts","../src/context/store/reducers/resultReducer.ts","../src/context/store/reducers/themeReducer.ts","../src/context/store/reducers/colorReducer.ts","../src/context/context.ts","../../../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/form/Icon.vue","../src/components/form/Button.vue","../src/components/icon/IconArrowRight.vue","../src/components/form/Calendar.vue","../src/components/base/CSSAnimation.vue","../src/components/base/Page.vue","../src/components/icon/IconWarn.vue","../src/components/form/Text.vue","../src/components/form/Textarea.vue","../src/components/rate-xg/common.ts","../src/components/rate-xg/RateXg.vue","../src/components/icon/IconClose.vue","../src/components/icon/IconEllipse.vue","../src/components/dialog/Dialog.vue","../src/components/icon/IconSuccessFullfillRound.vue","../src/components/icon/IconErrorFullfillRound.vue","../src/components/icon/IconInfoFullfillRound.vue","../src/components/icon/IconWaitingFullfillRound.vue","../src/components/icon/IconSuccessTransparentRound.vue","../src/components/icon/IconErrorTransparentRound.vue","../src/components/icon/IconInfoTransparentRound.vue","../src/components/icon/IconStatus.vue","../src/components/icon/IconLoading.vue","../src/components/form/Input.vue","../src/globalTeleport.ts","../../../node_modules/.pnpm/@vue+devtools-api@6.6.4/node_modules/@vue/devtools-api/lib/esm/env.js","../../../node_modules/.pnpm/@vue+devtools-api@6.6.4/node_modules/@vue/devtools-api/lib/esm/const.js","../../../node_modules/.pnpm/@vue+devtools-api@6.6.4/node_modules/@vue/devtools-api/lib/esm/time.js","../../../node_modules/.pnpm/@vue+devtools-api@6.6.4/node_modules/@vue/devtools-api/lib/esm/proxy.js","../../../node_modules/.pnpm/@vue+devtools-api@6.6.4/node_modules/@vue/devtools-api/lib/esm/index.js","../../../node_modules/.pnpm/vue-router@4.5.0_vue@3.5.13_typescript@5.8.3_/node_modules/vue-router/dist/vue-router.mjs","../src/components/view/ViewDocument.vue","../src/components/layout/ContentSpaceBetween.vue","../src/components/xg/Footer.vue","../src/components/plate/PlateDisplay.vue","../src/components/base/Routes.vue","../src/components/image/Image.vue","../src/components/base/Pan.vue","../src/components/image/ImageView.vue","../src/components/layout/ContentCenter.vue","../src/components/xg/Lot.vue","../src/components/layout/ContentTopCenter.vue","../src/components/icon/IconPhone.vue","../src/components/widget/CallPhone.vue","../src/components/xg/Result.vue","../src/components/layout/LayoutCenter.vue","../src/components/xg/Unlocking.vue","../src/components/xg/LoginInPhone.vue","../src/components/base/List.vue","../src/components/xg/ListDemo.vue","../src/pages/Index.vue","../src/vendors/stats/stats.js","../src/components/fps/FPSStats.vue","../src/components/form/InputRange.vue","../../../../assets/svgs/china_blank_province_map.svg","../src/pages/ShapeShowCase.vue","../src/components/base/Mouse.vue","../src/components/progress/ProgressBar.vue","../src/components/progress/PageVerticalScrollProgressBar.vue","../src/components/svg/SVGDown.vue","../src/components/form/Accordion.vue","../src/components/form/InputRangeBox.vue","../src/components/form/InputFileDrop.vue","../src/components/bg/grid/BgGrid.vue","../src/components/3d/CardFlip.vue","../src/components/form/BooleanBox.vue","../src/components/form/RadioGroup.vue","../src/components/form/CheckboxGroup.vue","../src/components/3d/Cube.vue","../src/components/pop/Popover.vue","../src/components/form/ColorPicker.vue","../src/components/svg/SVGCheck.vue","../src/components/plate/PlateMobile.vue","../src/components/hand/HandWritePanel.vue","../src/components/animate/EaseGraphDisplay.vue","../src/components/animate/EaseGroupGraphDisplay.vue","../src/components/animate/InterpolationGraphDisplay.vue","../src/components/animate/InterpolationGroupGraphDisplay.vue","../src/components/base/CSSTransition.vue","../src/components/css/BorderFocusText.vue","../src/components/css/Circle.vue","../src/components/form/Tabs.vue","../src/components/video/Video.vue","../src/components/map/MapTianditu.vue","../src/components/loading/Loading1.vue","../src/components/loading/Loading2.vue","../src/components/loading/Loading3.vue","../src/components/loading/Loading4.vue","../src/components/loading/Loading5.vue","../src/components/loading/Loading6.vue","../src/components/loading/Loading7.vue","../src/components/loading/Loading9.vue","../src/components/loading/Loading10.vue","../src/components/loading/Loading11.vue","../src/components/chat/RingText.vue","../src/components/clock/ClockFlipper.vue","../src/components/chat/RingIndicator.vue","../src/components/svg/SVGPrompt.vue","../src/components/svg/SVGQuestion.vue","../src/components/svg/SVGFail.vue","../src/components/svg/SVGSuccess.vue","../src/components/svg/SVGWaiting.vue","../src/components/svg/SVGLock.vue","../src/components/svg/SVGAdd.vue","../src/components/svg/SVGDelete.vue","../src/components/form/Switch.vue","../src/components/form/Select.vue","../src/components/form/SelectAbsolute.vue","../src/components/base/Tap.vue","../src/components/form/SlideLeftItem.vue","../src/components/form/Status.vue","../src/components/icon/IconXgEmpty.vue","../src/components/panel/Empty.vue","../src/components/rate-xg/RateXgPanel.vue","../src/pages/ComponentShowCase.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/components/base/ResizeObserver.ce.vue","../src/components/form/Icon.ce.vue","../src/components/loading/Loading1.ce.vue","../src/components/loading/Loading2.ce.vue","../src/components/loading/Loading3.ce.vue","../src/components/loading/Loading4.ce.vue","../src/components/loading/Loading5.ce.vue","../src/components/loading/Loading6.ce.vue","../src/components/loading/Loading7.ce.vue","../src/components/loading/Loading9.ce.vue","../src/components/loading/Loading10.ce.vue","../src/components/loading/Loading11.ce.vue","../src/components/form/BooleanBox.ce.vue","../src/components/form/RadioGroup.ce.vue","../src/components/form/CheckboxGroup.ce.vue","../src/components/form/Switch.ce.vue","../src/components/form/Select.ce.vue","../src/components/form/SelectAbsolute.ce.vue","../src/components/form/SlideLeftItem.ce.vue","../src/components/form/Status.ce.vue","../src/components/form/InputRange.ce.vue","../src/components/form/InputRangeBox.ce.vue","../src/components/form/Tabs.ce.vue","../src/components/progress/ProgressBar.ce.vue","../src/components/progress/PageVerticalScrollProgressBar.ce.vue","../src/components/video/Video.ce.vue","../src/components/image/Image.ce.vue","../src/components/form/Accordion.ce.vue","../src/components/map/MapTianditu.ce.vue","../src/components/hand/HandWritePanel.ce.vue","../src/components/keyboard/PlateKeyboard.ce.vue","../src/components/plate/PlateMobile.ce.vue","../src/components/keyboard/NumberKeyboard.ce.vue","../src/components/chat/RingIndicator.ce.vue","../src/components/chat/RingText.ce.vue","../src/components/clock/ClockFlipper.ce.vue","../src/components/animate/EaseGraphDisplay.ce.vue","../src/components/animate/EaseGroupGraphDisplay.ce.vue","../src/components/animate/InterpolationGraphDisplay.ce.vue","../src/components/animate/InterpolationGroupGraphDisplay.ce.vue","../src/components/3d/CardFlip.ce.vue","../src/components/3d/Cube.ce.vue","../src/components/css/Circle.ce.vue","../src/components/css/BorderFocusText.ce.vue","../src/components/Container.vue","../src/components/effect/ImageMask.ce.vue","../src/components/effect/Slide.ce.vue","../src/components/effect/SlideCorner.ce.vue","../src/components/effect/LineSingle.ce.vue","../src/components/effect/LineDouble.ce.vue","../src/components/effect/TextBackgroundClip.ce.vue","../src/webcomponents/ResponsiveVideo.js","../src/components/base/Root.vue","../src/Xg.ce.vue","../src/components/xg/Lot.ce.vue","../src/components/xg/Footer.ce.vue","../src/components/xg/Result.ce.vue","../src/components/xg/Unlocking.ce.vue","../src/components/xg/LoginInPhone.ce.vue","../src/components/view/ViewDocument.ce.vue","../src/components/base/Root.ce.vue","../src/components/base/Page.ce.vue","../src/components/base/List.ce.vue","../src/components/base/Box.ce.vue","../src/components/base/CSSTransition.ce.vue","../src/components/base/CSSAnimation.ce.vue","../src/components/pop/Overlay.ce.vue","../src/components/pop/Pop.ce.vue","../src/components/pop/PopTel.ce.vue","../src/components/pop/PopCalendar.ce.vue","../src/components/pop/Popover.ce.vue","../src/components/rate-xg/RateXg.ce.vue","../src/components/rate-xg/RateXgPanel.ce.vue","../src/components/rate-xg/RateXgPop.ce.vue","../src/components/dialog/Dialog.ce.vue","../src/components/dialog/DialogLoading.ce.vue","../src/components/dialog/DialogToast.ce.vue","../src/components/layout/LayoutCenter.ce.vue","../src/components/layout/ContentCenter.ce.vue","../src/components/layout/ContentSpaceBetween.ce.vue","../src/components/layout/ContentTopCenter.ce.vue","../src/components/form/Button.ce.vue","../src/components/form/Text.ce.vue","../src/components/form/Input.ce.vue","../src/components/form/InputFileDrop.ce.vue","../src/components/form/ColorPicker.ce.vue","../src/components/form/Calendar.ce.vue","../src/components/form/Textarea.ce.vue","../src/components/bg/grid/BgGrid.ce.vue","../src/components/image/ImageView.ce.vue","../src/components/icon/IconStatus.ce.vue","../src/components/icon/IconLoading.ce.vue","../src/components/icon/IconWarn.ce.vue","../src/components/icon/IconArrowRight.ce.vue","../src/components/widget/CallPhone.ce.vue","../src/components/plate/PlateDisplay.ce.vue","../src/components/fps/FPSStats.ce.vue","../src/webcomponent.js"],"sourcesContent":["/**\n* @vue/shared v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n  const map = /* @__PURE__ */ Object.create(null);\n  for (const key of str.split(\",\")) map[key] = 1;\n  return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n  const i = arr.indexOf(el);\n  if (i > -1) {\n    arr.splice(i, 1);\n  }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n  return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n  return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n  // the leading comma is intentional so empty string \"\" is also included\n  \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n  \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n  const cache = /* @__PURE__ */ Object.create(null);\n  return (str) => {\n    const hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n  (str) => {\n    return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n  }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n  (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n  (str) => {\n    const s = str ? `on${capitalize(str)}` : ``;\n    return s;\n  }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n  for (let i = 0; i < fns.length; i++) {\n    fns[i](...arg);\n  }\n};\nconst def = (obj, key, value, writable = false) => {\n  Object.defineProperty(obj, key, {\n    configurable: true,\n    enumerable: false,\n    writable,\n    value\n  });\n};\nconst looseToNumber = (val) => {\n  const n = parseFloat(val);\n  return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n  const n = isString(val) ? Number(val) : NaN;\n  return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n  return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n  return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n  return source + JSON.stringify(\n    options,\n    (_, val) => typeof val === \"function\" ? val.toString() : val\n  );\n}\n\nconst PatchFlags = {\n  \"TEXT\": 1,\n  \"1\": \"TEXT\",\n  \"CLASS\": 2,\n  \"2\": \"CLASS\",\n  \"STYLE\": 4,\n  \"4\": \"STYLE\",\n  \"PROPS\": 8,\n  \"8\": \"PROPS\",\n  \"FULL_PROPS\": 16,\n  \"16\": \"FULL_PROPS\",\n  \"NEED_HYDRATION\": 32,\n  \"32\": \"NEED_HYDRATION\",\n  \"STABLE_FRAGMENT\": 64,\n  \"64\": \"STABLE_FRAGMENT\",\n  \"KEYED_FRAGMENT\": 128,\n  \"128\": \"KEYED_FRAGMENT\",\n  \"UNKEYED_FRAGMENT\": 256,\n  \"256\": \"UNKEYED_FRAGMENT\",\n  \"NEED_PATCH\": 512,\n  \"512\": \"NEED_PATCH\",\n  \"DYNAMIC_SLOTS\": 1024,\n  \"1024\": \"DYNAMIC_SLOTS\",\n  \"DEV_ROOT_FRAGMENT\": 2048,\n  \"2048\": \"DEV_ROOT_FRAGMENT\",\n  \"CACHED\": -1,\n  \"-1\": \"CACHED\",\n  \"BAIL\": -2,\n  \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n  [1]: `TEXT`,\n  [2]: `CLASS`,\n  [4]: `STYLE`,\n  [8]: `PROPS`,\n  [16]: `FULL_PROPS`,\n  [32]: `NEED_HYDRATION`,\n  [64]: `STABLE_FRAGMENT`,\n  [128]: `KEYED_FRAGMENT`,\n  [256]: `UNKEYED_FRAGMENT`,\n  [512]: `NEED_PATCH`,\n  [1024]: `DYNAMIC_SLOTS`,\n  [2048]: `DEV_ROOT_FRAGMENT`,\n  [-1]: `HOISTED`,\n  [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n  \"ELEMENT\": 1,\n  \"1\": \"ELEMENT\",\n  \"FUNCTIONAL_COMPONENT\": 2,\n  \"2\": \"FUNCTIONAL_COMPONENT\",\n  \"STATEFUL_COMPONENT\": 4,\n  \"4\": \"STATEFUL_COMPONENT\",\n  \"TEXT_CHILDREN\": 8,\n  \"8\": \"TEXT_CHILDREN\",\n  \"ARRAY_CHILDREN\": 16,\n  \"16\": \"ARRAY_CHILDREN\",\n  \"SLOTS_CHILDREN\": 32,\n  \"32\": \"SLOTS_CHILDREN\",\n  \"TELEPORT\": 64,\n  \"64\": \"TELEPORT\",\n  \"SUSPENSE\": 128,\n  \"128\": \"SUSPENSE\",\n  \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n  \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n  \"COMPONENT_KEPT_ALIVE\": 512,\n  \"512\": \"COMPONENT_KEPT_ALIVE\",\n  \"COMPONENT\": 6,\n  \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n  \"STABLE\": 1,\n  \"1\": \"STABLE\",\n  \"DYNAMIC\": 2,\n  \"2\": \"DYNAMIC\",\n  \"FORWARDED\": 3,\n  \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n  [1]: \"STABLE\",\n  [2]: \"DYNAMIC\",\n  [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n  start = Math.max(0, Math.min(start, source.length));\n  end = Math.max(0, Math.min(end, source.length));\n  if (start > end) return \"\";\n  let lines = source.split(/(\\r?\\n)/);\n  const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n  lines = lines.filter((_, idx) => idx % 2 === 0);\n  let count = 0;\n  const res = [];\n  for (let i = 0; i < lines.length; i++) {\n    count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n    if (count >= start) {\n      for (let j = i - range; j <= i + range || end > count; j++) {\n        if (j < 0 || j >= lines.length) continue;\n        const line = j + 1;\n        res.push(\n          `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`\n        );\n        const lineLength = lines[j].length;\n        const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n        if (j === i) {\n          const pad = start - (count - (lineLength + newLineSeqLength));\n          const length = Math.max(\n            1,\n            end > count ? lineLength - pad : end - start\n          );\n          res.push(`   |  ` + \" \".repeat(pad) + \"^\".repeat(length));\n        } else if (j > i) {\n          if (end > count) {\n            const length = Math.max(Math.min(end - count, lineLength), 1);\n            res.push(`   |  ` + \"^\".repeat(length));\n          }\n          count += lineLength + newLineSeqLength;\n        }\n      }\n      break;\n    }\n  }\n  return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n  if (isArray(value)) {\n    const res = {};\n    for (let i = 0; i < value.length; i++) {\n      const item = value[i];\n      const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n      if (normalized) {\n        for (const key in normalized) {\n          res[key] = normalized[key];\n        }\n      }\n    }\n    return res;\n  } else if (isString(value) || isObject(value)) {\n    return value;\n  }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n  const ret = {};\n  cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n    if (item) {\n      const tmp = item.split(propertyDelimiterRE);\n      tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return ret;\n}\nfunction stringifyStyle(styles) {\n  if (!styles) return \"\";\n  if (isString(styles)) return styles;\n  let ret = \"\";\n  for (const key in styles) {\n    const value = styles[key];\n    if (isString(value) || typeof value === \"number\") {\n      const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n      ret += `${normalizedKey}:${value};`;\n    }\n  }\n  return ret;\n}\nfunction normalizeClass(value) {\n  let res = \"\";\n  if (isString(value)) {\n    res = value;\n  } else if (isArray(value)) {\n    for (let i = 0; i < value.length; i++) {\n      const normalized = normalizeClass(value[i]);\n      if (normalized) {\n        res += normalized + \" \";\n      }\n    }\n  } else if (isObject(value)) {\n    for (const name in value) {\n      if (value[name]) {\n        res += name + \" \";\n      }\n    }\n  }\n  return res.trim();\n}\nfunction normalizeProps(props) {\n  if (!props) return null;\n  let { class: klass, style } = props;\n  if (klass && !isString(klass)) {\n    props.class = normalizeClass(klass);\n  }\n  if (style) {\n    props.style = normalizeStyle(style);\n  }\n  return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n  return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n  if (attrValidationCache.hasOwnProperty(name)) {\n    return attrValidationCache[name];\n  }\n  const isUnsafe = unsafeAttrCharRE.test(name);\n  if (isUnsafe) {\n    console.error(`unsafe attribute name: ${name}`);\n  }\n  return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n  acceptCharset: \"accept-charset\",\n  className: \"class\",\n  htmlFor: \"for\",\n  httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n  `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n  `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n  `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n  if (value == null) {\n    return false;\n  }\n  const type = typeof value;\n  return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n  const str = \"\" + string;\n  const match = escapeRE.exec(str);\n  if (!match) {\n    return str;\n  }\n  let html = \"\";\n  let escaped;\n  let index;\n  let lastIndex = 0;\n  for (index = match.index; index < str.length; index++) {\n    switch (str.charCodeAt(index)) {\n      case 34:\n        escaped = \"&quot;\";\n        break;\n      case 38:\n        escaped = \"&amp;\";\n        break;\n      case 39:\n        escaped = \"&#39;\";\n        break;\n      case 60:\n        escaped = \"&lt;\";\n        break;\n      case 62:\n        escaped = \"&gt;\";\n        break;\n      default:\n        continue;\n    }\n    if (lastIndex !== index) {\n      html += str.slice(lastIndex, index);\n    }\n    lastIndex = index + 1;\n    html += escaped;\n  }\n  return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n  return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n  return key.replace(\n    cssVarNameEscapeSymbolsRE,\n    (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n  );\n}\n\nfunction looseCompareArrays(a, b) {\n  if (a.length !== b.length) return false;\n  let equal = true;\n  for (let i = 0; equal && i < a.length; i++) {\n    equal = looseEqual(a[i], b[i]);\n  }\n  return equal;\n}\nfunction looseEqual(a, b) {\n  if (a === b) return true;\n  let aValidType = isDate(a);\n  let bValidType = isDate(b);\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n  }\n  aValidType = isSymbol(a);\n  bValidType = isSymbol(b);\n  if (aValidType || bValidType) {\n    return a === b;\n  }\n  aValidType = isArray(a);\n  bValidType = isArray(b);\n  if (aValidType || bValidType) {\n    return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n  }\n  aValidType = isObject(a);\n  bValidType = isObject(b);\n  if (aValidType || bValidType) {\n    if (!aValidType || !bValidType) {\n      return false;\n    }\n    const aKeysCount = Object.keys(a).length;\n    const bKeysCount = Object.keys(b).length;\n    if (aKeysCount !== bKeysCount) {\n      return false;\n    }\n    for (const key in a) {\n      const aHasKey = a.hasOwnProperty(key);\n      const bHasKey = b.hasOwnProperty(key);\n      if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n  }\n  return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n  return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n  return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n  return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n  if (isRef(val)) {\n    return replacer(_key, val.value);\n  } else if (isMap(val)) {\n    return {\n      [`Map(${val.size})`]: [...val.entries()].reduce(\n        (entries, [key, val2], i) => {\n          entries[stringifySymbol(key, i) + \" =>\"] = val2;\n          return entries;\n        },\n        {}\n      )\n    };\n  } else if (isSet(val)) {\n    return {\n      [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n    };\n  } else if (isSymbol(val)) {\n    return stringifySymbol(val);\n  } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n    return String(val);\n  }\n  return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n  var _a;\n  return (\n    // Symbol.description in es2019+ so we need to cast here to pass\n    // the lib: es2016 check\n    isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n  );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { hasChanged, extend, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, toRawType, capitalize, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, NOOP, remove } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n  console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n  constructor(detached = false) {\n    this.detached = detached;\n    /**\n     * @internal\n     */\n    this._active = true;\n    /**\n     * @internal\n     */\n    this.effects = [];\n    /**\n     * @internal\n     */\n    this.cleanups = [];\n    this._isPaused = false;\n    this.parent = activeEffectScope;\n    if (!detached && activeEffectScope) {\n      this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n        this\n      ) - 1;\n    }\n  }\n  get active() {\n    return this._active;\n  }\n  pause() {\n    if (this._active) {\n      this._isPaused = true;\n      let i, l;\n      if (this.scopes) {\n        for (i = 0, l = this.scopes.length; i < l; i++) {\n          this.scopes[i].pause();\n        }\n      }\n      for (i = 0, l = this.effects.length; i < l; i++) {\n        this.effects[i].pause();\n      }\n    }\n  }\n  /**\n   * Resumes the effect scope, including all child scopes and effects.\n   */\n  resume() {\n    if (this._active) {\n      if (this._isPaused) {\n        this._isPaused = false;\n        let i, l;\n        if (this.scopes) {\n          for (i = 0, l = this.scopes.length; i < l; i++) {\n            this.scopes[i].resume();\n          }\n        }\n        for (i = 0, l = this.effects.length; i < l; i++) {\n          this.effects[i].resume();\n        }\n      }\n    }\n  }\n  run(fn) {\n    if (this._active) {\n      const currentEffectScope = activeEffectScope;\n      try {\n        activeEffectScope = this;\n        return fn();\n      } finally {\n        activeEffectScope = currentEffectScope;\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn(`cannot run an inactive effect scope.`);\n    }\n  }\n  /**\n   * This should only be called on non-detached scopes\n   * @internal\n   */\n  on() {\n    activeEffectScope = this;\n  }\n  /**\n   * This should only be called on non-detached scopes\n   * @internal\n   */\n  off() {\n    activeEffectScope = this.parent;\n  }\n  stop(fromParent) {\n    if (this._active) {\n      this._active = false;\n      let i, l;\n      for (i = 0, l = this.effects.length; i < l; i++) {\n        this.effects[i].stop();\n      }\n      this.effects.length = 0;\n      for (i = 0, l = this.cleanups.length; i < l; i++) {\n        this.cleanups[i]();\n      }\n      this.cleanups.length = 0;\n      if (this.scopes) {\n        for (i = 0, l = this.scopes.length; i < l; i++) {\n          this.scopes[i].stop(true);\n        }\n        this.scopes.length = 0;\n      }\n      if (!this.detached && this.parent && !fromParent) {\n        const last = this.parent.scopes.pop();\n        if (last && last !== this) {\n          this.parent.scopes[this.index] = last;\n          last.index = this.index;\n        }\n      }\n      this.parent = void 0;\n    }\n  }\n}\nfunction effectScope(detached) {\n  return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n  return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n  if (activeEffectScope) {\n    activeEffectScope.cleanups.push(fn);\n  } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n    warn(\n      `onScopeDispose() is called when there is no active effect scope to be associated with.`\n    );\n  }\n}\n\nlet activeSub;\nconst EffectFlags = {\n  \"ACTIVE\": 1,\n  \"1\": \"ACTIVE\",\n  \"RUNNING\": 2,\n  \"2\": \"RUNNING\",\n  \"TRACKING\": 4,\n  \"4\": \"TRACKING\",\n  \"NOTIFIED\": 8,\n  \"8\": \"NOTIFIED\",\n  \"DIRTY\": 16,\n  \"16\": \"DIRTY\",\n  \"ALLOW_RECURSE\": 32,\n  \"32\": \"ALLOW_RECURSE\",\n  \"PAUSED\": 64,\n  \"64\": \"PAUSED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n  constructor(fn) {\n    this.fn = fn;\n    /**\n     * @internal\n     */\n    this.deps = void 0;\n    /**\n     * @internal\n     */\n    this.depsTail = void 0;\n    /**\n     * @internal\n     */\n    this.flags = 1 | 4;\n    /**\n     * @internal\n     */\n    this.next = void 0;\n    /**\n     * @internal\n     */\n    this.cleanup = void 0;\n    this.scheduler = void 0;\n    if (activeEffectScope && activeEffectScope.active) {\n      activeEffectScope.effects.push(this);\n    }\n  }\n  pause() {\n    this.flags |= 64;\n  }\n  resume() {\n    if (this.flags & 64) {\n      this.flags &= ~64;\n      if (pausedQueueEffects.has(this)) {\n        pausedQueueEffects.delete(this);\n        this.trigger();\n      }\n    }\n  }\n  /**\n   * @internal\n   */\n  notify() {\n    if (this.flags & 2 && !(this.flags & 32)) {\n      return;\n    }\n    if (!(this.flags & 8)) {\n      batch(this);\n    }\n  }\n  run() {\n    if (!(this.flags & 1)) {\n      return this.fn();\n    }\n    this.flags |= 2;\n    cleanupEffect(this);\n    prepareDeps(this);\n    const prevEffect = activeSub;\n    const prevShouldTrack = shouldTrack;\n    activeSub = this;\n    shouldTrack = true;\n    try {\n      return this.fn();\n    } finally {\n      if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n        warn(\n          \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n        );\n      }\n      cleanupDeps(this);\n      activeSub = prevEffect;\n      shouldTrack = prevShouldTrack;\n      this.flags &= ~2;\n    }\n  }\n  stop() {\n    if (this.flags & 1) {\n      for (let link = this.deps; link; link = link.nextDep) {\n        removeSub(link);\n      }\n      this.deps = this.depsTail = void 0;\n      cleanupEffect(this);\n      this.onStop && this.onStop();\n      this.flags &= ~1;\n    }\n  }\n  trigger() {\n    if (this.flags & 64) {\n      pausedQueueEffects.add(this);\n    } else if (this.scheduler) {\n      this.scheduler();\n    } else {\n      this.runIfDirty();\n    }\n  }\n  /**\n   * @internal\n   */\n  runIfDirty() {\n    if (isDirty(this)) {\n      this.run();\n    }\n  }\n  get dirty() {\n    return isDirty(this);\n  }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n  sub.flags |= 8;\n  if (isComputed) {\n    sub.next = batchedComputed;\n    batchedComputed = sub;\n    return;\n  }\n  sub.next = batchedSub;\n  batchedSub = sub;\n}\nfunction startBatch() {\n  batchDepth++;\n}\nfunction endBatch() {\n  if (--batchDepth > 0) {\n    return;\n  }\n  if (batchedComputed) {\n    let e = batchedComputed;\n    batchedComputed = void 0;\n    while (e) {\n      const next = e.next;\n      e.next = void 0;\n      e.flags &= ~8;\n      e = next;\n    }\n  }\n  let error;\n  while (batchedSub) {\n    let e = batchedSub;\n    batchedSub = void 0;\n    while (e) {\n      const next = e.next;\n      e.next = void 0;\n      e.flags &= ~8;\n      if (e.flags & 1) {\n        try {\n          ;\n          e.trigger();\n        } catch (err) {\n          if (!error) error = err;\n        }\n      }\n      e = next;\n    }\n  }\n  if (error) throw error;\n}\nfunction prepareDeps(sub) {\n  for (let link = sub.deps; link; link = link.nextDep) {\n    link.version = -1;\n    link.prevActiveLink = link.dep.activeLink;\n    link.dep.activeLink = link;\n  }\n}\nfunction cleanupDeps(sub) {\n  let head;\n  let tail = sub.depsTail;\n  let link = tail;\n  while (link) {\n    const prev = link.prevDep;\n    if (link.version === -1) {\n      if (link === tail) tail = prev;\n      removeSub(link);\n      removeDep(link);\n    } else {\n      head = link;\n    }\n    link.dep.activeLink = link.prevActiveLink;\n    link.prevActiveLink = void 0;\n    link = prev;\n  }\n  sub.deps = head;\n  sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n  for (let link = sub.deps; link; link = link.nextDep) {\n    if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n      return true;\n    }\n  }\n  if (sub._dirty) {\n    return true;\n  }\n  return false;\n}\nfunction refreshComputed(computed) {\n  if (computed.flags & 4 && !(computed.flags & 16)) {\n    return;\n  }\n  computed.flags &= ~16;\n  if (computed.globalVersion === globalVersion) {\n    return;\n  }\n  computed.globalVersion = globalVersion;\n  const dep = computed.dep;\n  computed.flags |= 2;\n  if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {\n    computed.flags &= ~2;\n    return;\n  }\n  const prevSub = activeSub;\n  const prevShouldTrack = shouldTrack;\n  activeSub = computed;\n  shouldTrack = true;\n  try {\n    prepareDeps(computed);\n    const value = computed.fn(computed._value);\n    if (dep.version === 0 || hasChanged(value, computed._value)) {\n      computed._value = value;\n      dep.version++;\n    }\n  } catch (err) {\n    dep.version++;\n    throw err;\n  } finally {\n    activeSub = prevSub;\n    shouldTrack = prevShouldTrack;\n    cleanupDeps(computed);\n    computed.flags &= ~2;\n  }\n}\nfunction removeSub(link, soft = false) {\n  const { dep, prevSub, nextSub } = link;\n  if (prevSub) {\n    prevSub.nextSub = nextSub;\n    link.prevSub = void 0;\n  }\n  if (nextSub) {\n    nextSub.prevSub = prevSub;\n    link.nextSub = void 0;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n    dep.subsHead = nextSub;\n  }\n  if (dep.subs === link) {\n    dep.subs = prevSub;\n    if (!prevSub && dep.computed) {\n      dep.computed.flags &= ~4;\n      for (let l = dep.computed.deps; l; l = l.nextDep) {\n        removeSub(l, true);\n      }\n    }\n  }\n  if (!soft && !--dep.sc && dep.map) {\n    dep.map.delete(dep.key);\n  }\n}\nfunction removeDep(link) {\n  const { prevDep, nextDep } = link;\n  if (prevDep) {\n    prevDep.nextDep = nextDep;\n    link.prevDep = void 0;\n  }\n  if (nextDep) {\n    nextDep.prevDep = prevDep;\n    link.nextDep = void 0;\n  }\n}\nfunction effect(fn, options) {\n  if (fn.effect instanceof ReactiveEffect) {\n    fn = fn.effect.fn;\n  }\n  const e = new ReactiveEffect(fn);\n  if (options) {\n    extend(e, options);\n  }\n  try {\n    e.run();\n  } catch (err) {\n    e.stop();\n    throw err;\n  }\n  const runner = e.run.bind(e);\n  runner.effect = e;\n  return runner;\n}\nfunction stop(runner) {\n  runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n  trackStack.push(shouldTrack);\n  shouldTrack = false;\n}\nfunction enableTracking() {\n  trackStack.push(shouldTrack);\n  shouldTrack = true;\n}\nfunction resetTracking() {\n  const last = trackStack.pop();\n  shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n  if (activeSub instanceof ReactiveEffect) {\n    activeSub.cleanup = fn;\n  } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n    warn(\n      `onEffectCleanup() was called when there was no active effect to associate with.`\n    );\n  }\n}\nfunction cleanupEffect(e) {\n  const { cleanup } = e;\n  e.cleanup = void 0;\n  if (cleanup) {\n    const prevSub = activeSub;\n    activeSub = void 0;\n    try {\n      cleanup();\n    } finally {\n      activeSub = prevSub;\n    }\n  }\n}\n\nlet globalVersion = 0;\nclass Link {\n  constructor(sub, dep) {\n    this.sub = sub;\n    this.dep = dep;\n    this.version = dep.version;\n    this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n  }\n}\nclass Dep {\n  constructor(computed) {\n    this.computed = computed;\n    this.version = 0;\n    /**\n     * Link between this dep and the current active effect\n     */\n    this.activeLink = void 0;\n    /**\n     * Doubly linked list representing the subscribing effects (tail)\n     */\n    this.subs = void 0;\n    /**\n     * For object property deps cleanup\n     */\n    this.map = void 0;\n    this.key = void 0;\n    /**\n     * Subscriber counter\n     */\n    this.sc = 0;\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      this.subsHead = void 0;\n    }\n  }\n  track(debugInfo) {\n    if (!activeSub || !shouldTrack || activeSub === this.computed) {\n      return;\n    }\n    let link = this.activeLink;\n    if (link === void 0 || link.sub !== activeSub) {\n      link = this.activeLink = new Link(activeSub, this);\n      if (!activeSub.deps) {\n        activeSub.deps = activeSub.depsTail = link;\n      } else {\n        link.prevDep = activeSub.depsTail;\n        activeSub.depsTail.nextDep = link;\n        activeSub.depsTail = link;\n      }\n      addSub(link);\n    } else if (link.version === -1) {\n      link.version = this.version;\n      if (link.nextDep) {\n        const next = link.nextDep;\n        next.prevDep = link.prevDep;\n        if (link.prevDep) {\n          link.prevDep.nextDep = next;\n        }\n        link.prevDep = activeSub.depsTail;\n        link.nextDep = void 0;\n        activeSub.depsTail.nextDep = link;\n        activeSub.depsTail = link;\n        if (activeSub.deps === link) {\n          activeSub.deps = next;\n        }\n      }\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n      activeSub.onTrack(\n        extend(\n          {\n            effect: activeSub\n          },\n          debugInfo\n        )\n      );\n    }\n    return link;\n  }\n  trigger(debugInfo) {\n    this.version++;\n    globalVersion++;\n    this.notify(debugInfo);\n  }\n  notify(debugInfo) {\n    startBatch();\n    try {\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        for (let head = this.subsHead; head; head = head.nextSub) {\n          if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n            head.sub.onTrigger(\n              extend(\n                {\n                  effect: head.sub\n                },\n                debugInfo\n              )\n            );\n          }\n        }\n      }\n      for (let link = this.subs; link; link = link.prevSub) {\n        if (link.sub.notify()) {\n          ;\n          link.sub.dep.notify();\n        }\n      }\n    } finally {\n      endBatch();\n    }\n  }\n}\nfunction addSub(link) {\n  link.dep.sc++;\n  if (link.sub.flags & 4) {\n    const computed = link.dep.computed;\n    if (computed && !link.dep.subs) {\n      computed.flags |= 4 | 16;\n      for (let l = computed.deps; l; l = l.nextDep) {\n        addSub(l);\n      }\n    }\n    const currentTail = link.dep.subs;\n    if (currentTail !== link) {\n      link.prevSub = currentTail;\n      if (currentTail) currentTail.nextSub = link;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n      link.dep.subsHead = link;\n    }\n    link.dep.subs = link;\n  }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n  !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n  !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n  !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n  if (shouldTrack && activeSub) {\n    let depsMap = targetMap.get(target);\n    if (!depsMap) {\n      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n    }\n    let dep = depsMap.get(key);\n    if (!dep) {\n      depsMap.set(key, dep = new Dep());\n      dep.map = depsMap;\n      dep.key = key;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      dep.track({\n        target,\n        type,\n        key\n      });\n    } else {\n      dep.track();\n    }\n  }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n  const depsMap = targetMap.get(target);\n  if (!depsMap) {\n    globalVersion++;\n    return;\n  }\n  const run = (dep) => {\n    if (dep) {\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        dep.trigger({\n          target,\n          type,\n          key,\n          newValue,\n          oldValue,\n          oldTarget\n        });\n      } else {\n        dep.trigger();\n      }\n    }\n  };\n  startBatch();\n  if (type === \"clear\") {\n    depsMap.forEach(run);\n  } else {\n    const targetIsArray = isArray(target);\n    const isArrayIndex = targetIsArray && isIntegerKey(key);\n    if (targetIsArray && key === \"length\") {\n      const newLength = Number(newValue);\n      depsMap.forEach((dep, key2) => {\n        if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n          run(dep);\n        }\n      });\n    } else {\n      if (key !== void 0 || depsMap.has(void 0)) {\n        run(depsMap.get(key));\n      }\n      if (isArrayIndex) {\n        run(depsMap.get(ARRAY_ITERATE_KEY));\n      }\n      switch (type) {\n        case \"add\":\n          if (!targetIsArray) {\n            run(depsMap.get(ITERATE_KEY));\n            if (isMap(target)) {\n              run(depsMap.get(MAP_KEY_ITERATE_KEY));\n            }\n          } else if (isArrayIndex) {\n            run(depsMap.get(\"length\"));\n          }\n          break;\n        case \"delete\":\n          if (!targetIsArray) {\n            run(depsMap.get(ITERATE_KEY));\n            if (isMap(target)) {\n              run(depsMap.get(MAP_KEY_ITERATE_KEY));\n            }\n          }\n          break;\n        case \"set\":\n          if (isMap(target)) {\n            run(depsMap.get(ITERATE_KEY));\n          }\n          break;\n      }\n    }\n  }\n  endBatch();\n}\nfunction getDepFromReactive(object, key) {\n  const depMap = targetMap.get(object);\n  return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n  const raw = toRaw(array);\n  if (raw === array) return raw;\n  track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n  return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n  track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n  return arr;\n}\nconst arrayInstrumentations = {\n  __proto__: null,\n  [Symbol.iterator]() {\n    return iterator(this, Symbol.iterator, toReactive);\n  },\n  concat(...args) {\n    return reactiveReadArray(this).concat(\n      ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n    );\n  },\n  entries() {\n    return iterator(this, \"entries\", (value) => {\n      value[1] = toReactive(value[1]);\n      return value;\n    });\n  },\n  every(fn, thisArg) {\n    return apply(this, \"every\", fn, thisArg, void 0, arguments);\n  },\n  filter(fn, thisArg) {\n    return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n  },\n  find(fn, thisArg) {\n    return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n  },\n  findIndex(fn, thisArg) {\n    return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n  },\n  findLast(fn, thisArg) {\n    return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n  },\n  findLastIndex(fn, thisArg) {\n    return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n  },\n  // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n  forEach(fn, thisArg) {\n    return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n  },\n  includes(...args) {\n    return searchProxy(this, \"includes\", args);\n  },\n  indexOf(...args) {\n    return searchProxy(this, \"indexOf\", args);\n  },\n  join(separator) {\n    return reactiveReadArray(this).join(separator);\n  },\n  // keys() iterator only reads `length`, no optimisation required\n  lastIndexOf(...args) {\n    return searchProxy(this, \"lastIndexOf\", args);\n  },\n  map(fn, thisArg) {\n    return apply(this, \"map\", fn, thisArg, void 0, arguments);\n  },\n  pop() {\n    return noTracking(this, \"pop\");\n  },\n  push(...args) {\n    return noTracking(this, \"push\", args);\n  },\n  reduce(fn, ...args) {\n    return reduce(this, \"reduce\", fn, args);\n  },\n  reduceRight(fn, ...args) {\n    return reduce(this, \"reduceRight\", fn, args);\n  },\n  shift() {\n    return noTracking(this, \"shift\");\n  },\n  // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n  some(fn, thisArg) {\n    return apply(this, \"some\", fn, thisArg, void 0, arguments);\n  },\n  splice(...args) {\n    return noTracking(this, \"splice\", args);\n  },\n  toReversed() {\n    return reactiveReadArray(this).toReversed();\n  },\n  toSorted(comparer) {\n    return reactiveReadArray(this).toSorted(comparer);\n  },\n  toSpliced(...args) {\n    return reactiveReadArray(this).toSpliced(...args);\n  },\n  unshift(...args) {\n    return noTracking(this, \"unshift\", args);\n  },\n  values() {\n    return iterator(this, \"values\", toReactive);\n  }\n};\nfunction iterator(self, method, wrapValue) {\n  const arr = shallowReadArray(self);\n  const iter = arr[method]();\n  if (arr !== self && !isShallow(self)) {\n    iter._next = iter.next;\n    iter.next = () => {\n      const result = iter._next();\n      if (result.value) {\n        result.value = wrapValue(result.value);\n      }\n      return result;\n    };\n  }\n  return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n  const arr = shallowReadArray(self);\n  const needsWrap = arr !== self && !isShallow(self);\n  const methodFn = arr[method];\n  if (methodFn !== arrayProto[method]) {\n    const result2 = methodFn.apply(self, args);\n    return needsWrap ? toReactive(result2) : result2;\n  }\n  let wrappedFn = fn;\n  if (arr !== self) {\n    if (needsWrap) {\n      wrappedFn = function(item, index) {\n        return fn.call(this, toReactive(item), index, self);\n      };\n    } else if (fn.length > 2) {\n      wrappedFn = function(item, index) {\n        return fn.call(this, item, index, self);\n      };\n    }\n  }\n  const result = methodFn.call(arr, wrappedFn, thisArg);\n  return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n  const arr = shallowReadArray(self);\n  let wrappedFn = fn;\n  if (arr !== self) {\n    if (!isShallow(self)) {\n      wrappedFn = function(acc, item, index) {\n        return fn.call(this, acc, toReactive(item), index, self);\n      };\n    } else if (fn.length > 3) {\n      wrappedFn = function(acc, item, index) {\n        return fn.call(this, acc, item, index, self);\n      };\n    }\n  }\n  return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n  const arr = toRaw(self);\n  track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n  const res = arr[method](...args);\n  if ((res === -1 || res === false) && isProxy(args[0])) {\n    args[0] = toRaw(args[0]);\n    return arr[method](...args);\n  }\n  return res;\n}\nfunction noTracking(self, method, args = []) {\n  pauseTracking();\n  startBatch();\n  const res = toRaw(self)[method].apply(self, args);\n  endBatch();\n  resetTracking();\n  return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n  if (!isSymbol(key)) key = String(key);\n  const obj = toRaw(this);\n  track(obj, \"has\", key);\n  return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n  constructor(_isReadonly = false, _isShallow = false) {\n    this._isReadonly = _isReadonly;\n    this._isShallow = _isShallow;\n  }\n  get(target, key, receiver) {\n    if (key === \"__v_skip\") return target[\"__v_skip\"];\n    const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n    if (key === \"__v_isReactive\") {\n      return !isReadonly2;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly2;\n    } else if (key === \"__v_isShallow\") {\n      return isShallow2;\n    } else if (key === \"__v_raw\") {\n      if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n      // this means the receiver is a user proxy of the reactive proxy\n      Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n        return target;\n      }\n      return;\n    }\n    const targetIsArray = isArray(target);\n    if (!isReadonly2) {\n      let fn;\n      if (targetIsArray && (fn = arrayInstrumentations[key])) {\n        return fn;\n      }\n      if (key === \"hasOwnProperty\") {\n        return hasOwnProperty;\n      }\n    }\n    const res = Reflect.get(\n      target,\n      key,\n      // if this is a proxy wrapping a ref, return methods using the raw ref\n      // as receiver so that we don't have to call `toRaw` on the ref in all\n      // its class methods\n      isRef(target) ? target : receiver\n    );\n    if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n      return res;\n    }\n    if (!isReadonly2) {\n      track(target, \"get\", key);\n    }\n    if (isShallow2) {\n      return res;\n    }\n    if (isRef(res)) {\n      return targetIsArray && isIntegerKey(key) ? res : res.value;\n    }\n    if (isObject(res)) {\n      return isReadonly2 ? readonly(res) : reactive(res);\n    }\n    return res;\n  }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n  constructor(isShallow2 = false) {\n    super(false, isShallow2);\n  }\n  set(target, key, value, receiver) {\n    let oldValue = target[key];\n    if (!this._isShallow) {\n      const isOldValueReadonly = isReadonly(oldValue);\n      if (!isShallow(value) && !isReadonly(value)) {\n        oldValue = toRaw(oldValue);\n        value = toRaw(value);\n      }\n      if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n        if (isOldValueReadonly) {\n          return false;\n        } else {\n          oldValue.value = value;\n          return true;\n        }\n      }\n    }\n    const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n    const result = Reflect.set(\n      target,\n      key,\n      value,\n      isRef(target) ? target : receiver\n    );\n    if (target === toRaw(receiver)) {\n      if (!hadKey) {\n        trigger(target, \"add\", key, value);\n      } else if (hasChanged(value, oldValue)) {\n        trigger(target, \"set\", key, value, oldValue);\n      }\n    }\n    return result;\n  }\n  deleteProperty(target, key) {\n    const hadKey = hasOwn(target, key);\n    const oldValue = target[key];\n    const result = Reflect.deleteProperty(target, key);\n    if (result && hadKey) {\n      trigger(target, \"delete\", key, void 0, oldValue);\n    }\n    return result;\n  }\n  has(target, key) {\n    const result = Reflect.has(target, key);\n    if (!isSymbol(key) || !builtInSymbols.has(key)) {\n      track(target, \"has\", key);\n    }\n    return result;\n  }\n  ownKeys(target) {\n    track(\n      target,\n      \"iterate\",\n      isArray(target) ? \"length\" : ITERATE_KEY\n    );\n    return Reflect.ownKeys(target);\n  }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n  constructor(isShallow2 = false) {\n    super(true, isShallow2);\n  }\n  set(target, key) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn(\n        `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n        target\n      );\n    }\n    return true;\n  }\n  deleteProperty(target, key) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn(\n        `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n        target\n      );\n    }\n    return true;\n  }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n  return function(...args) {\n    const target = this[\"__v_raw\"];\n    const rawTarget = toRaw(target);\n    const targetIsMap = isMap(rawTarget);\n    const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n    const isKeyOnly = method === \"keys\" && targetIsMap;\n    const innerIterator = target[method](...args);\n    const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n    !isReadonly2 && track(\n      rawTarget,\n      \"iterate\",\n      isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n    );\n    return {\n      // iterator protocol\n      next() {\n        const { value, done } = innerIterator.next();\n        return done ? { value, done } : {\n          value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n          done\n        };\n      },\n      // iterable protocol\n      [Symbol.iterator]() {\n        return this;\n      }\n    };\n  };\n}\nfunction createReadonlyMethod(type) {\n  return function(...args) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n      warn(\n        `${capitalize(type)} operation ${key}failed: target is readonly.`,\n        toRaw(this)\n      );\n    }\n    return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n  };\n}\nfunction createInstrumentations(readonly, shallow) {\n  const instrumentations = {\n    get(key) {\n      const target = this[\"__v_raw\"];\n      const rawTarget = toRaw(target);\n      const rawKey = toRaw(key);\n      if (!readonly) {\n        if (hasChanged(key, rawKey)) {\n          track(rawTarget, \"get\", key);\n        }\n        track(rawTarget, \"get\", rawKey);\n      }\n      const { has } = getProto(rawTarget);\n      const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n      if (has.call(rawTarget, key)) {\n        return wrap(target.get(key));\n      } else if (has.call(rawTarget, rawKey)) {\n        return wrap(target.get(rawKey));\n      } else if (target !== rawTarget) {\n        target.get(key);\n      }\n    },\n    get size() {\n      const target = this[\"__v_raw\"];\n      !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n      return Reflect.get(target, \"size\", target);\n    },\n    has(key) {\n      const target = this[\"__v_raw\"];\n      const rawTarget = toRaw(target);\n      const rawKey = toRaw(key);\n      if (!readonly) {\n        if (hasChanged(key, rawKey)) {\n          track(rawTarget, \"has\", key);\n        }\n        track(rawTarget, \"has\", rawKey);\n      }\n      return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n    },\n    forEach(callback, thisArg) {\n      const observed = this;\n      const target = observed[\"__v_raw\"];\n      const rawTarget = toRaw(target);\n      const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n      !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n      return target.forEach((value, key) => {\n        return callback.call(thisArg, wrap(value), wrap(key), observed);\n      });\n    }\n  };\n  extend(\n    instrumentations,\n    readonly ? {\n      add: createReadonlyMethod(\"add\"),\n      set: createReadonlyMethod(\"set\"),\n      delete: createReadonlyMethod(\"delete\"),\n      clear: createReadonlyMethod(\"clear\")\n    } : {\n      add(value) {\n        if (!shallow && !isShallow(value) && !isReadonly(value)) {\n          value = toRaw(value);\n        }\n        const target = toRaw(this);\n        const proto = getProto(target);\n        const hadKey = proto.has.call(target, value);\n        if (!hadKey) {\n          target.add(value);\n          trigger(target, \"add\", value, value);\n        }\n        return this;\n      },\n      set(key, value) {\n        if (!shallow && !isShallow(value) && !isReadonly(value)) {\n          value = toRaw(value);\n        }\n        const target = toRaw(this);\n        const { has, get } = getProto(target);\n        let hadKey = has.call(target, key);\n        if (!hadKey) {\n          key = toRaw(key);\n          hadKey = has.call(target, key);\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          checkIdentityKeys(target, has, key);\n        }\n        const oldValue = get.call(target, key);\n        target.set(key, value);\n        if (!hadKey) {\n          trigger(target, \"add\", key, value);\n        } else if (hasChanged(value, oldValue)) {\n          trigger(target, \"set\", key, value, oldValue);\n        }\n        return this;\n      },\n      delete(key) {\n        const target = toRaw(this);\n        const { has, get } = getProto(target);\n        let hadKey = has.call(target, key);\n        if (!hadKey) {\n          key = toRaw(key);\n          hadKey = has.call(target, key);\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          checkIdentityKeys(target, has, key);\n        }\n        const oldValue = get ? get.call(target, key) : void 0;\n        const result = target.delete(key);\n        if (hadKey) {\n          trigger(target, \"delete\", key, void 0, oldValue);\n        }\n        return result;\n      },\n      clear() {\n        const target = toRaw(this);\n        const hadItems = target.size !== 0;\n        const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n        const result = target.clear();\n        if (hadItems) {\n          trigger(\n            target,\n            \"clear\",\n            void 0,\n            void 0,\n            oldTarget\n          );\n        }\n        return result;\n      }\n    }\n  );\n  const iteratorMethods = [\n    \"keys\",\n    \"values\",\n    \"entries\",\n    Symbol.iterator\n  ];\n  iteratorMethods.forEach((method) => {\n    instrumentations[method] = createIterableMethod(method, readonly, shallow);\n  });\n  return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n  const instrumentations = createInstrumentations(isReadonly2, shallow);\n  return (target, key, receiver) => {\n    if (key === \"__v_isReactive\") {\n      return !isReadonly2;\n    } else if (key === \"__v_isReadonly\") {\n      return isReadonly2;\n    } else if (key === \"__v_raw\") {\n      return target;\n    }\n    return Reflect.get(\n      hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n      key,\n      receiver\n    );\n  };\n}\nconst mutableCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n  get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n  const rawKey = toRaw(key);\n  if (rawKey !== key && has.call(target, rawKey)) {\n    const type = toRawType(target);\n    warn(\n      `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n    );\n  }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n  switch (rawType) {\n    case \"Object\":\n    case \"Array\":\n      return 1 /* COMMON */;\n    case \"Map\":\n    case \"Set\":\n    case \"WeakMap\":\n    case \"WeakSet\":\n      return 2 /* COLLECTION */;\n    default:\n      return 0 /* INVALID */;\n  }\n}\nfunction getTargetType(value) {\n  return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n  if (isReadonly(target)) {\n    return target;\n  }\n  return createReactiveObject(\n    target,\n    false,\n    mutableHandlers,\n    mutableCollectionHandlers,\n    reactiveMap\n  );\n}\nfunction shallowReactive(target) {\n  return createReactiveObject(\n    target,\n    false,\n    shallowReactiveHandlers,\n    shallowCollectionHandlers,\n    shallowReactiveMap\n  );\n}\nfunction readonly(target) {\n  return createReactiveObject(\n    target,\n    true,\n    readonlyHandlers,\n    readonlyCollectionHandlers,\n    readonlyMap\n  );\n}\nfunction shallowReadonly(target) {\n  return createReactiveObject(\n    target,\n    true,\n    shallowReadonlyHandlers,\n    shallowReadonlyCollectionHandlers,\n    shallowReadonlyMap\n  );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n  if (!isObject(target)) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn(\n        `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n          target\n        )}`\n      );\n    }\n    return target;\n  }\n  if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n    return target;\n  }\n  const existingProxy = proxyMap.get(target);\n  if (existingProxy) {\n    return existingProxy;\n  }\n  const targetType = getTargetType(target);\n  if (targetType === 0 /* INVALID */) {\n    return target;\n  }\n  const proxy = new Proxy(\n    target,\n    targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n  );\n  proxyMap.set(target, proxy);\n  return proxy;\n}\nfunction isReactive(value) {\n  if (isReadonly(value)) {\n    return isReactive(value[\"__v_raw\"]);\n  }\n  return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n  return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n  return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n  return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n  const raw = observed && observed[\"__v_raw\"];\n  return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n  if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n    def(value, \"__v_skip\", true);\n  }\n  return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n  return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n  return createRef(value, false);\n}\nfunction shallowRef(value) {\n  return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n  if (isRef(rawValue)) {\n    return rawValue;\n  }\n  return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n  constructor(value, isShallow2) {\n    this.dep = new Dep();\n    this[\"__v_isRef\"] = true;\n    this[\"__v_isShallow\"] = false;\n    this._rawValue = isShallow2 ? value : toRaw(value);\n    this._value = isShallow2 ? value : toReactive(value);\n    this[\"__v_isShallow\"] = isShallow2;\n  }\n  get value() {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      this.dep.track({\n        target: this,\n        type: \"get\",\n        key: \"value\"\n      });\n    } else {\n      this.dep.track();\n    }\n    return this._value;\n  }\n  set value(newValue) {\n    const oldValue = this._rawValue;\n    const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n    newValue = useDirectValue ? newValue : toRaw(newValue);\n    if (hasChanged(newValue, oldValue)) {\n      this._rawValue = newValue;\n      this._value = useDirectValue ? newValue : toReactive(newValue);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        this.dep.trigger({\n          target: this,\n          type: \"set\",\n          key: \"value\",\n          newValue,\n          oldValue\n        });\n      } else {\n        this.dep.trigger();\n      }\n    }\n  }\n}\nfunction triggerRef(ref2) {\n  if (ref2.dep) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      ref2.dep.trigger({\n        target: ref2,\n        type: \"set\",\n        key: \"value\",\n        newValue: ref2._value\n      });\n    } else {\n      ref2.dep.trigger();\n    }\n  }\n}\nfunction unref(ref2) {\n  return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n  return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n  get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n  set: (target, key, value, receiver) => {\n    const oldValue = target[key];\n    if (isRef(oldValue) && !isRef(value)) {\n      oldValue.value = value;\n      return true;\n    } else {\n      return Reflect.set(target, key, value, receiver);\n    }\n  }\n};\nfunction proxyRefs(objectWithRefs) {\n  return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n  constructor(factory) {\n    this[\"__v_isRef\"] = true;\n    this._value = void 0;\n    const dep = this.dep = new Dep();\n    const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n    this._get = get;\n    this._set = set;\n  }\n  get value() {\n    return this._value = this._get();\n  }\n  set value(newVal) {\n    this._set(newVal);\n  }\n}\nfunction customRef(factory) {\n  return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n  if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n    warn(`toRefs() expects a reactive object but received a plain one.`);\n  }\n  const ret = isArray(object) ? new Array(object.length) : {};\n  for (const key in object) {\n    ret[key] = propertyToRef(object, key);\n  }\n  return ret;\n}\nclass ObjectRefImpl {\n  constructor(_object, _key, _defaultValue) {\n    this._object = _object;\n    this._key = _key;\n    this._defaultValue = _defaultValue;\n    this[\"__v_isRef\"] = true;\n    this._value = void 0;\n  }\n  get value() {\n    const val = this._object[this._key];\n    return this._value = val === void 0 ? this._defaultValue : val;\n  }\n  set value(newVal) {\n    this._object[this._key] = newVal;\n  }\n  get dep() {\n    return getDepFromReactive(toRaw(this._object), this._key);\n  }\n}\nclass GetterRefImpl {\n  constructor(_getter) {\n    this._getter = _getter;\n    this[\"__v_isRef\"] = true;\n    this[\"__v_isReadonly\"] = true;\n    this._value = void 0;\n  }\n  get value() {\n    return this._value = this._getter();\n  }\n}\nfunction toRef(source, key, defaultValue) {\n  if (isRef(source)) {\n    return source;\n  } else if (isFunction(source)) {\n    return new GetterRefImpl(source);\n  } else if (isObject(source) && arguments.length > 1) {\n    return propertyToRef(source, key, defaultValue);\n  } else {\n    return ref(source);\n  }\n}\nfunction propertyToRef(source, key, defaultValue) {\n  const val = source[key];\n  return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n  constructor(fn, setter, isSSR) {\n    this.fn = fn;\n    this.setter = setter;\n    /**\n     * @internal\n     */\n    this._value = void 0;\n    /**\n     * @internal\n     */\n    this.dep = new Dep(this);\n    /**\n     * @internal\n     */\n    this.__v_isRef = true;\n    // TODO isolatedDeclarations \"__v_isReadonly\"\n    // A computed is also a subscriber that tracks other deps\n    /**\n     * @internal\n     */\n    this.deps = void 0;\n    /**\n     * @internal\n     */\n    this.depsTail = void 0;\n    /**\n     * @internal\n     */\n    this.flags = 16;\n    /**\n     * @internal\n     */\n    this.globalVersion = globalVersion - 1;\n    /**\n     * @internal\n     */\n    this.next = void 0;\n    // for backwards compat\n    this.effect = this;\n    this[\"__v_isReadonly\"] = !setter;\n    this.isSSR = isSSR;\n  }\n  /**\n   * @internal\n   */\n  notify() {\n    this.flags |= 16;\n    if (!(this.flags & 8) && // avoid infinite self recursion\n    activeSub !== this) {\n      batch(this, true);\n      return true;\n    } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n  }\n  get value() {\n    const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n      target: this,\n      type: \"get\",\n      key: \"value\"\n    }) : this.dep.track();\n    refreshComputed(this);\n    if (link) {\n      link.version = this.dep.version;\n    }\n    return this._value;\n  }\n  set value(newValue) {\n    if (this.setter) {\n      this.setter(newValue);\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn(\"Write operation failed: computed value is readonly\");\n    }\n  }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n  let getter;\n  let setter;\n  if (isFunction(getterOrOptions)) {\n    getter = getterOrOptions;\n  } else {\n    getter = getterOrOptions.get;\n    setter = getterOrOptions.set;\n  }\n  const cRef = new ComputedRefImpl(getter, setter, isSSR);\n  if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n    cRef.onTrack = debugOptions.onTrack;\n    cRef.onTrigger = debugOptions.onTrigger;\n  }\n  return cRef;\n}\n\nconst TrackOpTypes = {\n  \"GET\": \"get\",\n  \"HAS\": \"has\",\n  \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n  \"SET\": \"set\",\n  \"ADD\": \"add\",\n  \"DELETE\": \"delete\",\n  \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n  \"SKIP\": \"__v_skip\",\n  \"IS_REACTIVE\": \"__v_isReactive\",\n  \"IS_READONLY\": \"__v_isReadonly\",\n  \"IS_SHALLOW\": \"__v_isShallow\",\n  \"RAW\": \"__v_raw\",\n  \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n  \"WATCH_GETTER\": 2,\n  \"2\": \"WATCH_GETTER\",\n  \"WATCH_CALLBACK\": 3,\n  \"3\": \"WATCH_CALLBACK\",\n  \"WATCH_CLEANUP\": 4,\n  \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n  return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n  if (owner) {\n    let cleanups = cleanupMap.get(owner);\n    if (!cleanups) cleanupMap.set(owner, cleanups = []);\n    cleanups.push(cleanupFn);\n  } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n    warn(\n      `onWatcherCleanup() was called when there was no active watcher to associate with.`\n    );\n  }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n  const { immediate, deep, once, scheduler, augmentJob, call } = options;\n  const warnInvalidSource = (s) => {\n    (options.onWarn || warn)(\n      `Invalid watch source: `,\n      s,\n      `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n    );\n  };\n  const reactiveGetter = (source2) => {\n    if (deep) return source2;\n    if (isShallow(source2) || deep === false || deep === 0)\n      return traverse(source2, 1);\n    return traverse(source2);\n  };\n  let effect;\n  let getter;\n  let cleanup;\n  let boundCleanup;\n  let forceTrigger = false;\n  let isMultiSource = false;\n  if (isRef(source)) {\n    getter = () => source.value;\n    forceTrigger = isShallow(source);\n  } else if (isReactive(source)) {\n    getter = () => reactiveGetter(source);\n    forceTrigger = true;\n  } else if (isArray(source)) {\n    isMultiSource = true;\n    forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n    getter = () => source.map((s) => {\n      if (isRef(s)) {\n        return s.value;\n      } else if (isReactive(s)) {\n        return reactiveGetter(s);\n      } else if (isFunction(s)) {\n        return call ? call(s, 2) : s();\n      } else {\n        !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n      }\n    });\n  } else if (isFunction(source)) {\n    if (cb) {\n      getter = call ? () => call(source, 2) : source;\n    } else {\n      getter = () => {\n        if (cleanup) {\n          pauseTracking();\n          try {\n            cleanup();\n          } finally {\n            resetTracking();\n          }\n        }\n        const currentEffect = activeWatcher;\n        activeWatcher = effect;\n        try {\n          return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n        } finally {\n          activeWatcher = currentEffect;\n        }\n      };\n    }\n  } else {\n    getter = NOOP;\n    !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n  }\n  if (cb && deep) {\n    const baseGetter = getter;\n    const depth = deep === true ? Infinity : deep;\n    getter = () => traverse(baseGetter(), depth);\n  }\n  const scope = getCurrentScope();\n  const watchHandle = () => {\n    effect.stop();\n    if (scope && scope.active) {\n      remove(scope.effects, effect);\n    }\n  };\n  if (once && cb) {\n    const _cb = cb;\n    cb = (...args) => {\n      _cb(...args);\n      watchHandle();\n    };\n  }\n  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n  const job = (immediateFirstRun) => {\n    if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n      return;\n    }\n    if (cb) {\n      const newValue = effect.run();\n      if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n        if (cleanup) {\n          cleanup();\n        }\n        const currentWatcher = activeWatcher;\n        activeWatcher = effect;\n        try {\n          const args = [\n            newValue,\n            // pass undefined as the old value when it's changed for the first time\n            oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n            boundCleanup\n          ];\n          call ? call(cb, 3, args) : (\n            // @ts-expect-error\n            cb(...args)\n          );\n          oldValue = newValue;\n        } finally {\n          activeWatcher = currentWatcher;\n        }\n      }\n    } else {\n      effect.run();\n    }\n  };\n  if (augmentJob) {\n    augmentJob(job);\n  }\n  effect = new ReactiveEffect(getter);\n  effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n  boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n  cleanup = effect.onStop = () => {\n    const cleanups = cleanupMap.get(effect);\n    if (cleanups) {\n      if (call) {\n        call(cleanups, 4);\n      } else {\n        for (const cleanup2 of cleanups) cleanup2();\n      }\n      cleanupMap.delete(effect);\n    }\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    effect.onTrack = options.onTrack;\n    effect.onTrigger = options.onTrigger;\n  }\n  if (cb) {\n    if (immediate) {\n      job(true);\n    } else {\n      oldValue = effect.run();\n    }\n  } else if (scheduler) {\n    scheduler(job.bind(null, true), true);\n  } else {\n    effect.run();\n  }\n  watchHandle.pause = effect.pause.bind(effect);\n  watchHandle.resume = effect.resume.bind(effect);\n  watchHandle.stop = watchHandle;\n  return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n  if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n    return value;\n  }\n  seen = seen || /* @__PURE__ */ new Set();\n  if (seen.has(value)) {\n    return value;\n  }\n  seen.add(value);\n  depth--;\n  if (isRef(value)) {\n    traverse(value.value, depth, seen);\n  } else if (isArray(value)) {\n    for (let i = 0; i < value.length; i++) {\n      traverse(value[i], depth, seen);\n    }\n  } else if (isSet(value) || isMap(value)) {\n    value.forEach((v) => {\n      traverse(v, depth, seen);\n    });\n  } else if (isPlainObject(value)) {\n    for (const key in value) {\n      traverse(value[key], depth, seen);\n    }\n    for (const key of Object.getOwnPropertySymbols(value)) {\n      if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n        traverse(value[key], depth, seen);\n      }\n    }\n  }\n  return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, shallowReadArray, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, EMPTY_OBJ, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, isSymbol, isGloballyAllowed, NO, hyphenate, EMPTY_ARR, toRawType, makeMap, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n  stack.push(vnode);\n}\nfunction popWarningContext() {\n  stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n  if (isWarning) return;\n  isWarning = true;\n  pauseTracking();\n  const instance = stack.length ? stack[stack.length - 1].component : null;\n  const appWarnHandler = instance && instance.appContext.config.warnHandler;\n  const trace = getComponentTrace();\n  if (appWarnHandler) {\n    callWithErrorHandling(\n      appWarnHandler,\n      instance,\n      11,\n      [\n        // eslint-disable-next-line no-restricted-syntax\n        msg + args.map((a) => {\n          var _a, _b;\n          return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n        }).join(\"\"),\n        instance && instance.proxy,\n        trace.map(\n          ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n        ).join(\"\\n\"),\n        trace\n      ]\n    );\n  } else {\n    const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n    if (trace.length && // avoid spamming console during tests\n    true) {\n      warnArgs.push(`\n`, ...formatTrace(trace));\n    }\n    console.warn(...warnArgs);\n  }\n  resetTracking();\n  isWarning = false;\n}\nfunction getComponentTrace() {\n  let currentVNode = stack[stack.length - 1];\n  if (!currentVNode) {\n    return [];\n  }\n  const normalizedStack = [];\n  while (currentVNode) {\n    const last = normalizedStack[0];\n    if (last && last.vnode === currentVNode) {\n      last.recurseCount++;\n    } else {\n      normalizedStack.push({\n        vnode: currentVNode,\n        recurseCount: 0\n      });\n    }\n    const parentInstance = currentVNode.component && currentVNode.component.parent;\n    currentVNode = parentInstance && parentInstance.vnode;\n  }\n  return normalizedStack;\n}\nfunction formatTrace(trace) {\n  const logs = [];\n  trace.forEach((entry, i) => {\n    logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n  });\n  return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n  const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n  const isRoot = vnode.component ? vnode.component.parent == null : false;\n  const open = ` at <${formatComponentName(\n    vnode.component,\n    vnode.type,\n    isRoot\n  )}`;\n  const close = `>` + postfix;\n  return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n  const res = [];\n  const keys = Object.keys(props);\n  keys.slice(0, 3).forEach((key) => {\n    res.push(...formatProp(key, props[key]));\n  });\n  if (keys.length > 3) {\n    res.push(` ...`);\n  }\n  return res;\n}\nfunction formatProp(key, value, raw) {\n  if (isString(value)) {\n    value = JSON.stringify(value);\n    return raw ? value : [`${key}=${value}`];\n  } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n    return raw ? value : [`${key}=${value}`];\n  } else if (isRef(value)) {\n    value = formatProp(key, toRaw(value.value), true);\n    return raw ? value : [`${key}=Ref<`, value, `>`];\n  } else if (isFunction(value)) {\n    return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n  } else {\n    value = toRaw(value);\n    return raw ? value : [`${key}=`, value];\n  }\n}\nfunction assertNumber(val, type) {\n  if (!!!(process.env.NODE_ENV !== \"production\")) return;\n  if (val === void 0) {\n    return;\n  } else if (typeof val !== \"number\") {\n    warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n  } else if (isNaN(val)) {\n    warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n  }\n}\n\nconst ErrorCodes = {\n  \"SETUP_FUNCTION\": 0,\n  \"0\": \"SETUP_FUNCTION\",\n  \"RENDER_FUNCTION\": 1,\n  \"1\": \"RENDER_FUNCTION\",\n  \"NATIVE_EVENT_HANDLER\": 5,\n  \"5\": \"NATIVE_EVENT_HANDLER\",\n  \"COMPONENT_EVENT_HANDLER\": 6,\n  \"6\": \"COMPONENT_EVENT_HANDLER\",\n  \"VNODE_HOOK\": 7,\n  \"7\": \"VNODE_HOOK\",\n  \"DIRECTIVE_HOOK\": 8,\n  \"8\": \"DIRECTIVE_HOOK\",\n  \"TRANSITION_HOOK\": 9,\n  \"9\": \"TRANSITION_HOOK\",\n  \"APP_ERROR_HANDLER\": 10,\n  \"10\": \"APP_ERROR_HANDLER\",\n  \"APP_WARN_HANDLER\": 11,\n  \"11\": \"APP_WARN_HANDLER\",\n  \"FUNCTION_REF\": 12,\n  \"12\": \"FUNCTION_REF\",\n  \"ASYNC_COMPONENT_LOADER\": 13,\n  \"13\": \"ASYNC_COMPONENT_LOADER\",\n  \"SCHEDULER\": 14,\n  \"14\": \"SCHEDULER\",\n  \"COMPONENT_UPDATE\": 15,\n  \"15\": \"COMPONENT_UPDATE\",\n  \"APP_UNMOUNT_CLEANUP\": 16,\n  \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n  [\"sp\"]: \"serverPrefetch hook\",\n  [\"bc\"]: \"beforeCreate hook\",\n  [\"c\"]: \"created hook\",\n  [\"bm\"]: \"beforeMount hook\",\n  [\"m\"]: \"mounted hook\",\n  [\"bu\"]: \"beforeUpdate hook\",\n  [\"u\"]: \"updated\",\n  [\"bum\"]: \"beforeUnmount hook\",\n  [\"um\"]: \"unmounted hook\",\n  [\"a\"]: \"activated hook\",\n  [\"da\"]: \"deactivated hook\",\n  [\"ec\"]: \"errorCaptured hook\",\n  [\"rtc\"]: \"renderTracked hook\",\n  [\"rtg\"]: \"renderTriggered hook\",\n  [0]: \"setup function\",\n  [1]: \"render function\",\n  [2]: \"watcher getter\",\n  [3]: \"watcher callback\",\n  [4]: \"watcher cleanup function\",\n  [5]: \"native event handler\",\n  [6]: \"component event handler\",\n  [7]: \"vnode hook\",\n  [8]: \"directive hook\",\n  [9]: \"transition hook\",\n  [10]: \"app errorHandler\",\n  [11]: \"app warnHandler\",\n  [12]: \"ref function\",\n  [13]: \"async component loader\",\n  [14]: \"scheduler flush\",\n  [15]: \"component update\",\n  [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n  try {\n    return args ? fn(...args) : fn();\n  } catch (err) {\n    handleError(err, instance, type);\n  }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n  if (isFunction(fn)) {\n    const res = callWithErrorHandling(fn, instance, type, args);\n    if (res && isPromise(res)) {\n      res.catch((err) => {\n        handleError(err, instance, type);\n      });\n    }\n    return res;\n  }\n  if (isArray(fn)) {\n    const values = [];\n    for (let i = 0; i < fn.length; i++) {\n      values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n    }\n    return values;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(\n      `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n    );\n  }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n  const contextVNode = instance ? instance.vnode : null;\n  const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n  if (instance) {\n    let cur = instance.parent;\n    const exposedInstance = instance.proxy;\n    const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n    while (cur) {\n      const errorCapturedHooks = cur.ec;\n      if (errorCapturedHooks) {\n        for (let i = 0; i < errorCapturedHooks.length; i++) {\n          if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n            return;\n          }\n        }\n      }\n      cur = cur.parent;\n    }\n    if (errorHandler) {\n      pauseTracking();\n      callWithErrorHandling(errorHandler, null, 10, [\n        err,\n        exposedInstance,\n        errorInfo\n      ]);\n      resetTracking();\n      return;\n    }\n  }\n  logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const info = ErrorTypeStrings$1[type];\n    if (contextVNode) {\n      pushWarningContext(contextVNode);\n    }\n    warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n    if (contextVNode) {\n      popWarningContext();\n    }\n    if (throwInDev) {\n      throw err;\n    } else {\n      console.error(err);\n    }\n  } else if (throwInProd) {\n    throw err;\n  } else {\n    console.error(err);\n  }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n  const p = currentFlushPromise || resolvedPromise;\n  return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n  let start = flushIndex + 1;\n  let end = queue.length;\n  while (start < end) {\n    const middle = start + end >>> 1;\n    const middleJob = queue[middle];\n    const middleJobId = getId(middleJob);\n    if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n      start = middle + 1;\n    } else {\n      end = middle;\n    }\n  }\n  return start;\n}\nfunction queueJob(job) {\n  if (!(job.flags & 1)) {\n    const jobId = getId(job);\n    const lastJob = queue[queue.length - 1];\n    if (!lastJob || // fast path when the job id is larger than the tail\n    !(job.flags & 2) && jobId >= getId(lastJob)) {\n      queue.push(job);\n    } else {\n      queue.splice(findInsertionIndex(jobId), 0, job);\n    }\n    job.flags |= 1;\n    queueFlush();\n  }\n}\nfunction queueFlush() {\n  if (!currentFlushPromise) {\n    currentFlushPromise = resolvedPromise.then(flushJobs);\n  }\n}\nfunction queuePostFlushCb(cb) {\n  if (!isArray(cb)) {\n    if (activePostFlushCbs && cb.id === -1) {\n      activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n    } else if (!(cb.flags & 1)) {\n      pendingPostFlushCbs.push(cb);\n      cb.flags |= 1;\n    }\n  } else {\n    pendingPostFlushCbs.push(...cb);\n  }\n  queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    seen = seen || /* @__PURE__ */ new Map();\n  }\n  for (; i < queue.length; i++) {\n    const cb = queue[i];\n    if (cb && cb.flags & 2) {\n      if (instance && cb.id !== instance.uid) {\n        continue;\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n        continue;\n      }\n      queue.splice(i, 1);\n      i--;\n      if (cb.flags & 4) {\n        cb.flags &= ~1;\n      }\n      cb();\n      if (!(cb.flags & 4)) {\n        cb.flags &= ~1;\n      }\n    }\n  }\n}\nfunction flushPostFlushCbs(seen) {\n  if (pendingPostFlushCbs.length) {\n    const deduped = [...new Set(pendingPostFlushCbs)].sort(\n      (a, b) => getId(a) - getId(b)\n    );\n    pendingPostFlushCbs.length = 0;\n    if (activePostFlushCbs) {\n      activePostFlushCbs.push(...deduped);\n      return;\n    }\n    activePostFlushCbs = deduped;\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      seen = seen || /* @__PURE__ */ new Map();\n    }\n    for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n      const cb = activePostFlushCbs[postFlushIndex];\n      if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n        continue;\n      }\n      if (cb.flags & 4) {\n        cb.flags &= ~1;\n      }\n      if (!(cb.flags & 8)) cb();\n      cb.flags &= ~1;\n    }\n    activePostFlushCbs = null;\n    postFlushIndex = 0;\n  }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    seen = seen || /* @__PURE__ */ new Map();\n  }\n  const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n  try {\n    for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n      const job = queue[flushIndex];\n      if (job && !(job.flags & 8)) {\n        if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n          continue;\n        }\n        if (job.flags & 4) {\n          job.flags &= ~1;\n        }\n        callWithErrorHandling(\n          job,\n          job.i,\n          job.i ? 15 : 14\n        );\n        if (!(job.flags & 4)) {\n          job.flags &= ~1;\n        }\n      }\n    }\n  } finally {\n    for (; flushIndex < queue.length; flushIndex++) {\n      const job = queue[flushIndex];\n      if (job) {\n        job.flags &= ~1;\n      }\n    }\n    flushIndex = -1;\n    queue.length = 0;\n    flushPostFlushCbs(seen);\n    currentFlushPromise = null;\n    if (queue.length || pendingPostFlushCbs.length) {\n      flushJobs(seen);\n    }\n  }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n  const count = seen.get(fn) || 0;\n  if (count > RECURSION_LIMIT) {\n    const instance = fn.i;\n    const componentName = instance && getComponentName(instance.type);\n    handleError(\n      `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n      null,\n      10\n    );\n    return true;\n  }\n  seen.set(fn, count + 1);\n  return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n  getGlobalThis().__VUE_HMR_RUNTIME__ = {\n    createRecord: tryWrap(createRecord),\n    rerender: tryWrap(rerender),\n    reload: tryWrap(reload)\n  };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n  const id = instance.type.__hmrId;\n  let record = map.get(id);\n  if (!record) {\n    createRecord(id, instance.type);\n    record = map.get(id);\n  }\n  record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n  map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n  if (map.has(id)) {\n    return false;\n  }\n  map.set(id, {\n    initialDef: normalizeClassComponent(initialDef),\n    instances: /* @__PURE__ */ new Set()\n  });\n  return true;\n}\nfunction normalizeClassComponent(component) {\n  return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n  const record = map.get(id);\n  if (!record) {\n    return;\n  }\n  record.initialDef.render = newRender;\n  [...record.instances].forEach((instance) => {\n    if (newRender) {\n      instance.render = newRender;\n      normalizeClassComponent(instance.type).render = newRender;\n    }\n    instance.renderCache = [];\n    isHmrUpdating = true;\n    instance.update();\n    isHmrUpdating = false;\n  });\n}\nfunction reload(id, newComp) {\n  const record = map.get(id);\n  if (!record) return;\n  newComp = normalizeClassComponent(newComp);\n  updateComponentDef(record.initialDef, newComp);\n  const instances = [...record.instances];\n  for (let i = 0; i < instances.length; i++) {\n    const instance = instances[i];\n    const oldComp = normalizeClassComponent(instance.type);\n    let dirtyInstances = hmrDirtyComponents.get(oldComp);\n    if (!dirtyInstances) {\n      if (oldComp !== record.initialDef) {\n        updateComponentDef(oldComp, newComp);\n      }\n      hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n    }\n    dirtyInstances.add(instance);\n    instance.appContext.propsCache.delete(instance.type);\n    instance.appContext.emitsCache.delete(instance.type);\n    instance.appContext.optionsCache.delete(instance.type);\n    if (instance.ceReload) {\n      dirtyInstances.add(instance);\n      instance.ceReload(newComp.styles);\n      dirtyInstances.delete(instance);\n    } else if (instance.parent) {\n      queueJob(() => {\n        isHmrUpdating = true;\n        instance.parent.update();\n        isHmrUpdating = false;\n        dirtyInstances.delete(instance);\n      });\n    } else if (instance.appContext.reload) {\n      instance.appContext.reload();\n    } else if (typeof window !== \"undefined\") {\n      window.location.reload();\n    } else {\n      console.warn(\n        \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n      );\n    }\n    if (instance.root.ce && instance !== instance.root) {\n      instance.root.ce._removeChildStyle(oldComp);\n    }\n  }\n  queuePostFlushCb(() => {\n    hmrDirtyComponents.clear();\n  });\n}\nfunction updateComponentDef(oldComp, newComp) {\n  extend(oldComp, newComp);\n  for (const key in oldComp) {\n    if (key !== \"__file\" && !(key in newComp)) {\n      delete oldComp[key];\n    }\n  }\n}\nfunction tryWrap(fn) {\n  return (id, arg) => {\n    try {\n      return fn(id, arg);\n    } catch (e) {\n      console.error(e);\n      console.warn(\n        `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n      );\n    }\n  };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n  if (devtools$1) {\n    devtools$1.emit(event, ...args);\n  } else if (!devtoolsNotInstalled) {\n    buffer.push({ event, args });\n  }\n}\nfunction setDevtoolsHook$1(hook, target) {\n  var _a, _b;\n  devtools$1 = hook;\n  if (devtools$1) {\n    devtools$1.enabled = true;\n    buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n    buffer = [];\n  } else if (\n    // handle late devtools injection - only do this if we are in an actual\n    // browser environment to avoid the timer handle stalling test runner exit\n    // (#4815)\n    typeof window !== \"undefined\" && // some envs mock window but not fully\n    window.HTMLElement && // also exclude jsdom\n    // eslint-disable-next-line no-restricted-syntax\n    !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n  ) {\n    const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n    replay.push((newHook) => {\n      setDevtoolsHook$1(newHook, target);\n    });\n    setTimeout(() => {\n      if (!devtools$1) {\n        target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n        devtoolsNotInstalled = true;\n        buffer = [];\n      }\n    }, 3e3);\n  } else {\n    devtoolsNotInstalled = true;\n    buffer = [];\n  }\n}\nfunction devtoolsInitApp(app, version) {\n  emit$1(\"app:init\" /* APP_INIT */, app, version, {\n    Fragment,\n    Text,\n    Comment,\n    Static\n  });\n}\nfunction devtoolsUnmountApp(app) {\n  emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n  \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n  if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n  !devtools$1.cleanupBuffer(component)) {\n    _devtoolsComponentRemoved(component);\n  }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n  return (component) => {\n    emit$1(\n      hook,\n      component.appContext.app,\n      component.uid,\n      component.parent ? component.parent.uid : void 0,\n      component\n    );\n  };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n  return (component, type, time) => {\n    emit$1(hook, component.appContext.app, component.uid, component, type, time);\n  };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n  emit$1(\n    \"component:emit\" /* COMPONENT_EMIT */,\n    component.appContext.app,\n    component,\n    event,\n    params\n  );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n  const prev = currentRenderingInstance;\n  currentRenderingInstance = instance;\n  currentScopeId = instance && instance.type.__scopeId || null;\n  return prev;\n}\nfunction pushScopeId(id) {\n  currentScopeId = id;\n}\nfunction popScopeId() {\n  currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n  if (!ctx) return fn;\n  if (fn._n) {\n    return fn;\n  }\n  const renderFnWithContext = (...args) => {\n    if (renderFnWithContext._d) {\n      setBlockTracking(-1);\n    }\n    const prevInstance = setCurrentRenderingInstance(ctx);\n    let res;\n    try {\n      res = fn(...args);\n    } finally {\n      setCurrentRenderingInstance(prevInstance);\n      if (renderFnWithContext._d) {\n        setBlockTracking(1);\n      }\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      devtoolsComponentUpdated(ctx);\n    }\n    return res;\n  };\n  renderFnWithContext._n = true;\n  renderFnWithContext._c = true;\n  renderFnWithContext._d = true;\n  return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n  if (isBuiltInDirective(name)) {\n    warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n  }\n}\nfunction withDirectives(vnode, directives) {\n  if (currentRenderingInstance === null) {\n    !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n    return vnode;\n  }\n  const instance = getComponentPublicInstance(currentRenderingInstance);\n  const bindings = vnode.dirs || (vnode.dirs = []);\n  for (let i = 0; i < directives.length; i++) {\n    let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n    if (dir) {\n      if (isFunction(dir)) {\n        dir = {\n          mounted: dir,\n          updated: dir\n        };\n      }\n      if (dir.deep) {\n        traverse(value);\n      }\n      bindings.push({\n        dir,\n        instance,\n        value,\n        oldValue: void 0,\n        arg,\n        modifiers\n      });\n    }\n  }\n  return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n  const bindings = vnode.dirs;\n  const oldBindings = prevVNode && prevVNode.dirs;\n  for (let i = 0; i < bindings.length; i++) {\n    const binding = bindings[i];\n    if (oldBindings) {\n      binding.oldValue = oldBindings[i].value;\n    }\n    let hook = binding.dir[name];\n    if (hook) {\n      pauseTracking();\n      callWithAsyncErrorHandling(hook, instance, 8, [\n        vnode.el,\n        binding,\n        vnode,\n        prevVNode\n      ]);\n      resetTracking();\n    }\n  }\n}\n\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n  const targetSelector = props && props.to;\n  if (isString(targetSelector)) {\n    if (!select) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n      );\n      return null;\n    } else {\n      const target = select(targetSelector);\n      if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n        warn$1(\n          `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n        );\n      }\n      return target;\n    }\n  } else {\n    if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n      warn$1(`Invalid Teleport target: ${targetSelector}`);\n    }\n    return targetSelector;\n  }\n};\nconst TeleportImpl = {\n  name: \"Teleport\",\n  __isTeleport: true,\n  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n    const {\n      mc: mountChildren,\n      pc: patchChildren,\n      pbc: patchBlockChildren,\n      o: { insert, querySelector, createText, createComment }\n    } = internals;\n    const disabled = isTeleportDisabled(n2.props);\n    let { shapeFlag, children, dynamicChildren } = n2;\n    if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n      optimized = false;\n      dynamicChildren = null;\n    }\n    if (n1 == null) {\n      const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n      const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n      insert(placeholder, container, anchor);\n      insert(mainAnchor, container, anchor);\n      const mount = (container2, anchor2) => {\n        if (shapeFlag & 16) {\n          if (parentComponent && parentComponent.isCE) {\n            parentComponent.ce._teleportTarget = container2;\n          }\n          mountChildren(\n            children,\n            container2,\n            anchor2,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        }\n      };\n      const mountToTarget = () => {\n        const target = n2.target = resolveTarget(n2.props, querySelector);\n        const targetAnchor = prepareAnchor(target, n2, createText, insert);\n        if (target) {\n          if (namespace !== \"svg\" && isTargetSVG(target)) {\n            namespace = \"svg\";\n          } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n            namespace = \"mathml\";\n          }\n          if (!disabled) {\n            mount(target, targetAnchor);\n            updateCssVars(n2, false);\n          }\n        } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n          warn$1(\n            \"Invalid Teleport target on mount:\",\n            target,\n            `(${typeof target})`\n          );\n        }\n      };\n      if (disabled) {\n        mount(container, mainAnchor);\n        updateCssVars(n2, true);\n      }\n      if (isTeleportDeferred(n2.props)) {\n        queuePostRenderEffect(() => {\n          mountToTarget();\n          n2.el.__isMounted = true;\n        }, parentSuspense);\n      } else {\n        mountToTarget();\n      }\n    } else {\n      if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {\n        queuePostRenderEffect(() => {\n          TeleportImpl.process(\n            n1,\n            n2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized,\n            internals\n          );\n          delete n1.el.__isMounted;\n        }, parentSuspense);\n        return;\n      }\n      n2.el = n1.el;\n      n2.targetStart = n1.targetStart;\n      const mainAnchor = n2.anchor = n1.anchor;\n      const target = n2.target = n1.target;\n      const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n      const wasDisabled = isTeleportDisabled(n1.props);\n      const currentContainer = wasDisabled ? container : target;\n      const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n      if (namespace === \"svg\" || isTargetSVG(target)) {\n        namespace = \"svg\";\n      } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n        namespace = \"mathml\";\n      }\n      if (dynamicChildren) {\n        patchBlockChildren(\n          n1.dynamicChildren,\n          dynamicChildren,\n          currentContainer,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds\n        );\n        traverseStaticChildren(n1, n2, true);\n      } else if (!optimized) {\n        patchChildren(\n          n1,\n          n2,\n          currentContainer,\n          currentAnchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          false\n        );\n      }\n      if (disabled) {\n        if (!wasDisabled) {\n          moveTeleport(\n            n2,\n            container,\n            mainAnchor,\n            internals,\n            1\n          );\n        } else {\n          if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n            n2.props.to = n1.props.to;\n          }\n        }\n      } else {\n        if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n          const nextTarget = n2.target = resolveTarget(\n            n2.props,\n            querySelector\n          );\n          if (nextTarget) {\n            moveTeleport(\n              n2,\n              nextTarget,\n              null,\n              internals,\n              0\n            );\n          } else if (!!(process.env.NODE_ENV !== \"production\")) {\n            warn$1(\n              \"Invalid Teleport target on update:\",\n              target,\n              `(${typeof target})`\n            );\n          }\n        } else if (wasDisabled) {\n          moveTeleport(\n            n2,\n            target,\n            targetAnchor,\n            internals,\n            1\n          );\n        }\n      }\n      updateCssVars(n2, disabled);\n    }\n  },\n  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n    const {\n      shapeFlag,\n      children,\n      anchor,\n      targetStart,\n      targetAnchor,\n      target,\n      props\n    } = vnode;\n    if (target) {\n      hostRemove(targetStart);\n      hostRemove(targetAnchor);\n    }\n    doRemove && hostRemove(anchor);\n    if (shapeFlag & 16) {\n      const shouldRemove = doRemove || !isTeleportDisabled(props);\n      for (let i = 0; i < children.length; i++) {\n        const child = children[i];\n        unmount(\n          child,\n          parentComponent,\n          parentSuspense,\n          shouldRemove,\n          !!child.dynamicChildren\n        );\n      }\n    }\n  },\n  move: moveTeleport,\n  hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n  if (moveType === 0) {\n    insert(vnode.targetAnchor, container, parentAnchor);\n  }\n  const { el, anchor, shapeFlag, children, props } = vnode;\n  const isReorder = moveType === 2;\n  if (isReorder) {\n    insert(el, container, parentAnchor);\n  }\n  if (!isReorder || isTeleportDisabled(props)) {\n    if (shapeFlag & 16) {\n      for (let i = 0; i < children.length; i++) {\n        move(\n          children[i],\n          container,\n          parentAnchor,\n          2\n        );\n      }\n    }\n  }\n  if (isReorder) {\n    insert(anchor, container, parentAnchor);\n  }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n  o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n  const target = vnode.target = resolveTarget(\n    vnode.props,\n    querySelector\n  );\n  if (target) {\n    const disabled = isTeleportDisabled(vnode.props);\n    const targetNode = target._lpa || target.firstChild;\n    if (vnode.shapeFlag & 16) {\n      if (disabled) {\n        vnode.anchor = hydrateChildren(\n          nextSibling(node),\n          vnode,\n          parentNode(node),\n          parentComponent,\n          parentSuspense,\n          slotScopeIds,\n          optimized\n        );\n        vnode.targetStart = targetNode;\n        vnode.targetAnchor = targetNode && nextSibling(targetNode);\n      } else {\n        vnode.anchor = nextSibling(node);\n        let targetAnchor = targetNode;\n        while (targetAnchor) {\n          if (targetAnchor && targetAnchor.nodeType === 8) {\n            if (targetAnchor.data === \"teleport start anchor\") {\n              vnode.targetStart = targetAnchor;\n            } else if (targetAnchor.data === \"teleport anchor\") {\n              vnode.targetAnchor = targetAnchor;\n              target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n              break;\n            }\n          }\n          targetAnchor = nextSibling(targetAnchor);\n        }\n        if (!vnode.targetAnchor) {\n          prepareAnchor(target, vnode, createText, insert);\n        }\n        hydrateChildren(\n          targetNode && nextSibling(targetNode),\n          vnode,\n          target,\n          parentComponent,\n          parentSuspense,\n          slotScopeIds,\n          optimized\n        );\n      }\n    }\n    updateCssVars(vnode, disabled);\n  }\n  return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n  const ctx = vnode.ctx;\n  if (ctx && ctx.ut) {\n    let node, anchor;\n    if (isDisabled) {\n      node = vnode.el;\n      anchor = vnode.anchor;\n    } else {\n      node = vnode.targetStart;\n      anchor = vnode.targetAnchor;\n    }\n    while (node && node !== anchor) {\n      if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n      node = node.nextSibling;\n    }\n    ctx.ut();\n  }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n  const targetStart = vnode.targetStart = createText(\"\");\n  const targetAnchor = vnode.targetAnchor = createText(\"\");\n  targetStart[TeleportEndKey] = targetAnchor;\n  if (target) {\n    insert(targetStart, target);\n    insert(targetAnchor, target);\n  }\n  return targetAnchor;\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n  const state = {\n    isMounted: false,\n    isLeaving: false,\n    isUnmounting: false,\n    leavingVNodes: /* @__PURE__ */ new Map()\n  };\n  onMounted(() => {\n    state.isMounted = true;\n  });\n  onBeforeUnmount(() => {\n    state.isUnmounting = true;\n  });\n  return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n  mode: String,\n  appear: Boolean,\n  persisted: Boolean,\n  // enter\n  onBeforeEnter: TransitionHookValidator,\n  onEnter: TransitionHookValidator,\n  onAfterEnter: TransitionHookValidator,\n  onEnterCancelled: TransitionHookValidator,\n  // leave\n  onBeforeLeave: TransitionHookValidator,\n  onLeave: TransitionHookValidator,\n  onAfterLeave: TransitionHookValidator,\n  onLeaveCancelled: TransitionHookValidator,\n  // appear\n  onBeforeAppear: TransitionHookValidator,\n  onAppear: TransitionHookValidator,\n  onAfterAppear: TransitionHookValidator,\n  onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n  const subTree = instance.subTree;\n  return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n  name: `BaseTransition`,\n  props: BaseTransitionPropsValidators,\n  setup(props, { slots }) {\n    const instance = getCurrentInstance();\n    const state = useTransitionState();\n    return () => {\n      const children = slots.default && getTransitionRawChildren(slots.default(), true);\n      if (!children || !children.length) {\n        return;\n      }\n      const child = findNonCommentChild(children);\n      const rawProps = toRaw(props);\n      const { mode } = rawProps;\n      if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n        warn$1(`invalid <transition> mode: ${mode}`);\n      }\n      if (state.isLeaving) {\n        return emptyPlaceholder(child);\n      }\n      const innerChild = getInnerChild$1(child);\n      if (!innerChild) {\n        return emptyPlaceholder(child);\n      }\n      let enterHooks = resolveTransitionHooks(\n        innerChild,\n        rawProps,\n        state,\n        instance,\n        // #11061, ensure enterHooks is fresh after clone\n        (hooks) => enterHooks = hooks\n      );\n      if (innerChild.type !== Comment) {\n        setTransitionHooks(innerChild, enterHooks);\n      }\n      let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n      if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n        let leavingHooks = resolveTransitionHooks(\n          oldInnerChild,\n          rawProps,\n          state,\n          instance\n        );\n        setTransitionHooks(oldInnerChild, leavingHooks);\n        if (mode === \"out-in\" && innerChild.type !== Comment) {\n          state.isLeaving = true;\n          leavingHooks.afterLeave = () => {\n            state.isLeaving = false;\n            if (!(instance.job.flags & 8)) {\n              instance.update();\n            }\n            delete leavingHooks.afterLeave;\n            oldInnerChild = void 0;\n          };\n          return emptyPlaceholder(child);\n        } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n          leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n            const leavingVNodesCache = getLeavingNodesForType(\n              state,\n              oldInnerChild\n            );\n            leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n            el[leaveCbKey] = () => {\n              earlyRemove();\n              el[leaveCbKey] = void 0;\n              delete enterHooks.delayedLeave;\n              oldInnerChild = void 0;\n            };\n            enterHooks.delayedLeave = () => {\n              delayedLeave();\n              delete enterHooks.delayedLeave;\n              oldInnerChild = void 0;\n            };\n          };\n        } else {\n          oldInnerChild = void 0;\n        }\n      } else if (oldInnerChild) {\n        oldInnerChild = void 0;\n      }\n      return child;\n    };\n  }\n};\nfunction findNonCommentChild(children) {\n  let child = children[0];\n  if (children.length > 1) {\n    let hasFound = false;\n    for (const c of children) {\n      if (c.type !== Comment) {\n        if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n          warn$1(\n            \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n          );\n          break;\n        }\n        child = c;\n        hasFound = true;\n        if (!!!(process.env.NODE_ENV !== \"production\")) break;\n      }\n    }\n  }\n  return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n  const { leavingVNodes } = state;\n  let leavingVNodesCache = leavingVNodes.get(vnode.type);\n  if (!leavingVNodesCache) {\n    leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n    leavingVNodes.set(vnode.type, leavingVNodesCache);\n  }\n  return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n  const {\n    appear,\n    mode,\n    persisted = false,\n    onBeforeEnter,\n    onEnter,\n    onAfterEnter,\n    onEnterCancelled,\n    onBeforeLeave,\n    onLeave,\n    onAfterLeave,\n    onLeaveCancelled,\n    onBeforeAppear,\n    onAppear,\n    onAfterAppear,\n    onAppearCancelled\n  } = props;\n  const key = String(vnode.key);\n  const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n  const callHook = (hook, args) => {\n    hook && callWithAsyncErrorHandling(\n      hook,\n      instance,\n      9,\n      args\n    );\n  };\n  const callAsyncHook = (hook, args) => {\n    const done = args[1];\n    callHook(hook, args);\n    if (isArray(hook)) {\n      if (hook.every((hook2) => hook2.length <= 1)) done();\n    } else if (hook.length <= 1) {\n      done();\n    }\n  };\n  const hooks = {\n    mode,\n    persisted,\n    beforeEnter(el) {\n      let hook = onBeforeEnter;\n      if (!state.isMounted) {\n        if (appear) {\n          hook = onBeforeAppear || onBeforeEnter;\n        } else {\n          return;\n        }\n      }\n      if (el[leaveCbKey]) {\n        el[leaveCbKey](\n          true\n          /* cancelled */\n        );\n      }\n      const leavingVNode = leavingVNodesCache[key];\n      if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n        leavingVNode.el[leaveCbKey]();\n      }\n      callHook(hook, [el]);\n    },\n    enter(el) {\n      let hook = onEnter;\n      let afterHook = onAfterEnter;\n      let cancelHook = onEnterCancelled;\n      if (!state.isMounted) {\n        if (appear) {\n          hook = onAppear || onEnter;\n          afterHook = onAfterAppear || onAfterEnter;\n          cancelHook = onAppearCancelled || onEnterCancelled;\n        } else {\n          return;\n        }\n      }\n      let called = false;\n      const done = el[enterCbKey] = (cancelled) => {\n        if (called) return;\n        called = true;\n        if (cancelled) {\n          callHook(cancelHook, [el]);\n        } else {\n          callHook(afterHook, [el]);\n        }\n        if (hooks.delayedLeave) {\n          hooks.delayedLeave();\n        }\n        el[enterCbKey] = void 0;\n      };\n      if (hook) {\n        callAsyncHook(hook, [el, done]);\n      } else {\n        done();\n      }\n    },\n    leave(el, remove) {\n      const key2 = String(vnode.key);\n      if (el[enterCbKey]) {\n        el[enterCbKey](\n          true\n          /* cancelled */\n        );\n      }\n      if (state.isUnmounting) {\n        return remove();\n      }\n      callHook(onBeforeLeave, [el]);\n      let called = false;\n      const done = el[leaveCbKey] = (cancelled) => {\n        if (called) return;\n        called = true;\n        remove();\n        if (cancelled) {\n          callHook(onLeaveCancelled, [el]);\n        } else {\n          callHook(onAfterLeave, [el]);\n        }\n        el[leaveCbKey] = void 0;\n        if (leavingVNodesCache[key2] === vnode) {\n          delete leavingVNodesCache[key2];\n        }\n      };\n      leavingVNodesCache[key2] = vnode;\n      if (onLeave) {\n        callAsyncHook(onLeave, [el, done]);\n      } else {\n        done();\n      }\n    },\n    clone(vnode2) {\n      const hooks2 = resolveTransitionHooks(\n        vnode2,\n        props,\n        state,\n        instance,\n        postClone\n      );\n      if (postClone) postClone(hooks2);\n      return hooks2;\n    }\n  };\n  return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n  if (isKeepAlive(vnode)) {\n    vnode = cloneVNode(vnode);\n    vnode.children = null;\n    return vnode;\n  }\n}\nfunction getInnerChild$1(vnode) {\n  if (!isKeepAlive(vnode)) {\n    if (isTeleport(vnode.type) && vnode.children) {\n      return findNonCommentChild(vnode.children);\n    }\n    return vnode;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && vnode.component) {\n    return vnode.component.subTree;\n  }\n  const { shapeFlag, children } = vnode;\n  if (children) {\n    if (shapeFlag & 16) {\n      return children[0];\n    }\n    if (shapeFlag & 32 && isFunction(children.default)) {\n      return children.default();\n    }\n  }\n}\nfunction setTransitionHooks(vnode, hooks) {\n  if (vnode.shapeFlag & 6 && vnode.component) {\n    vnode.transition = hooks;\n    setTransitionHooks(vnode.component.subTree, hooks);\n  } else if (vnode.shapeFlag & 128) {\n    vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n    vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n  } else {\n    vnode.transition = hooks;\n  }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n  let ret = [];\n  let keyedFragmentCount = 0;\n  for (let i = 0; i < children.length; i++) {\n    let child = children[i];\n    const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n    if (child.type === Fragment) {\n      if (child.patchFlag & 128) keyedFragmentCount++;\n      ret = ret.concat(\n        getTransitionRawChildren(child.children, keepComment, key)\n      );\n    } else if (keepComment || child.type !== Comment) {\n      ret.push(key != null ? cloneVNode(child, { key }) : child);\n    }\n  }\n  if (keyedFragmentCount > 1) {\n    for (let i = 0; i < ret.length; i++) {\n      ret[i].patchFlag = -2;\n    }\n  }\n  return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n  return isFunction(options) ? (\n    // #8236: extend call and options.name access are considered side-effects\n    // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n    /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n  ) : options;\n}\n\nfunction useId() {\n  const i = getCurrentInstance();\n  if (i) {\n    return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(\n      `useId() is called when there is no active component instance to be associated with.`\n    );\n  }\n  return \"\";\n}\nfunction markAsyncBoundary(instance) {\n  instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n  const i = getCurrentInstance();\n  const r = shallowRef(null);\n  if (i) {\n    const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n    let desc;\n    if (!!(process.env.NODE_ENV !== \"production\") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n      warn$1(`useTemplateRef('${key}') already exists.`);\n    } else {\n      Object.defineProperty(refs, key, {\n        enumerable: true,\n        get: () => r.value,\n        set: (val) => r.value = val\n      });\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(\n      `useTemplateRef() is called when there is no active component instance to be associated with.`\n    );\n  }\n  const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    knownTemplateRefs.add(ret);\n  }\n  return ret;\n}\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n  if (isArray(rawRef)) {\n    rawRef.forEach(\n      (r, i) => setRef(\n        r,\n        oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n        parentSuspense,\n        vnode,\n        isUnmount\n      )\n    );\n    return;\n  }\n  if (isAsyncWrapper(vnode) && !isUnmount) {\n    if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n      setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n    }\n    return;\n  }\n  const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n  const value = isUnmount ? null : refValue;\n  const { i: owner, r: ref } = rawRef;\n  if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n    warn$1(\n      `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n    );\n    return;\n  }\n  const oldRef = oldRawRef && oldRawRef.r;\n  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n  const setupState = owner.setupState;\n  const rawSetupState = toRaw(setupState);\n  const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n        warn$1(\n          `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n        );\n      }\n      if (knownTemplateRefs.has(rawSetupState[key])) {\n        return false;\n      }\n    }\n    return hasOwn(rawSetupState, key);\n  };\n  if (oldRef != null && oldRef !== ref) {\n    if (isString(oldRef)) {\n      refs[oldRef] = null;\n      if (canSetSetupRef(oldRef)) {\n        setupState[oldRef] = null;\n      }\n    } else if (isRef(oldRef)) {\n      oldRef.value = null;\n    }\n  }\n  if (isFunction(ref)) {\n    callWithErrorHandling(ref, owner, 12, [value, refs]);\n  } else {\n    const _isString = isString(ref);\n    const _isRef = isRef(ref);\n    if (_isString || _isRef) {\n      const doSet = () => {\n        if (rawRef.f) {\n          const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;\n          if (isUnmount) {\n            isArray(existing) && remove(existing, refValue);\n          } else {\n            if (!isArray(existing)) {\n              if (_isString) {\n                refs[ref] = [refValue];\n                if (canSetSetupRef(ref)) {\n                  setupState[ref] = refs[ref];\n                }\n              } else {\n                ref.value = [refValue];\n                if (rawRef.k) refs[rawRef.k] = ref.value;\n              }\n            } else if (!existing.includes(refValue)) {\n              existing.push(refValue);\n            }\n          }\n        } else if (_isString) {\n          refs[ref] = value;\n          if (canSetSetupRef(ref)) {\n            setupState[ref] = value;\n          }\n        } else if (_isRef) {\n          ref.value = value;\n          if (rawRef.k) refs[rawRef.k] = value;\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n        }\n      };\n      if (value) {\n        doSet.id = -1;\n        queuePostRenderEffect(doSet, parentSuspense);\n      } else {\n        doSet();\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n    }\n  }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n  if (hasLoggedMismatchError) {\n    return;\n  }\n  console.error(\"Hydration completed but contains mismatches.\");\n  hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n  if (container.nodeType !== 1) return void 0;\n  if (isSVGContainer(container)) return \"svg\";\n  if (isMathMLContainer(container)) return \"mathml\";\n  return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n  const {\n    mt: mountComponent,\n    p: patch,\n    o: {\n      patchProp,\n      createText,\n      nextSibling,\n      parentNode,\n      remove,\n      insert,\n      createComment\n    }\n  } = rendererInternals;\n  const hydrate = (vnode, container) => {\n    if (!container.hasChildNodes()) {\n      (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n        `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n      );\n      patch(null, vnode, container);\n      flushPostFlushCbs();\n      container._vnode = vnode;\n      return;\n    }\n    hydrateNode(container.firstChild, vnode, null, null, null);\n    flushPostFlushCbs();\n    container._vnode = vnode;\n  };\n  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n    optimized = optimized || !!vnode.dynamicChildren;\n    const isFragmentStart = isComment(node) && node.data === \"[\";\n    const onMismatch = () => handleMismatch(\n      node,\n      vnode,\n      parentComponent,\n      parentSuspense,\n      slotScopeIds,\n      isFragmentStart\n    );\n    const { type, ref, shapeFlag, patchFlag } = vnode;\n    let domType = node.nodeType;\n    vnode.el = node;\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      def(node, \"__vnode\", vnode, true);\n      def(node, \"__vueParentComponent\", parentComponent, true);\n    }\n    if (patchFlag === -2) {\n      optimized = false;\n      vnode.dynamicChildren = null;\n    }\n    let nextNode = null;\n    switch (type) {\n      case Text:\n        if (domType !== 3) {\n          if (vnode.children === \"\") {\n            insert(vnode.el = createText(\"\"), parentNode(node), node);\n            nextNode = node;\n          } else {\n            nextNode = onMismatch();\n          }\n        } else {\n          if (node.data !== vnode.children) {\n            (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n              `Hydration text mismatch in`,\n              node.parentNode,\n              `\n  - rendered on server: ${JSON.stringify(\n                node.data\n              )}\n  - expected on client: ${JSON.stringify(vnode.children)}`\n            );\n            logMismatchError();\n            node.data = vnode.children;\n          }\n          nextNode = nextSibling(node);\n        }\n        break;\n      case Comment:\n        if (isTemplateNode(node)) {\n          nextNode = nextSibling(node);\n          replaceNode(\n            vnode.el = node.content.firstChild,\n            node,\n            parentComponent\n          );\n        } else if (domType !== 8 || isFragmentStart) {\n          nextNode = onMismatch();\n        } else {\n          nextNode = nextSibling(node);\n        }\n        break;\n      case Static:\n        if (isFragmentStart) {\n          node = nextSibling(node);\n          domType = node.nodeType;\n        }\n        if (domType === 1 || domType === 3) {\n          nextNode = node;\n          const needToAdoptContent = !vnode.children.length;\n          for (let i = 0; i < vnode.staticCount; i++) {\n            if (needToAdoptContent)\n              vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n            if (i === vnode.staticCount - 1) {\n              vnode.anchor = nextNode;\n            }\n            nextNode = nextSibling(nextNode);\n          }\n          return isFragmentStart ? nextSibling(nextNode) : nextNode;\n        } else {\n          onMismatch();\n        }\n        break;\n      case Fragment:\n        if (!isFragmentStart) {\n          nextNode = onMismatch();\n        } else {\n          nextNode = hydrateFragment(\n            node,\n            vnode,\n            parentComponent,\n            parentSuspense,\n            slotScopeIds,\n            optimized\n          );\n        }\n        break;\n      default:\n        if (shapeFlag & 1) {\n          if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n            nextNode = onMismatch();\n          } else {\n            nextNode = hydrateElement(\n              node,\n              vnode,\n              parentComponent,\n              parentSuspense,\n              slotScopeIds,\n              optimized\n            );\n          }\n        } else if (shapeFlag & 6) {\n          vnode.slotScopeIds = slotScopeIds;\n          const container = parentNode(node);\n          if (isFragmentStart) {\n            nextNode = locateClosingAnchor(node);\n          } else if (isComment(node) && node.data === \"teleport start\") {\n            nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n          } else {\n            nextNode = nextSibling(node);\n          }\n          mountComponent(\n            vnode,\n            container,\n            null,\n            parentComponent,\n            parentSuspense,\n            getContainerType(container),\n            optimized\n          );\n          if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n            let subTree;\n            if (isFragmentStart) {\n              subTree = createVNode(Fragment);\n              subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n            } else {\n              subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n            }\n            subTree.el = node;\n            vnode.component.subTree = subTree;\n          }\n        } else if (shapeFlag & 64) {\n          if (domType !== 8) {\n            nextNode = onMismatch();\n          } else {\n            nextNode = vnode.type.hydrate(\n              node,\n              vnode,\n              parentComponent,\n              parentSuspense,\n              slotScopeIds,\n              optimized,\n              rendererInternals,\n              hydrateChildren\n            );\n          }\n        } else if (shapeFlag & 128) {\n          nextNode = vnode.type.hydrate(\n            node,\n            vnode,\n            parentComponent,\n            parentSuspense,\n            getContainerType(parentNode(node)),\n            slotScopeIds,\n            optimized,\n            rendererInternals,\n            hydrateNode\n          );\n        } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n          warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n        }\n    }\n    if (ref != null) {\n      setRef(ref, null, parentSuspense, vnode);\n    }\n    return nextNode;\n  };\n  const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n    optimized = optimized || !!vnode.dynamicChildren;\n    const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n    const forcePatch = type === \"input\" || type === \"option\";\n    if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n      if (dirs) {\n        invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n      }\n      let needCallTransitionHooks = false;\n      if (isTemplateNode(el)) {\n        needCallTransitionHooks = needTransition(\n          null,\n          // no need check parentSuspense in hydration\n          transition\n        ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n        const content = el.content.firstChild;\n        if (needCallTransitionHooks) {\n          transition.beforeEnter(content);\n        }\n        replaceNode(content, el, parentComponent);\n        vnode.el = el = content;\n      }\n      if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n      !(props && (props.innerHTML || props.textContent))) {\n        let next = hydrateChildren(\n          el.firstChild,\n          vnode,\n          el,\n          parentComponent,\n          parentSuspense,\n          slotScopeIds,\n          optimized\n        );\n        let hasWarned = false;\n        while (next) {\n          if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n            if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n              warn$1(\n                `Hydration children mismatch on`,\n                el,\n                `\nServer rendered element contains more child nodes than client vdom.`\n              );\n              hasWarned = true;\n            }\n            logMismatchError();\n          }\n          const cur = next;\n          next = next.nextSibling;\n          remove(cur);\n        }\n      } else if (shapeFlag & 8) {\n        let clientText = vnode.children;\n        if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n          clientText = clientText.slice(1);\n        }\n        if (el.textContent !== clientText) {\n          if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n            (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n              `Hydration text content mismatch on`,\n              el,\n              `\n  - rendered on server: ${el.textContent}\n  - expected on client: ${vnode.children}`\n            );\n            logMismatchError();\n          }\n          el.textContent = vnode.children;\n        }\n      }\n      if (props) {\n        if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n          const isCustomElement = el.tagName.includes(\"-\");\n          for (const key in props) {\n            if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n            // as it could have mutated the DOM in any possible way\n            !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n              logMismatchError();\n            }\n            if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n            key[0] === \".\" || isCustomElement) {\n              patchProp(el, key, null, props[key], void 0, parentComponent);\n            }\n          }\n        } else if (props.onClick) {\n          patchProp(\n            el,\n            \"onClick\",\n            null,\n            props.onClick,\n            void 0,\n            parentComponent\n          );\n        } else if (patchFlag & 4 && isReactive(props.style)) {\n          for (const key in props.style) props.style[key];\n        }\n      }\n      let vnodeHooks;\n      if (vnodeHooks = props && props.onVnodeBeforeMount) {\n        invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n      }\n      if (dirs) {\n        invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n      }\n      if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n        queueEffectWithSuspense(() => {\n          vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n          needCallTransitionHooks && transition.enter(el);\n          dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n        }, parentSuspense);\n      }\n    }\n    return el.nextSibling;\n  };\n  const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n    optimized = optimized || !!parentVNode.dynamicChildren;\n    const children = parentVNode.children;\n    const l = children.length;\n    let hasWarned = false;\n    for (let i = 0; i < l; i++) {\n      const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n      const isText = vnode.type === Text;\n      if (node) {\n        if (isText && !optimized) {\n          if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n            insert(\n              createText(\n                node.data.slice(vnode.children.length)\n              ),\n              container,\n              nextSibling(node)\n            );\n            node.data = vnode.children;\n          }\n        }\n        node = hydrateNode(\n          node,\n          vnode,\n          parentComponent,\n          parentSuspense,\n          slotScopeIds,\n          optimized\n        );\n      } else if (isText && !vnode.children) {\n        insert(vnode.el = createText(\"\"), container);\n      } else {\n        if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n          if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n            warn$1(\n              `Hydration children mismatch on`,\n              container,\n              `\nServer rendered element contains fewer child nodes than client vdom.`\n            );\n            hasWarned = true;\n          }\n          logMismatchError();\n        }\n        patch(\n          null,\n          vnode,\n          container,\n          null,\n          parentComponent,\n          parentSuspense,\n          getContainerType(container),\n          slotScopeIds\n        );\n      }\n    }\n    return node;\n  };\n  const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n    const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n    if (fragmentSlotScopeIds) {\n      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n    }\n    const container = parentNode(node);\n    const next = hydrateChildren(\n      nextSibling(node),\n      vnode,\n      container,\n      parentComponent,\n      parentSuspense,\n      slotScopeIds,\n      optimized\n    );\n    if (next && isComment(next) && next.data === \"]\") {\n      return nextSibling(vnode.anchor = next);\n    } else {\n      logMismatchError();\n      insert(vnode.anchor = createComment(`]`), container, next);\n      return next;\n    }\n  };\n  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n    if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n      (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n        `Hydration node mismatch:\n- rendered on server:`,\n        node,\n        node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n        `\n- expected on client:`,\n        vnode.type\n      );\n      logMismatchError();\n    }\n    vnode.el = null;\n    if (isFragment) {\n      const end = locateClosingAnchor(node);\n      while (true) {\n        const next2 = nextSibling(node);\n        if (next2 && next2 !== end) {\n          remove(next2);\n        } else {\n          break;\n        }\n      }\n    }\n    const next = nextSibling(node);\n    const container = parentNode(node);\n    remove(node);\n    patch(\n      null,\n      vnode,\n      container,\n      next,\n      parentComponent,\n      parentSuspense,\n      getContainerType(container),\n      slotScopeIds\n    );\n    if (parentComponent) {\n      parentComponent.vnode.el = vnode.el;\n      updateHOCHostEl(parentComponent, vnode.el);\n    }\n    return next;\n  };\n  const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n    let match = 0;\n    while (node) {\n      node = nextSibling(node);\n      if (node && isComment(node)) {\n        if (node.data === open) match++;\n        if (node.data === close) {\n          if (match === 0) {\n            return nextSibling(node);\n          } else {\n            match--;\n          }\n        }\n      }\n    }\n    return node;\n  };\n  const replaceNode = (newNode, oldNode, parentComponent) => {\n    const parentNode2 = oldNode.parentNode;\n    if (parentNode2) {\n      parentNode2.replaceChild(newNode, oldNode);\n    }\n    let parent = parentComponent;\n    while (parent) {\n      if (parent.vnode.el === oldNode) {\n        parent.vnode.el = parent.subTree.el = newNode;\n      }\n      parent = parent.parent;\n    }\n  };\n  const isTemplateNode = (node) => {\n    return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n  };\n  return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n  let mismatchType;\n  let mismatchKey;\n  let actual;\n  let expected;\n  if (key === \"class\") {\n    actual = el.getAttribute(\"class\");\n    expected = normalizeClass(clientValue);\n    if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n      mismatchType = 2 /* CLASS */;\n      mismatchKey = `class`;\n    }\n  } else if (key === \"style\") {\n    actual = el.getAttribute(\"style\") || \"\";\n    expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n    const actualMap = toStyleMap(actual);\n    const expectedMap = toStyleMap(expected);\n    if (vnode.dirs) {\n      for (const { dir, value } of vnode.dirs) {\n        if (dir.name === \"show\" && !value) {\n          expectedMap.set(\"display\", \"none\");\n        }\n      }\n    }\n    if (instance) {\n      resolveCssVars(instance, vnode, expectedMap);\n    }\n    if (!isMapEqual(actualMap, expectedMap)) {\n      mismatchType = 3 /* STYLE */;\n      mismatchKey = \"style\";\n    }\n  } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n    if (isBooleanAttr(key)) {\n      actual = el.hasAttribute(key);\n      expected = includeBooleanAttr(clientValue);\n    } else if (clientValue == null) {\n      actual = el.hasAttribute(key);\n      expected = false;\n    } else {\n      if (el.hasAttribute(key)) {\n        actual = el.getAttribute(key);\n      } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n        actual = el.value;\n      } else {\n        actual = false;\n      }\n      expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n    }\n    if (actual !== expected) {\n      mismatchType = 4 /* ATTRIBUTE */;\n      mismatchKey = key;\n    }\n  }\n  if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n    const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n    const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n    const postSegment = `\n  - rendered on server: ${format(actual)}\n  - expected on client: ${format(expected)}\n  Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n  You should fix the source of the mismatch.`;\n    {\n      warn$1(preSegment, el, postSegment);\n    }\n    return true;\n  }\n  return false;\n}\nfunction toClassSet(str) {\n  return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n  if (a.size !== b.size) {\n    return false;\n  }\n  for (const s of a) {\n    if (!b.has(s)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction toStyleMap(str) {\n  const styleMap = /* @__PURE__ */ new Map();\n  for (const item of str.split(\";\")) {\n    let [key, value] = item.split(\":\");\n    key = key.trim();\n    value = value && value.trim();\n    if (key && value) {\n      styleMap.set(key, value);\n    }\n  }\n  return styleMap;\n}\nfunction isMapEqual(a, b) {\n  if (a.size !== b.size) {\n    return false;\n  }\n  for (const [key, value] of a) {\n    if (value !== b.get(key)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n  const root = instance.subTree;\n  if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n    const cssVars = instance.getCssVars();\n    for (const key in cssVars) {\n      expectedMap.set(\n        `--${getEscapedCssVarName(key, false)}`,\n        String(cssVars[key])\n      );\n    }\n  }\n  if (vnode === root && instance.parent) {\n    resolveCssVars(instance.parent, instance.vnode, expectedMap);\n  }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n  [0 /* TEXT */]: \"text\",\n  [1 /* CHILDREN */]: \"children\",\n  [2 /* CLASS */]: \"class\",\n  [3 /* STYLE */]: \"style\",\n  [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n  if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n    while (el && !el.hasAttribute(allowMismatchAttr)) {\n      el = el.parentElement;\n    }\n  }\n  const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n  if (allowedAttr == null) {\n    return false;\n  } else if (allowedAttr === \"\") {\n    return true;\n  } else {\n    const list = allowedAttr.split(\",\");\n    if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n      return true;\n    }\n    return allowedAttr.split(\",\").includes(MismatchTypeString[allowedType]);\n  }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n  const id = requestIdleCallback(hydrate, { timeout });\n  return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n  const { top, left, bottom, right } = el.getBoundingClientRect();\n  const { innerHeight, innerWidth } = window;\n  return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n  const ob = new IntersectionObserver((entries) => {\n    for (const e of entries) {\n      if (!e.isIntersecting) continue;\n      ob.disconnect();\n      hydrate();\n      break;\n    }\n  }, opts);\n  forEach((el) => {\n    if (!(el instanceof Element)) return;\n    if (elementIsVisibleInViewport(el)) {\n      hydrate();\n      ob.disconnect();\n      return false;\n    }\n    ob.observe(el);\n  });\n  return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n  if (query) {\n    const mql = matchMedia(query);\n    if (mql.matches) {\n      hydrate();\n    } else {\n      mql.addEventListener(\"change\", hydrate, { once: true });\n      return () => mql.removeEventListener(\"change\", hydrate);\n    }\n  }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n  if (isString(interactions)) interactions = [interactions];\n  let hasHydrated = false;\n  const doHydrate = (e) => {\n    if (!hasHydrated) {\n      hasHydrated = true;\n      teardown();\n      hydrate();\n      e.target.dispatchEvent(new e.constructor(e.type, e));\n    }\n  };\n  const teardown = () => {\n    forEach((el) => {\n      for (const i of interactions) {\n        el.removeEventListener(i, doHydrate);\n      }\n    });\n  };\n  forEach((el) => {\n    for (const i of interactions) {\n      el.addEventListener(i, doHydrate, { once: true });\n    }\n  });\n  return teardown;\n};\nfunction forEachElement(node, cb) {\n  if (isComment(node) && node.data === \"[\") {\n    let depth = 1;\n    let next = node.nextSibling;\n    while (next) {\n      if (next.nodeType === 1) {\n        const result = cb(next);\n        if (result === false) {\n          break;\n        }\n      } else if (isComment(next)) {\n        if (next.data === \"]\") {\n          if (--depth === 0) break;\n        } else if (next.data === \"[\") {\n          depth++;\n        }\n      }\n      next = next.nextSibling;\n    }\n  } else {\n    cb(node);\n  }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n  if (isFunction(source)) {\n    source = { loader: source };\n  }\n  const {\n    loader,\n    loadingComponent,\n    errorComponent,\n    delay = 200,\n    hydrate: hydrateStrategy,\n    timeout,\n    // undefined = never times out\n    suspensible = true,\n    onError: userOnError\n  } = source;\n  let pendingRequest = null;\n  let resolvedComp;\n  let retries = 0;\n  const retry = () => {\n    retries++;\n    pendingRequest = null;\n    return load();\n  };\n  const load = () => {\n    let thisRequest;\n    return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n      err = err instanceof Error ? err : new Error(String(err));\n      if (userOnError) {\n        return new Promise((resolve, reject) => {\n          const userRetry = () => resolve(retry());\n          const userFail = () => reject(err);\n          userOnError(err, userRetry, userFail, retries + 1);\n        });\n      } else {\n        throw err;\n      }\n    }).then((comp) => {\n      if (thisRequest !== pendingRequest && pendingRequest) {\n        return pendingRequest;\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n        warn$1(\n          `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n        );\n      }\n      if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n        comp = comp.default;\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n        throw new Error(`Invalid async component load result: ${comp}`);\n      }\n      resolvedComp = comp;\n      return comp;\n    }));\n  };\n  return defineComponent({\n    name: \"AsyncComponentWrapper\",\n    __asyncLoader: load,\n    __asyncHydrate(el, instance, hydrate) {\n      const doHydrate = hydrateStrategy ? () => {\n        const teardown = hydrateStrategy(\n          hydrate,\n          (cb) => forEachElement(el, cb)\n        );\n        if (teardown) {\n          (instance.bum || (instance.bum = [])).push(teardown);\n        }\n      } : hydrate;\n      if (resolvedComp) {\n        doHydrate();\n      } else {\n        load().then(() => !instance.isUnmounted && doHydrate());\n      }\n    },\n    get __asyncResolved() {\n      return resolvedComp;\n    },\n    setup() {\n      const instance = currentInstance;\n      markAsyncBoundary(instance);\n      if (resolvedComp) {\n        return () => createInnerComp(resolvedComp, instance);\n      }\n      const onError = (err) => {\n        pendingRequest = null;\n        handleError(\n          err,\n          instance,\n          13,\n          !errorComponent\n        );\n      };\n      if (suspensible && instance.suspense || isInSSRComponentSetup) {\n        return load().then((comp) => {\n          return () => createInnerComp(comp, instance);\n        }).catch((err) => {\n          onError(err);\n          return () => errorComponent ? createVNode(errorComponent, {\n            error: err\n          }) : null;\n        });\n      }\n      const loaded = ref(false);\n      const error = ref();\n      const delayed = ref(!!delay);\n      if (delay) {\n        setTimeout(() => {\n          delayed.value = false;\n        }, delay);\n      }\n      if (timeout != null) {\n        setTimeout(() => {\n          if (!loaded.value && !error.value) {\n            const err = new Error(\n              `Async component timed out after ${timeout}ms.`\n            );\n            onError(err);\n            error.value = err;\n          }\n        }, timeout);\n      }\n      load().then(() => {\n        loaded.value = true;\n        if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n          instance.parent.update();\n        }\n      }).catch((err) => {\n        onError(err);\n        error.value = err;\n      });\n      return () => {\n        if (loaded.value && resolvedComp) {\n          return createInnerComp(resolvedComp, instance);\n        } else if (error.value && errorComponent) {\n          return createVNode(errorComponent, {\n            error: error.value\n          });\n        } else if (loadingComponent && !delayed.value) {\n          return createVNode(loadingComponent);\n        }\n      };\n    }\n  });\n}\nfunction createInnerComp(comp, parent) {\n  const { ref: ref2, props, children, ce } = parent.vnode;\n  const vnode = createVNode(comp, props, children);\n  vnode.ref = ref2;\n  vnode.ce = ce;\n  delete parent.vnode.ce;\n  return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n  name: `KeepAlive`,\n  // Marker for special handling inside the renderer. We are not using a ===\n  // check directly on KeepAlive in the renderer, because importing it directly\n  // would prevent it from being tree-shaken.\n  __isKeepAlive: true,\n  props: {\n    include: [String, RegExp, Array],\n    exclude: [String, RegExp, Array],\n    max: [String, Number]\n  },\n  setup(props, { slots }) {\n    const instance = getCurrentInstance();\n    const sharedContext = instance.ctx;\n    if (!sharedContext.renderer) {\n      return () => {\n        const children = slots.default && slots.default();\n        return children && children.length === 1 ? children[0] : children;\n      };\n    }\n    const cache = /* @__PURE__ */ new Map();\n    const keys = /* @__PURE__ */ new Set();\n    let current = null;\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      instance.__v_cache = cache;\n    }\n    const parentSuspense = instance.suspense;\n    const {\n      renderer: {\n        p: patch,\n        m: move,\n        um: _unmount,\n        o: { createElement }\n      }\n    } = sharedContext;\n    const storageContainer = createElement(\"div\");\n    sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n      const instance2 = vnode.component;\n      move(vnode, container, anchor, 0, parentSuspense);\n      patch(\n        instance2.vnode,\n        vnode,\n        container,\n        anchor,\n        instance2,\n        parentSuspense,\n        namespace,\n        vnode.slotScopeIds,\n        optimized\n      );\n      queuePostRenderEffect(() => {\n        instance2.isDeactivated = false;\n        if (instance2.a) {\n          invokeArrayFns(instance2.a);\n        }\n        const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n        if (vnodeHook) {\n          invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n        }\n      }, parentSuspense);\n      if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n        devtoolsComponentAdded(instance2);\n      }\n    };\n    sharedContext.deactivate = (vnode) => {\n      const instance2 = vnode.component;\n      invalidateMount(instance2.m);\n      invalidateMount(instance2.a);\n      move(vnode, storageContainer, null, 1, parentSuspense);\n      queuePostRenderEffect(() => {\n        if (instance2.da) {\n          invokeArrayFns(instance2.da);\n        }\n        const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n        if (vnodeHook) {\n          invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n        }\n        instance2.isDeactivated = true;\n      }, parentSuspense);\n      if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n        devtoolsComponentAdded(instance2);\n      }\n    };\n    function unmount(vnode) {\n      resetShapeFlag(vnode);\n      _unmount(vnode, instance, parentSuspense, true);\n    }\n    function pruneCache(filter) {\n      cache.forEach((vnode, key) => {\n        const name = getComponentName(vnode.type);\n        if (name && !filter(name)) {\n          pruneCacheEntry(key);\n        }\n      });\n    }\n    function pruneCacheEntry(key) {\n      const cached = cache.get(key);\n      if (cached && (!current || !isSameVNodeType(cached, current))) {\n        unmount(cached);\n      } else if (current) {\n        resetShapeFlag(current);\n      }\n      cache.delete(key);\n      keys.delete(key);\n    }\n    watch(\n      () => [props.include, props.exclude],\n      ([include, exclude]) => {\n        include && pruneCache((name) => matches(include, name));\n        exclude && pruneCache((name) => !matches(exclude, name));\n      },\n      // prune post-render after `current` has been updated\n      { flush: \"post\", deep: true }\n    );\n    let pendingCacheKey = null;\n    const cacheSubtree = () => {\n      if (pendingCacheKey != null) {\n        if (isSuspense(instance.subTree.type)) {\n          queuePostRenderEffect(() => {\n            cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n          }, instance.subTree.suspense);\n        } else {\n          cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n        }\n      }\n    };\n    onMounted(cacheSubtree);\n    onUpdated(cacheSubtree);\n    onBeforeUnmount(() => {\n      cache.forEach((cached) => {\n        const { subTree, suspense } = instance;\n        const vnode = getInnerChild(subTree);\n        if (cached.type === vnode.type && cached.key === vnode.key) {\n          resetShapeFlag(vnode);\n          const da = vnode.component.da;\n          da && queuePostRenderEffect(da, suspense);\n          return;\n        }\n        unmount(cached);\n      });\n    });\n    return () => {\n      pendingCacheKey = null;\n      if (!slots.default) {\n        return current = null;\n      }\n      const children = slots.default();\n      const rawVNode = children[0];\n      if (children.length > 1) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(`KeepAlive should contain exactly one component child.`);\n        }\n        current = null;\n        return children;\n      } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n        current = null;\n        return rawVNode;\n      }\n      let vnode = getInnerChild(rawVNode);\n      if (vnode.type === Comment) {\n        current = null;\n        return vnode;\n      }\n      const comp = vnode.type;\n      const name = getComponentName(\n        isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n      );\n      const { include, exclude, max } = props;\n      if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n        vnode.shapeFlag &= ~256;\n        current = vnode;\n        return rawVNode;\n      }\n      const key = vnode.key == null ? comp : vnode.key;\n      const cachedVNode = cache.get(key);\n      if (vnode.el) {\n        vnode = cloneVNode(vnode);\n        if (rawVNode.shapeFlag & 128) {\n          rawVNode.ssContent = vnode;\n        }\n      }\n      pendingCacheKey = key;\n      if (cachedVNode) {\n        vnode.el = cachedVNode.el;\n        vnode.component = cachedVNode.component;\n        if (vnode.transition) {\n          setTransitionHooks(vnode, vnode.transition);\n        }\n        vnode.shapeFlag |= 512;\n        keys.delete(key);\n        keys.add(key);\n      } else {\n        keys.add(key);\n        if (max && keys.size > parseInt(max, 10)) {\n          pruneCacheEntry(keys.values().next().value);\n        }\n      }\n      vnode.shapeFlag |= 256;\n      current = vnode;\n      return isSuspense(rawVNode.type) ? rawVNode : vnode;\n    };\n  }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n  if (isArray(pattern)) {\n    return pattern.some((p) => matches(p, name));\n  } else if (isString(pattern)) {\n    return pattern.split(\",\").includes(name);\n  } else if (isRegExp(pattern)) {\n    pattern.lastIndex = 0;\n    return pattern.test(name);\n  }\n  return false;\n}\nfunction onActivated(hook, target) {\n  registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n  registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n  const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n    let current = target;\n    while (current) {\n      if (current.isDeactivated) {\n        return;\n      }\n      current = current.parent;\n    }\n    return hook();\n  });\n  injectHook(type, wrappedHook, target);\n  if (target) {\n    let current = target.parent;\n    while (current && current.parent) {\n      if (isKeepAlive(current.parent.vnode)) {\n        injectToKeepAliveRoot(wrappedHook, type, target, current);\n      }\n      current = current.parent;\n    }\n  }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n  const injected = injectHook(\n    type,\n    hook,\n    keepAliveRoot,\n    true\n    /* prepend */\n  );\n  onUnmounted(() => {\n    remove(keepAliveRoot[type], injected);\n  }, target);\n}\nfunction resetShapeFlag(vnode) {\n  vnode.shapeFlag &= ~256;\n  vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n  if (target) {\n    const hooks = target[type] || (target[type] = []);\n    const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n      pauseTracking();\n      const reset = setCurrentInstance(target);\n      const res = callWithAsyncErrorHandling(hook, target, type, args);\n      reset();\n      resetTracking();\n      return res;\n    });\n    if (prepend) {\n      hooks.unshift(wrappedHook);\n    } else {\n      hooks.push(wrappedHook);\n    }\n    return wrappedHook;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n    warn$1(\n      `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n    );\n  }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n  if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n    injectHook(lifecycle, (...args) => hook(...args), target);\n  }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n  \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n  \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n  \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n  injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n  if (isString(component)) {\n    return resolveAsset(COMPONENTS, component, false) || component;\n  } else {\n    return component || NULL_DYNAMIC_COMPONENT;\n  }\n}\nfunction resolveDirective(name) {\n  return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n  const instance = currentRenderingInstance || currentInstance;\n  if (instance) {\n    const Component = instance.type;\n    if (type === COMPONENTS) {\n      const selfName = getComponentName(\n        Component,\n        false\n      );\n      if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n        return Component;\n      }\n    }\n    const res = (\n      // local registration\n      // check instance[type] first which is resolved for options API\n      resolve(instance[type] || Component[type], name) || // global registration\n      resolve(instance.appContext[type], name)\n    );\n    if (!res && maybeSelfReference) {\n      return Component;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n      const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n      warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n    }\n    return res;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(\n      `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n    );\n  }\n}\nfunction resolve(registry, name) {\n  return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n  let ret;\n  const cached = cache && cache[index];\n  const sourceIsArray = isArray(source);\n  if (sourceIsArray || isString(source)) {\n    const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n    let needsWrap = false;\n    if (sourceIsReactiveArray) {\n      needsWrap = !isShallow(source);\n      source = shallowReadArray(source);\n    }\n    ret = new Array(source.length);\n    for (let i = 0, l = source.length; i < l; i++) {\n      ret[i] = renderItem(\n        needsWrap ? toReactive(source[i]) : source[i],\n        i,\n        void 0,\n        cached && cached[i]\n      );\n    }\n  } else if (typeof source === \"number\") {\n    if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n      warn$1(`The v-for range expect an integer value but got ${source}.`);\n    }\n    ret = new Array(source);\n    for (let i = 0; i < source; i++) {\n      ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n    }\n  } else if (isObject(source)) {\n    if (source[Symbol.iterator]) {\n      ret = Array.from(\n        source,\n        (item, i) => renderItem(item, i, void 0, cached && cached[i])\n      );\n    } else {\n      const keys = Object.keys(source);\n      ret = new Array(keys.length);\n      for (let i = 0, l = keys.length; i < l; i++) {\n        const key = keys[i];\n        ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n      }\n    }\n  } else {\n    ret = [];\n  }\n  if (cache) {\n    cache[index] = ret;\n  }\n  return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n  for (let i = 0; i < dynamicSlots.length; i++) {\n    const slot = dynamicSlots[i];\n    if (isArray(slot)) {\n      for (let j = 0; j < slot.length; j++) {\n        slots[slot[j].name] = slot[j].fn;\n      }\n    } else if (slot) {\n      slots[slot.name] = slot.key ? (...args) => {\n        const res = slot.fn(...args);\n        if (res) res.key = slot.key;\n        return res;\n      } : slot.fn;\n    }\n  }\n  return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n    if (name !== \"default\") props.name = name;\n    return openBlock(), createBlock(\n      Fragment,\n      null,\n      [createVNode(\"slot\", props, fallback && fallback())],\n      64\n    );\n  }\n  let slot = slots[name];\n  if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n    warn$1(\n      `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n    );\n    slot = () => [];\n  }\n  if (slot && slot._c) {\n    slot._d = false;\n  }\n  openBlock();\n  const validSlotContent = slot && ensureValidVNode(slot(props));\n  const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n  // key attached in the `createSlots` helper, respect that\n  validSlotContent && validSlotContent.key;\n  const rendered = createBlock(\n    Fragment,\n    {\n      key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n      (!validSlotContent && fallback ? \"_fb\" : \"\")\n    },\n    validSlotContent || (fallback ? fallback() : []),\n    validSlotContent && slots._ === 1 ? 64 : -2\n  );\n  if (!noSlotted && rendered.scopeId) {\n    rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n  }\n  if (slot && slot._c) {\n    slot._d = true;\n  }\n  return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n  return vnodes.some((child) => {\n    if (!isVNode(child)) return true;\n    if (child.type === Comment) return false;\n    if (child.type === Fragment && !ensureValidVNode(child.children))\n      return false;\n    return true;\n  }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n  const ret = {};\n  if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n    warn$1(`v-on with no argument expects an object value.`);\n    return ret;\n  }\n  for (const key in obj) {\n    ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n  }\n  return ret;\n}\n\nconst getPublicInstance = (i) => {\n  if (!i) return null;\n  if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n  return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n  // Move PURE marker to new line to workaround compiler discarding it\n  // due to type annotation\n  /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n    $: (i) => i,\n    $el: (i) => i.vnode.el,\n    $data: (i) => i.data,\n    $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n    $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n    $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n    $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n    $parent: (i) => getPublicInstance(i.parent),\n    $root: (i) => getPublicInstance(i.root),\n    $host: (i) => i.ce,\n    $emit: (i) => i.emit,\n    $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n    $forceUpdate: (i) => i.f || (i.f = () => {\n      queueJob(i.update);\n    }),\n    $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n    $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n  })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n  get({ _: instance }, key) {\n    if (key === \"__v_skip\") {\n      return true;\n    }\n    const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n    if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n      return true;\n    }\n    let normalizedProps;\n    if (key[0] !== \"$\") {\n      const n = accessCache[key];\n      if (n !== void 0) {\n        switch (n) {\n          case 1 /* SETUP */:\n            return setupState[key];\n          case 2 /* DATA */:\n            return data[key];\n          case 4 /* CONTEXT */:\n            return ctx[key];\n          case 3 /* PROPS */:\n            return props[key];\n        }\n      } else if (hasSetupBinding(setupState, key)) {\n        accessCache[key] = 1 /* SETUP */;\n        return setupState[key];\n      } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n        accessCache[key] = 2 /* DATA */;\n        return data[key];\n      } else if (\n        // only cache other properties when instance has declared (thus stable)\n        // props\n        (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n      ) {\n        accessCache[key] = 3 /* PROPS */;\n        return props[key];\n      } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n        accessCache[key] = 4 /* CONTEXT */;\n        return ctx[key];\n      } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n        accessCache[key] = 0 /* OTHER */;\n      }\n    }\n    const publicGetter = publicPropertiesMap[key];\n    let cssModule, globalProperties;\n    if (publicGetter) {\n      if (key === \"$attrs\") {\n        track(instance.attrs, \"get\", \"\");\n        !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n      } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n        track(instance, \"get\", key);\n      }\n      return publicGetter(instance);\n    } else if (\n      // css module (injected by vue-loader)\n      (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n    ) {\n      return cssModule;\n    } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n      accessCache[key] = 4 /* CONTEXT */;\n      return ctx[key];\n    } else if (\n      // global properties\n      globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n    ) {\n      {\n        return globalProperties[key];\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n    // to infinite warning loop\n    key.indexOf(\"__v\") !== 0)) {\n      if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n        warn$1(\n          `Property ${JSON.stringify(\n            key\n          )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n        );\n      } else if (instance === currentRenderingInstance) {\n        warn$1(\n          `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n        );\n      }\n    }\n  },\n  set({ _: instance }, key, value) {\n    const { data, setupState, ctx } = instance;\n    if (hasSetupBinding(setupState, key)) {\n      setupState[key] = value;\n      return true;\n    } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n      warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n      return false;\n    } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n      data[key] = value;\n      return true;\n    } else if (hasOwn(instance.props, key)) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n      return false;\n    }\n    if (key[0] === \"$\" && key.slice(1) in instance) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n      );\n      return false;\n    } else {\n      if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n        Object.defineProperty(ctx, key, {\n          enumerable: true,\n          configurable: true,\n          value\n        });\n      } else {\n        ctx[key] = value;\n      }\n    }\n    return true;\n  },\n  has({\n    _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n  }, key) {\n    let normalizedProps;\n    return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n  },\n  defineProperty(target, key, descriptor) {\n    if (descriptor.get != null) {\n      target._.accessCache[key] = 0;\n    } else if (hasOwn(descriptor, \"value\")) {\n      this.set(target, key, descriptor.value, null);\n    }\n    return Reflect.defineProperty(target, key, descriptor);\n  }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n  PublicInstanceProxyHandlers.ownKeys = (target) => {\n    warn$1(\n      `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n    );\n    return Reflect.ownKeys(target);\n  };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {\n  get(target, key) {\n    if (key === Symbol.unscopables) {\n      return;\n    }\n    return PublicInstanceProxyHandlers.get(target, key, target);\n  },\n  has(_, key) {\n    const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n    if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n      warn$1(\n        `Property ${JSON.stringify(\n          key\n        )} should not start with _ which is a reserved prefix for Vue internals.`\n      );\n    }\n    return has;\n  }\n});\nfunction createDevRenderContext(instance) {\n  const target = {};\n  Object.defineProperty(target, `_`, {\n    configurable: true,\n    enumerable: false,\n    get: () => instance\n  });\n  Object.keys(publicPropertiesMap).forEach((key) => {\n    Object.defineProperty(target, key, {\n      configurable: true,\n      enumerable: false,\n      get: () => publicPropertiesMap[key](instance),\n      // intercepted by the proxy so no need for implementation,\n      // but needed to prevent set errors\n      set: NOOP\n    });\n  });\n  return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n  const {\n    ctx,\n    propsOptions: [propsOptions]\n  } = instance;\n  if (propsOptions) {\n    Object.keys(propsOptions).forEach((key) => {\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => instance.props[key],\n        set: NOOP\n      });\n    });\n  }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n  const { ctx, setupState } = instance;\n  Object.keys(toRaw(setupState)).forEach((key) => {\n    if (!setupState.__isScriptSetup) {\n      if (isReservedPrefix(key[0])) {\n        warn$1(\n          `setup() return property ${JSON.stringify(\n            key\n          )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n        );\n        return;\n      }\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => setupState[key],\n        set: NOOP\n      });\n    }\n  });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n  `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineProps`);\n  }\n  return null;\n}\nfunction defineEmits() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineEmits`);\n  }\n  return null;\n}\nfunction defineExpose(exposed) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineExpose`);\n  }\n}\nfunction defineOptions(options) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineOptions`);\n  }\n}\nfunction defineSlots() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`defineSlots`);\n  }\n  return null;\n}\nfunction defineModel() {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(\"defineModel\");\n  }\n}\nfunction withDefaults(props, defaults) {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warnRuntimeUsage(`withDefaults`);\n  }\n  return null;\n}\nfunction useSlots() {\n  return getContext().slots;\n}\nfunction useAttrs() {\n  return getContext().attrs;\n}\nfunction getContext() {\n  const i = getCurrentInstance();\n  if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n    warn$1(`useContext() called without active instance.`);\n  }\n  return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n  return isArray(props) ? props.reduce(\n    (normalized, p) => (normalized[p] = null, normalized),\n    {}\n  ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n  const props = normalizePropsOrEmits(raw);\n  for (const key in defaults) {\n    if (key.startsWith(\"__skip\")) continue;\n    let opt = props[key];\n    if (opt) {\n      if (isArray(opt) || isFunction(opt)) {\n        opt = props[key] = { type: opt, default: defaults[key] };\n      } else {\n        opt.default = defaults[key];\n      }\n    } else if (opt === null) {\n      opt = props[key] = { default: defaults[key] };\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n    }\n    if (opt && defaults[`__skip_${key}`]) {\n      opt.skipFactory = true;\n    }\n  }\n  return props;\n}\nfunction mergeModels(a, b) {\n  if (!a || !b) return a || b;\n  if (isArray(a) && isArray(b)) return a.concat(b);\n  return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n  const ret = {};\n  for (const key in props) {\n    if (!excludedKeys.includes(key)) {\n      Object.defineProperty(ret, key, {\n        enumerable: true,\n        get: () => props[key]\n      });\n    }\n  }\n  return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n  const ctx = getCurrentInstance();\n  if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n    warn$1(\n      `withAsyncContext called without active current instance. This is likely a bug.`\n    );\n  }\n  let awaitable = getAwaitable();\n  unsetCurrentInstance();\n  if (isPromise(awaitable)) {\n    awaitable = awaitable.catch((e) => {\n      setCurrentInstance(ctx);\n      throw e;\n    });\n  }\n  return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n  const cache = /* @__PURE__ */ Object.create(null);\n  return (type, key) => {\n    if (cache[key]) {\n      warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n    } else {\n      cache[key] = type;\n    }\n  };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n  const options = resolveMergedOptions(instance);\n  const publicThis = instance.proxy;\n  const ctx = instance.ctx;\n  shouldCacheAccess = false;\n  if (options.beforeCreate) {\n    callHook(options.beforeCreate, instance, \"bc\");\n  }\n  const {\n    // state\n    data: dataOptions,\n    computed: computedOptions,\n    methods,\n    watch: watchOptions,\n    provide: provideOptions,\n    inject: injectOptions,\n    // lifecycle\n    created,\n    beforeMount,\n    mounted,\n    beforeUpdate,\n    updated,\n    activated,\n    deactivated,\n    beforeDestroy,\n    beforeUnmount,\n    destroyed,\n    unmounted,\n    render,\n    renderTracked,\n    renderTriggered,\n    errorCaptured,\n    serverPrefetch,\n    // public API\n    expose,\n    inheritAttrs,\n    // assets\n    components,\n    directives,\n    filters\n  } = options;\n  const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const [propsOptions] = instance.propsOptions;\n    if (propsOptions) {\n      for (const key in propsOptions) {\n        checkDuplicateProperties(\"Props\" /* PROPS */, key);\n      }\n    }\n  }\n  if (injectOptions) {\n    resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n  }\n  if (methods) {\n    for (const key in methods) {\n      const methodHandler = methods[key];\n      if (isFunction(methodHandler)) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          Object.defineProperty(ctx, key, {\n            value: methodHandler.bind(publicThis),\n            configurable: true,\n            enumerable: true,\n            writable: true\n          });\n        } else {\n          ctx[key] = methodHandler.bind(publicThis);\n        }\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n        }\n      } else if (!!(process.env.NODE_ENV !== \"production\")) {\n        warn$1(\n          `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n        );\n      }\n    }\n  }\n  if (dataOptions) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n      warn$1(\n        `The data option must be a function. Plain object usage is no longer supported.`\n      );\n    }\n    const data = dataOptions.call(publicThis, publicThis);\n    if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n      warn$1(\n        `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n      );\n    }\n    if (!isObject(data)) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n    } else {\n      instance.data = reactive(data);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        for (const key in data) {\n          checkDuplicateProperties(\"Data\" /* DATA */, key);\n          if (!isReservedPrefix(key[0])) {\n            Object.defineProperty(ctx, key, {\n              configurable: true,\n              enumerable: true,\n              get: () => data[key],\n              set: NOOP\n            });\n          }\n        }\n      }\n    }\n  }\n  shouldCacheAccess = true;\n  if (computedOptions) {\n    for (const key in computedOptions) {\n      const opt = computedOptions[key];\n      const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n      if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n        warn$1(`Computed property \"${key}\" has no getter.`);\n      }\n      const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n        warn$1(\n          `Write operation failed: computed property \"${key}\" is readonly.`\n        );\n      } : NOOP;\n      const c = computed({\n        get,\n        set\n      });\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => c.value,\n        set: (v) => c.value = v\n      });\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n      }\n    }\n  }\n  if (watchOptions) {\n    for (const key in watchOptions) {\n      createWatcher(watchOptions[key], ctx, publicThis, key);\n    }\n  }\n  if (provideOptions) {\n    const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n    Reflect.ownKeys(provides).forEach((key) => {\n      provide(key, provides[key]);\n    });\n  }\n  if (created) {\n    callHook(created, instance, \"c\");\n  }\n  function registerLifecycleHook(register, hook) {\n    if (isArray(hook)) {\n      hook.forEach((_hook) => register(_hook.bind(publicThis)));\n    } else if (hook) {\n      register(hook.bind(publicThis));\n    }\n  }\n  registerLifecycleHook(onBeforeMount, beforeMount);\n  registerLifecycleHook(onMounted, mounted);\n  registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n  registerLifecycleHook(onUpdated, updated);\n  registerLifecycleHook(onActivated, activated);\n  registerLifecycleHook(onDeactivated, deactivated);\n  registerLifecycleHook(onErrorCaptured, errorCaptured);\n  registerLifecycleHook(onRenderTracked, renderTracked);\n  registerLifecycleHook(onRenderTriggered, renderTriggered);\n  registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n  registerLifecycleHook(onUnmounted, unmounted);\n  registerLifecycleHook(onServerPrefetch, serverPrefetch);\n  if (isArray(expose)) {\n    if (expose.length) {\n      const exposed = instance.exposed || (instance.exposed = {});\n      expose.forEach((key) => {\n        Object.defineProperty(exposed, key, {\n          get: () => publicThis[key],\n          set: (val) => publicThis[key] = val\n        });\n      });\n    } else if (!instance.exposed) {\n      instance.exposed = {};\n    }\n  }\n  if (render && instance.render === NOOP) {\n    instance.render = render;\n  }\n  if (inheritAttrs != null) {\n    instance.inheritAttrs = inheritAttrs;\n  }\n  if (components) instance.components = components;\n  if (directives) instance.directives = directives;\n  if (serverPrefetch) {\n    markAsyncBoundary(instance);\n  }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n  if (isArray(injectOptions)) {\n    injectOptions = normalizeInject(injectOptions);\n  }\n  for (const key in injectOptions) {\n    const opt = injectOptions[key];\n    let injected;\n    if (isObject(opt)) {\n      if (\"default\" in opt) {\n        injected = inject(\n          opt.from || key,\n          opt.default,\n          true\n        );\n      } else {\n        injected = inject(opt.from || key);\n      }\n    } else {\n      injected = inject(opt);\n    }\n    if (isRef(injected)) {\n      Object.defineProperty(ctx, key, {\n        enumerable: true,\n        configurable: true,\n        get: () => injected.value,\n        set: (v) => injected.value = v\n      });\n    } else {\n      ctx[key] = injected;\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n    }\n  }\n}\nfunction callHook(hook, instance, type) {\n  callWithAsyncErrorHandling(\n    isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n    instance,\n    type\n  );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n  let getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n  if (isString(raw)) {\n    const handler = ctx[raw];\n    if (isFunction(handler)) {\n      {\n        watch(getter, handler);\n      }\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n    }\n  } else if (isFunction(raw)) {\n    {\n      watch(getter, raw.bind(publicThis));\n    }\n  } else if (isObject(raw)) {\n    if (isArray(raw)) {\n      raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n    } else {\n      const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n      if (isFunction(handler)) {\n        watch(getter, handler, raw);\n      } else if (!!(process.env.NODE_ENV !== \"production\")) {\n        warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n      }\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(`Invalid watch option: \"${key}\"`, raw);\n  }\n}\nfunction resolveMergedOptions(instance) {\n  const base = instance.type;\n  const { mixins, extends: extendsOptions } = base;\n  const {\n    mixins: globalMixins,\n    optionsCache: cache,\n    config: { optionMergeStrategies }\n  } = instance.appContext;\n  const cached = cache.get(base);\n  let resolved;\n  if (cached) {\n    resolved = cached;\n  } else if (!globalMixins.length && !mixins && !extendsOptions) {\n    {\n      resolved = base;\n    }\n  } else {\n    resolved = {};\n    if (globalMixins.length) {\n      globalMixins.forEach(\n        (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n      );\n    }\n    mergeOptions(resolved, base, optionMergeStrategies);\n  }\n  if (isObject(base)) {\n    cache.set(base, resolved);\n  }\n  return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n  const { mixins, extends: extendsOptions } = from;\n  if (extendsOptions) {\n    mergeOptions(to, extendsOptions, strats, true);\n  }\n  if (mixins) {\n    mixins.forEach(\n      (m) => mergeOptions(to, m, strats, true)\n    );\n  }\n  for (const key in from) {\n    if (asMixin && key === \"expose\") {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n      );\n    } else {\n      const strat = internalOptionMergeStrats[key] || strats && strats[key];\n      to[key] = strat ? strat(to[key], from[key]) : from[key];\n    }\n  }\n  return to;\n}\nconst internalOptionMergeStrats = {\n  data: mergeDataFn,\n  props: mergeEmitsOrPropsOptions,\n  emits: mergeEmitsOrPropsOptions,\n  // objects\n  methods: mergeObjectOptions,\n  computed: mergeObjectOptions,\n  // lifecycle\n  beforeCreate: mergeAsArray,\n  created: mergeAsArray,\n  beforeMount: mergeAsArray,\n  mounted: mergeAsArray,\n  beforeUpdate: mergeAsArray,\n  updated: mergeAsArray,\n  beforeDestroy: mergeAsArray,\n  beforeUnmount: mergeAsArray,\n  destroyed: mergeAsArray,\n  unmounted: mergeAsArray,\n  activated: mergeAsArray,\n  deactivated: mergeAsArray,\n  errorCaptured: mergeAsArray,\n  serverPrefetch: mergeAsArray,\n  // assets\n  components: mergeObjectOptions,\n  directives: mergeObjectOptions,\n  // watch\n  watch: mergeWatchOptions,\n  // provide / inject\n  provide: mergeDataFn,\n  inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n  if (!from) {\n    return to;\n  }\n  if (!to) {\n    return from;\n  }\n  return function mergedDataFn() {\n    return (extend)(\n      isFunction(to) ? to.call(this, this) : to,\n      isFunction(from) ? from.call(this, this) : from\n    );\n  };\n}\nfunction mergeInject(to, from) {\n  return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n  if (isArray(raw)) {\n    const res = {};\n    for (let i = 0; i < raw.length; i++) {\n      res[raw[i]] = raw[i];\n    }\n    return res;\n  }\n  return raw;\n}\nfunction mergeAsArray(to, from) {\n  return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n  return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n  if (to) {\n    if (isArray(to) && isArray(from)) {\n      return [.../* @__PURE__ */ new Set([...to, ...from])];\n    }\n    return extend(\n      /* @__PURE__ */ Object.create(null),\n      normalizePropsOrEmits(to),\n      normalizePropsOrEmits(from != null ? from : {})\n    );\n  } else {\n    return from;\n  }\n}\nfunction mergeWatchOptions(to, from) {\n  if (!to) return from;\n  if (!from) return to;\n  const merged = extend(/* @__PURE__ */ Object.create(null), to);\n  for (const key in from) {\n    merged[key] = mergeAsArray(to[key], from[key]);\n  }\n  return merged;\n}\n\nfunction createAppContext() {\n  return {\n    app: null,\n    config: {\n      isNativeTag: NO,\n      performance: false,\n      globalProperties: {},\n      optionMergeStrategies: {},\n      errorHandler: void 0,\n      warnHandler: void 0,\n      compilerOptions: {}\n    },\n    mixins: [],\n    components: {},\n    directives: {},\n    provides: /* @__PURE__ */ Object.create(null),\n    optionsCache: /* @__PURE__ */ new WeakMap(),\n    propsCache: /* @__PURE__ */ new WeakMap(),\n    emitsCache: /* @__PURE__ */ new WeakMap()\n  };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n  return function createApp(rootComponent, rootProps = null) {\n    if (!isFunction(rootComponent)) {\n      rootComponent = extend({}, rootComponent);\n    }\n    if (rootProps != null && !isObject(rootProps)) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n      rootProps = null;\n    }\n    const context = createAppContext();\n    const installedPlugins = /* @__PURE__ */ new WeakSet();\n    const pluginCleanupFns = [];\n    let isMounted = false;\n    const app = context.app = {\n      _uid: uid$1++,\n      _component: rootComponent,\n      _props: rootProps,\n      _container: null,\n      _context: context,\n      _instance: null,\n      version,\n      get config() {\n        return context.config;\n      },\n      set config(v) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\n            `app.config cannot be replaced. Modify individual options instead.`\n          );\n        }\n      },\n      use(plugin, ...options) {\n        if (installedPlugins.has(plugin)) {\n          !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n        } else if (plugin && isFunction(plugin.install)) {\n          installedPlugins.add(plugin);\n          plugin.install(app, ...options);\n        } else if (isFunction(plugin)) {\n          installedPlugins.add(plugin);\n          plugin(app, ...options);\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\n            `A plugin must either be a function or an object with an \"install\" function.`\n          );\n        }\n        return app;\n      },\n      mixin(mixin) {\n        if (__VUE_OPTIONS_API__) {\n          if (!context.mixins.includes(mixin)) {\n            context.mixins.push(mixin);\n          } else if (!!(process.env.NODE_ENV !== \"production\")) {\n            warn$1(\n              \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n            );\n          }\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\"Mixins are only available in builds supporting Options API\");\n        }\n        return app;\n      },\n      component(name, component) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          validateComponentName(name, context.config);\n        }\n        if (!component) {\n          return context.components[name];\n        }\n        if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n          warn$1(`Component \"${name}\" has already been registered in target app.`);\n        }\n        context.components[name] = component;\n        return app;\n      },\n      directive(name, directive) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          validateDirectiveName(name);\n        }\n        if (!directive) {\n          return context.directives[name];\n        }\n        if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n          warn$1(`Directive \"${name}\" has already been registered in target app.`);\n        }\n        context.directives[name] = directive;\n        return app;\n      },\n      mount(rootContainer, isHydrate, namespace) {\n        if (!isMounted) {\n          if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n            warn$1(\n              `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n            );\n          }\n          const vnode = app._ceVNode || createVNode(rootComponent, rootProps);\n          vnode.appContext = context;\n          if (namespace === true) {\n            namespace = \"svg\";\n          } else if (namespace === false) {\n            namespace = void 0;\n          }\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            context.reload = () => {\n              render(\n                cloneVNode(vnode),\n                rootContainer,\n                namespace\n              );\n            };\n          }\n          if (isHydrate && hydrate) {\n            hydrate(vnode, rootContainer);\n          } else {\n            render(vnode, rootContainer, namespace);\n          }\n          isMounted = true;\n          app._container = rootContainer;\n          rootContainer.__vue_app__ = app;\n          if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n            app._instance = vnode.component;\n            devtoolsInitApp(app, version);\n          }\n          return getComponentPublicInstance(vnode.component);\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\n            `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n          );\n        }\n      },\n      onUnmount(cleanupFn) {\n        if (!!(process.env.NODE_ENV !== \"production\") && typeof cleanupFn !== \"function\") {\n          warn$1(\n            `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`\n          );\n        }\n        pluginCleanupFns.push(cleanupFn);\n      },\n      unmount() {\n        if (isMounted) {\n          callWithAsyncErrorHandling(\n            pluginCleanupFns,\n            app._instance,\n            16\n          );\n          render(null, app._container);\n          if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n            app._instance = null;\n            devtoolsUnmountApp(app);\n          }\n          delete app._container.__vue_app__;\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(`Cannot unmount an app that is not mounted.`);\n        }\n      },\n      provide(key, value) {\n        if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n          warn$1(\n            `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n          );\n        }\n        context.provides[key] = value;\n        return app;\n      },\n      runWithContext(fn) {\n        const lastApp = currentApp;\n        currentApp = app;\n        try {\n          return fn();\n        } finally {\n          currentApp = lastApp;\n        }\n      }\n    };\n    return app;\n  };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n  if (!currentInstance) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`provide() can only be used inside setup().`);\n    }\n  } else {\n    let provides = currentInstance.provides;\n    const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n    if (parentProvides === provides) {\n      provides = currentInstance.provides = Object.create(parentProvides);\n    }\n    provides[key] = value;\n  }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n  const instance = currentInstance || currentRenderingInstance;\n  if (instance || currentApp) {\n    const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n    if (provides && key in provides) {\n      return provides[key];\n    } else if (arguments.length > 1) {\n      return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n    } else if (!!(process.env.NODE_ENV !== \"production\")) {\n      warn$1(`injection \"${String(key)}\" not found.`);\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(`inject() can only be used inside setup() or functional components.`);\n  }\n}\nfunction hasInjectionContext() {\n  return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\nconst internalObjectProto = {};\nconst createInternalObject = () => Object.create(internalObjectProto);\nconst isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n  const props = {};\n  const attrs = createInternalObject();\n  instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n  setFullProps(instance, rawProps, props, attrs);\n  for (const key in instance.propsOptions[0]) {\n    if (!(key in props)) {\n      props[key] = void 0;\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    validateProps(rawProps || {}, props, instance);\n  }\n  if (isStateful) {\n    instance.props = isSSR ? props : shallowReactive(props);\n  } else {\n    if (!instance.type.props) {\n      instance.props = attrs;\n    } else {\n      instance.props = props;\n    }\n  }\n  instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n  while (instance) {\n    if (instance.type.__hmrId) return true;\n    instance = instance.parent;\n  }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n  const {\n    props,\n    attrs,\n    vnode: { patchFlag }\n  } = instance;\n  const rawCurrentProps = toRaw(props);\n  const [options] = instance.propsOptions;\n  let hasAttrsChanged = false;\n  if (\n    // always force full diff in dev\n    // - #1942 if hmr is enabled with sfc component\n    // - vite#872 non-sfc component used by sfc component\n    !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n  ) {\n    if (patchFlag & 8) {\n      const propsToUpdate = instance.vnode.dynamicProps;\n      for (let i = 0; i < propsToUpdate.length; i++) {\n        let key = propsToUpdate[i];\n        if (isEmitListener(instance.emitsOptions, key)) {\n          continue;\n        }\n        const value = rawProps[key];\n        if (options) {\n          if (hasOwn(attrs, key)) {\n            if (value !== attrs[key]) {\n              attrs[key] = value;\n              hasAttrsChanged = true;\n            }\n          } else {\n            const camelizedKey = camelize(key);\n            props[camelizedKey] = resolvePropValue(\n              options,\n              rawCurrentProps,\n              camelizedKey,\n              value,\n              instance,\n              false\n            );\n          }\n        } else {\n          if (value !== attrs[key]) {\n            attrs[key] = value;\n            hasAttrsChanged = true;\n          }\n        }\n      }\n    }\n  } else {\n    if (setFullProps(instance, rawProps, props, attrs)) {\n      hasAttrsChanged = true;\n    }\n    let kebabKey;\n    for (const key in rawCurrentProps) {\n      if (!rawProps || // for camelCase\n      !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n      // and converted to camelCase (#955)\n      ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n        if (options) {\n          if (rawPrevProps && // for camelCase\n          (rawPrevProps[key] !== void 0 || // for kebab-case\n          rawPrevProps[kebabKey] !== void 0)) {\n            props[key] = resolvePropValue(\n              options,\n              rawCurrentProps,\n              key,\n              void 0,\n              instance,\n              true\n            );\n          }\n        } else {\n          delete props[key];\n        }\n      }\n    }\n    if (attrs !== rawCurrentProps) {\n      for (const key in attrs) {\n        if (!rawProps || !hasOwn(rawProps, key) && true) {\n          delete attrs[key];\n          hasAttrsChanged = true;\n        }\n      }\n    }\n  }\n  if (hasAttrsChanged) {\n    trigger(instance.attrs, \"set\", \"\");\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    validateProps(rawProps || {}, props, instance);\n  }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n  const [options, needCastKeys] = instance.propsOptions;\n  let hasAttrsChanged = false;\n  let rawCastValues;\n  if (rawProps) {\n    for (let key in rawProps) {\n      if (isReservedProp(key)) {\n        continue;\n      }\n      const value = rawProps[key];\n      let camelKey;\n      if (options && hasOwn(options, camelKey = camelize(key))) {\n        if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n          props[camelKey] = value;\n        } else {\n          (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n        }\n      } else if (!isEmitListener(instance.emitsOptions, key)) {\n        if (!(key in attrs) || value !== attrs[key]) {\n          attrs[key] = value;\n          hasAttrsChanged = true;\n        }\n      }\n    }\n  }\n  if (needCastKeys) {\n    const rawCurrentProps = toRaw(props);\n    const castValues = rawCastValues || EMPTY_OBJ;\n    for (let i = 0; i < needCastKeys.length; i++) {\n      const key = needCastKeys[i];\n      props[key] = resolvePropValue(\n        options,\n        rawCurrentProps,\n        key,\n        castValues[key],\n        instance,\n        !hasOwn(castValues, key)\n      );\n    }\n  }\n  return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n  const opt = options[key];\n  if (opt != null) {\n    const hasDefault = hasOwn(opt, \"default\");\n    if (hasDefault && value === void 0) {\n      const defaultValue = opt.default;\n      if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n        const { propsDefaults } = instance;\n        if (key in propsDefaults) {\n          value = propsDefaults[key];\n        } else {\n          const reset = setCurrentInstance(instance);\n          value = propsDefaults[key] = defaultValue.call(\n            null,\n            props\n          );\n          reset();\n        }\n      } else {\n        value = defaultValue;\n      }\n      if (instance.ce) {\n        instance.ce._setProp(key, value);\n      }\n    }\n    if (opt[0 /* shouldCast */]) {\n      if (isAbsent && !hasDefault) {\n        value = false;\n      } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n        value = true;\n      }\n    }\n  }\n  return value;\n}\nconst mixinPropsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n  const cache = __VUE_OPTIONS_API__ && asMixin ? mixinPropsCache : appContext.propsCache;\n  const cached = cache.get(comp);\n  if (cached) {\n    return cached;\n  }\n  const raw = comp.props;\n  const normalized = {};\n  const needCastKeys = [];\n  let hasExtends = false;\n  if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n    const extendProps = (raw2) => {\n      hasExtends = true;\n      const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n      extend(normalized, props);\n      if (keys) needCastKeys.push(...keys);\n    };\n    if (!asMixin && appContext.mixins.length) {\n      appContext.mixins.forEach(extendProps);\n    }\n    if (comp.extends) {\n      extendProps(comp.extends);\n    }\n    if (comp.mixins) {\n      comp.mixins.forEach(extendProps);\n    }\n  }\n  if (!raw && !hasExtends) {\n    if (isObject(comp)) {\n      cache.set(comp, EMPTY_ARR);\n    }\n    return EMPTY_ARR;\n  }\n  if (isArray(raw)) {\n    for (let i = 0; i < raw.length; i++) {\n      if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n        warn$1(`props must be strings when using array syntax.`, raw[i]);\n      }\n      const normalizedKey = camelize(raw[i]);\n      if (validatePropName(normalizedKey)) {\n        normalized[normalizedKey] = EMPTY_OBJ;\n      }\n    }\n  } else if (raw) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n      warn$1(`invalid props options`, raw);\n    }\n    for (const key in raw) {\n      const normalizedKey = camelize(key);\n      if (validatePropName(normalizedKey)) {\n        const opt = raw[key];\n        const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n        const propType = prop.type;\n        let shouldCast = false;\n        let shouldCastTrue = true;\n        if (isArray(propType)) {\n          for (let index = 0; index < propType.length; ++index) {\n            const type = propType[index];\n            const typeName = isFunction(type) && type.name;\n            if (typeName === \"Boolean\") {\n              shouldCast = true;\n              break;\n            } else if (typeName === \"String\") {\n              shouldCastTrue = false;\n            }\n          }\n        } else {\n          shouldCast = isFunction(propType) && propType.name === \"Boolean\";\n        }\n        prop[0 /* shouldCast */] = shouldCast;\n        prop[1 /* shouldCastTrue */] = shouldCastTrue;\n        if (shouldCast || hasOwn(prop, \"default\")) {\n          needCastKeys.push(normalizedKey);\n        }\n      }\n    }\n  }\n  const res = [normalized, needCastKeys];\n  if (isObject(comp)) {\n    cache.set(comp, res);\n  }\n  return res;\n}\nfunction validatePropName(key) {\n  if (key[0] !== \"$\" && !isReservedProp(key)) {\n    return true;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n  }\n  return false;\n}\nfunction getType(ctor) {\n  if (ctor === null) {\n    return \"null\";\n  }\n  if (typeof ctor === \"function\") {\n    return ctor.name || \"\";\n  } else if (typeof ctor === \"object\") {\n    const name = ctor.constructor && ctor.constructor.name;\n    return name || \"\";\n  }\n  return \"\";\n}\nfunction validateProps(rawProps, props, instance) {\n  const resolvedValues = toRaw(props);\n  const options = instance.propsOptions[0];\n  const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));\n  for (const key in options) {\n    let opt = options[key];\n    if (opt == null) continue;\n    validateProp(\n      key,\n      resolvedValues[key],\n      opt,\n      !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n      !camelizePropsKey.includes(key)\n    );\n  }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n  const { type, required, validator, skipCheck } = prop;\n  if (required && isAbsent) {\n    warn$1('Missing required prop: \"' + name + '\"');\n    return;\n  }\n  if (value == null && !required) {\n    return;\n  }\n  if (type != null && type !== true && !skipCheck) {\n    let isValid = false;\n    const types = isArray(type) ? type : [type];\n    const expectedTypes = [];\n    for (let i = 0; i < types.length && !isValid; i++) {\n      const { valid, expectedType } = assertType(value, types[i]);\n      expectedTypes.push(expectedType || \"\");\n      isValid = valid;\n    }\n    if (!isValid) {\n      warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n      return;\n    }\n  }\n  if (validator && !validator(value, props)) {\n    warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n  }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n  \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n  let valid;\n  const expectedType = getType(type);\n  if (expectedType === \"null\") {\n    valid = value === null;\n  } else if (isSimpleType(expectedType)) {\n    const t = typeof value;\n    valid = t === expectedType.toLowerCase();\n    if (!valid && t === \"object\") {\n      valid = value instanceof type;\n    }\n  } else if (expectedType === \"Object\") {\n    valid = isObject(value);\n  } else if (expectedType === \"Array\") {\n    valid = isArray(value);\n  } else {\n    valid = value instanceof type;\n  }\n  return {\n    valid,\n    expectedType\n  };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n  if (expectedTypes.length === 0) {\n    return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n  }\n  let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n  const expectedType = expectedTypes[0];\n  const receivedType = toRawType(value);\n  const expectedValue = styleValue(value, expectedType);\n  const receivedValue = styleValue(value, receivedType);\n  if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n    message += ` with value ${expectedValue}`;\n  }\n  message += `, got ${receivedType} `;\n  if (isExplicable(receivedType)) {\n    message += `with value ${receivedValue}.`;\n  }\n  return message;\n}\nfunction styleValue(value, type) {\n  if (type === \"String\") {\n    return `\"${value}\"`;\n  } else if (type === \"Number\") {\n    return `${Number(value)}`;\n  } else {\n    return `${value}`;\n  }\n}\nfunction isExplicable(type) {\n  const explicitTypes = [\"string\", \"number\", \"boolean\"];\n  return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n  return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n  if (rawSlot._n) {\n    return rawSlot;\n  }\n  const normalized = withCtx((...args) => {\n    if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {\n      warn$1(\n        `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n      );\n    }\n    return normalizeSlotValue(rawSlot(...args));\n  }, ctx);\n  normalized._c = false;\n  return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n  const ctx = rawSlots._ctx;\n  for (const key in rawSlots) {\n    if (isInternalKey(key)) continue;\n    const value = rawSlots[key];\n    if (isFunction(value)) {\n      slots[key] = normalizeSlot(key, value, ctx);\n    } else if (value != null) {\n      if (!!(process.env.NODE_ENV !== \"production\") && true) {\n        warn$1(\n          `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n        );\n      }\n      const normalized = normalizeSlotValue(value);\n      slots[key] = () => normalized;\n    }\n  }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n  if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && true) {\n    warn$1(\n      `Non-function value encountered for default slot. Prefer function slots for better performance.`\n    );\n  }\n  const normalized = normalizeSlotValue(children);\n  instance.slots.default = () => normalized;\n};\nconst assignSlots = (slots, children, optimized) => {\n  for (const key in children) {\n    if (optimized || key !== \"_\") {\n      slots[key] = children[key];\n    }\n  }\n};\nconst initSlots = (instance, children, optimized) => {\n  const slots = instance.slots = createInternalObject();\n  if (instance.vnode.shapeFlag & 32) {\n    const type = children._;\n    if (type) {\n      assignSlots(slots, children, optimized);\n      if (optimized) {\n        def(slots, \"_\", type, true);\n      }\n    } else {\n      normalizeObjectSlots(children, slots);\n    }\n  } else if (children) {\n    normalizeVNodeSlots(instance, children);\n  }\n};\nconst updateSlots = (instance, children, optimized) => {\n  const { vnode, slots } = instance;\n  let needDeletionCheck = true;\n  let deletionComparisonTarget = EMPTY_OBJ;\n  if (vnode.shapeFlag & 32) {\n    const type = children._;\n    if (type) {\n      if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n        assignSlots(slots, children, optimized);\n        trigger(instance, \"set\", \"$slots\");\n      } else if (optimized && type === 1) {\n        needDeletionCheck = false;\n      } else {\n        assignSlots(slots, children, optimized);\n      }\n    } else {\n      needDeletionCheck = !children.$stable;\n      normalizeObjectSlots(children, slots);\n    }\n    deletionComparisonTarget = children;\n  } else if (children) {\n    normalizeVNodeSlots(instance, children);\n    deletionComparisonTarget = { default: 1 };\n  }\n  if (needDeletionCheck) {\n    for (const key in slots) {\n      if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n        delete slots[key];\n      }\n    }\n  }\n};\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n  if (instance.appContext.config.performance && isSupported()) {\n    perf.mark(`vue-${type}-${instance.uid}`);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n  }\n}\nfunction endMeasure(instance, type) {\n  if (instance.appContext.config.performance && isSupported()) {\n    const startTag = `vue-${type}-${instance.uid}`;\n    const endTag = startTag + `:end`;\n    perf.mark(endTag);\n    perf.measure(\n      `<${formatComponentName(instance, instance.type)}> ${type}`,\n      startTag,\n      endTag\n    );\n    perf.clearMarks(startTag);\n    perf.clearMarks(endTag);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n  }\n}\nfunction isSupported() {\n  if (supported !== void 0) {\n    return supported;\n  }\n  if (typeof window !== \"undefined\" && window.performance) {\n    supported = true;\n    perf = window.performance;\n  } else {\n    supported = false;\n  }\n  return supported;\n}\n\nfunction initFeatureFlags() {\n  const needWarn = [];\n  if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n    !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n    getGlobalThis().__VUE_OPTIONS_API__ = true;\n  }\n  if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n    !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n    getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n  }\n  if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n    !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n    getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n    const multi = needWarn.length > 1;\n    console.warn(\n      `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n    );\n  }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n  return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n  return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n  {\n    initFeatureFlags();\n  }\n  const target = getGlobalThis();\n  target.__VUE__ = true;\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n  }\n  const {\n    insert: hostInsert,\n    remove: hostRemove,\n    patchProp: hostPatchProp,\n    createElement: hostCreateElement,\n    createText: hostCreateText,\n    createComment: hostCreateComment,\n    setText: hostSetText,\n    setElementText: hostSetElementText,\n    parentNode: hostParentNode,\n    nextSibling: hostNextSibling,\n    setScopeId: hostSetScopeId = NOOP,\n    insertStaticContent: hostInsertStaticContent\n  } = options;\n  const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n    if (n1 === n2) {\n      return;\n    }\n    if (n1 && !isSameVNodeType(n1, n2)) {\n      anchor = getNextHostNode(n1);\n      unmount(n1, parentComponent, parentSuspense, true);\n      n1 = null;\n    }\n    if (n2.patchFlag === -2) {\n      optimized = false;\n      n2.dynamicChildren = null;\n    }\n    const { type, ref, shapeFlag } = n2;\n    switch (type) {\n      case Text:\n        processText(n1, n2, container, anchor);\n        break;\n      case Comment:\n        processCommentNode(n1, n2, container, anchor);\n        break;\n      case Static:\n        if (n1 == null) {\n          mountStaticNode(n2, container, anchor, namespace);\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          patchStaticNode(n1, n2, container, namespace);\n        }\n        break;\n      case Fragment:\n        processFragment(\n          n1,\n          n2,\n          container,\n          anchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        break;\n      default:\n        if (shapeFlag & 1) {\n          processElement(\n            n1,\n            n2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        } else if (shapeFlag & 6) {\n          processComponent(\n            n1,\n            n2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        } else if (shapeFlag & 64) {\n          type.process(\n            n1,\n            n2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized,\n            internals\n          );\n        } else if (shapeFlag & 128) {\n          type.process(\n            n1,\n            n2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized,\n            internals\n          );\n        } else if (!!(process.env.NODE_ENV !== \"production\")) {\n          warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n        }\n    }\n    if (ref != null && parentComponent) {\n      setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n    }\n  };\n  const processText = (n1, n2, container, anchor) => {\n    if (n1 == null) {\n      hostInsert(\n        n2.el = hostCreateText(n2.children),\n        container,\n        anchor\n      );\n    } else {\n      const el = n2.el = n1.el;\n      if (n2.children !== n1.children) {\n        hostSetText(el, n2.children);\n      }\n    }\n  };\n  const processCommentNode = (n1, n2, container, anchor) => {\n    if (n1 == null) {\n      hostInsert(\n        n2.el = hostCreateComment(n2.children || \"\"),\n        container,\n        anchor\n      );\n    } else {\n      n2.el = n1.el;\n    }\n  };\n  const mountStaticNode = (n2, container, anchor, namespace) => {\n    [n2.el, n2.anchor] = hostInsertStaticContent(\n      n2.children,\n      container,\n      anchor,\n      namespace,\n      n2.el,\n      n2.anchor\n    );\n  };\n  const patchStaticNode = (n1, n2, container, namespace) => {\n    if (n2.children !== n1.children) {\n      const anchor = hostNextSibling(n1.anchor);\n      removeStaticNode(n1);\n      [n2.el, n2.anchor] = hostInsertStaticContent(\n        n2.children,\n        container,\n        anchor,\n        namespace\n      );\n    } else {\n      n2.el = n1.el;\n      n2.anchor = n1.anchor;\n    }\n  };\n  const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n    let next;\n    while (el && el !== anchor) {\n      next = hostNextSibling(el);\n      hostInsert(el, container, nextSibling);\n      el = next;\n    }\n    hostInsert(anchor, container, nextSibling);\n  };\n  const removeStaticNode = ({ el, anchor }) => {\n    let next;\n    while (el && el !== anchor) {\n      next = hostNextSibling(el);\n      hostRemove(el);\n      el = next;\n    }\n    hostRemove(anchor);\n  };\n  const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    if (n2.type === \"svg\") {\n      namespace = \"svg\";\n    } else if (n2.type === \"math\") {\n      namespace = \"mathml\";\n    }\n    if (n1 == null) {\n      mountElement(\n        n2,\n        container,\n        anchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    } else {\n      patchElement(\n        n1,\n        n2,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    }\n  };\n  const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    let el;\n    let vnodeHook;\n    const { props, shapeFlag, transition, dirs } = vnode;\n    el = vnode.el = hostCreateElement(\n      vnode.type,\n      namespace,\n      props && props.is,\n      props\n    );\n    if (shapeFlag & 8) {\n      hostSetElementText(el, vnode.children);\n    } else if (shapeFlag & 16) {\n      mountChildren(\n        vnode.children,\n        el,\n        null,\n        parentComponent,\n        parentSuspense,\n        resolveChildrenNamespace(vnode, namespace),\n        slotScopeIds,\n        optimized\n      );\n    }\n    if (dirs) {\n      invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n    }\n    setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n    if (props) {\n      for (const key in props) {\n        if (key !== \"value\" && !isReservedProp(key)) {\n          hostPatchProp(el, key, null, props[key], namespace, parentComponent);\n        }\n      }\n      if (\"value\" in props) {\n        hostPatchProp(el, \"value\", null, props.value, namespace);\n      }\n      if (vnodeHook = props.onVnodeBeforeMount) {\n        invokeVNodeHook(vnodeHook, parentComponent, vnode);\n      }\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      def(el, \"__vnode\", vnode, true);\n      def(el, \"__vueParentComponent\", parentComponent, true);\n    }\n    if (dirs) {\n      invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n    }\n    const needCallTransitionHooks = needTransition(parentSuspense, transition);\n    if (needCallTransitionHooks) {\n      transition.beforeEnter(el);\n    }\n    hostInsert(el, container, anchor);\n    if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n      queuePostRenderEffect(() => {\n        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n        needCallTransitionHooks && transition.enter(el);\n        dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n      }, parentSuspense);\n    }\n  };\n  const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n    if (scopeId) {\n      hostSetScopeId(el, scopeId);\n    }\n    if (slotScopeIds) {\n      for (let i = 0; i < slotScopeIds.length; i++) {\n        hostSetScopeId(el, slotScopeIds[i]);\n      }\n    }\n    if (parentComponent) {\n      let subTree = parentComponent.subTree;\n      if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n        subTree = filterSingleRoot(subTree.children) || subTree;\n      }\n      if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {\n        const parentVNode = parentComponent.vnode;\n        setScopeId(\n          el,\n          parentVNode,\n          parentVNode.scopeId,\n          parentVNode.slotScopeIds,\n          parentComponent.parent\n        );\n      }\n    }\n  };\n  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n    for (let i = start; i < children.length; i++) {\n      const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n      patch(\n        null,\n        child,\n        container,\n        anchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    }\n  };\n  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    const el = n2.el = n1.el;\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      el.__vnode = n2;\n    }\n    let { patchFlag, dynamicChildren, dirs } = n2;\n    patchFlag |= n1.patchFlag & 16;\n    const oldProps = n1.props || EMPTY_OBJ;\n    const newProps = n2.props || EMPTY_OBJ;\n    let vnodeHook;\n    parentComponent && toggleRecurse(parentComponent, false);\n    if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n      invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n    }\n    if (dirs) {\n      invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n    }\n    parentComponent && toggleRecurse(parentComponent, true);\n    if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n      patchFlag = 0;\n      optimized = false;\n      dynamicChildren = null;\n    }\n    if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {\n      hostSetElementText(el, \"\");\n    }\n    if (dynamicChildren) {\n      patchBlockChildren(\n        n1.dynamicChildren,\n        dynamicChildren,\n        el,\n        parentComponent,\n        parentSuspense,\n        resolveChildrenNamespace(n2, namespace),\n        slotScopeIds\n      );\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        traverseStaticChildren(n1, n2);\n      }\n    } else if (!optimized) {\n      patchChildren(\n        n1,\n        n2,\n        el,\n        null,\n        parentComponent,\n        parentSuspense,\n        resolveChildrenNamespace(n2, namespace),\n        slotScopeIds,\n        false\n      );\n    }\n    if (patchFlag > 0) {\n      if (patchFlag & 16) {\n        patchProps(el, oldProps, newProps, parentComponent, namespace);\n      } else {\n        if (patchFlag & 2) {\n          if (oldProps.class !== newProps.class) {\n            hostPatchProp(el, \"class\", null, newProps.class, namespace);\n          }\n        }\n        if (patchFlag & 4) {\n          hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n        }\n        if (patchFlag & 8) {\n          const propsToUpdate = n2.dynamicProps;\n          for (let i = 0; i < propsToUpdate.length; i++) {\n            const key = propsToUpdate[i];\n            const prev = oldProps[key];\n            const next = newProps[key];\n            if (next !== prev || key === \"value\") {\n              hostPatchProp(el, key, prev, next, namespace, parentComponent);\n            }\n          }\n        }\n      }\n      if (patchFlag & 1) {\n        if (n1.children !== n2.children) {\n          hostSetElementText(el, n2.children);\n        }\n      }\n    } else if (!optimized && dynamicChildren == null) {\n      patchProps(el, oldProps, newProps, parentComponent, namespace);\n    }\n    if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n      queuePostRenderEffect(() => {\n        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n        dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n      }, parentSuspense);\n    }\n  };\n  const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n    for (let i = 0; i < newChildren.length; i++) {\n      const oldVNode = oldChildren[i];\n      const newVNode = newChildren[i];\n      const container = (\n        // oldVNode may be an errored async setup() component inside Suspense\n        // which will not have a mounted element\n        oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n        // of the Fragment itself so it can move its children.\n        (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n        // which also requires the correct parent container\n        !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n        oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (\n          // In other cases, the parent container is not actually used so we\n          // just pass the block element here to avoid a DOM parentNode call.\n          fallbackContainer\n        )\n      );\n      patch(\n        oldVNode,\n        newVNode,\n        container,\n        null,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        true\n      );\n    }\n  };\n  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {\n    if (oldProps !== newProps) {\n      if (oldProps !== EMPTY_OBJ) {\n        for (const key in oldProps) {\n          if (!isReservedProp(key) && !(key in newProps)) {\n            hostPatchProp(\n              el,\n              key,\n              oldProps[key],\n              null,\n              namespace,\n              parentComponent\n            );\n          }\n        }\n      }\n      for (const key in newProps) {\n        if (isReservedProp(key)) continue;\n        const next = newProps[key];\n        const prev = oldProps[key];\n        if (next !== prev && key !== \"value\") {\n          hostPatchProp(el, key, prev, next, namespace, parentComponent);\n        }\n      }\n      if (\"value\" in newProps) {\n        hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n      }\n    }\n  };\n  const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n    const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n    let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n    if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n    (isHmrUpdating || patchFlag & 2048)) {\n      patchFlag = 0;\n      optimized = false;\n      dynamicChildren = null;\n    }\n    if (fragmentSlotScopeIds) {\n      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n    }\n    if (n1 == null) {\n      hostInsert(fragmentStartAnchor, container, anchor);\n      hostInsert(fragmentEndAnchor, container, anchor);\n      mountChildren(\n        // #10007\n        // such fragment like `<></>` will be compiled into\n        // a fragment which doesn't have a children.\n        // In this case fallback to an empty array\n        n2.children || [],\n        container,\n        fragmentEndAnchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    } else {\n      if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n      // of renderSlot() with no valid children\n      n1.dynamicChildren) {\n        patchBlockChildren(\n          n1.dynamicChildren,\n          dynamicChildren,\n          container,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds\n        );\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          traverseStaticChildren(n1, n2);\n        } else if (\n          // #2080 if the stable fragment has a key, it's a <template v-for> that may\n          //  get moved around. Make sure all root level vnodes inherit el.\n          // #2134 or if it's a component root, it may also get moved around\n          // as the component is being moved.\n          n2.key != null || parentComponent && n2 === parentComponent.subTree\n        ) {\n          traverseStaticChildren(\n            n1,\n            n2,\n            true\n            /* shallow */\n          );\n        }\n      } else {\n        patchChildren(\n          n1,\n          n2,\n          container,\n          fragmentEndAnchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n      }\n    }\n  };\n  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    n2.slotScopeIds = slotScopeIds;\n    if (n1 == null) {\n      if (n2.shapeFlag & 512) {\n        parentComponent.ctx.activate(\n          n2,\n          container,\n          anchor,\n          namespace,\n          optimized\n        );\n      } else {\n        mountComponent(\n          n2,\n          container,\n          anchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          optimized\n        );\n      }\n    } else {\n      updateComponent(n1, n2, optimized);\n    }\n  };\n  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n    const instance = (initialVNode.component = createComponentInstance(\n      initialVNode,\n      parentComponent,\n      parentSuspense\n    ));\n    if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n      registerHMR(instance);\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      pushWarningContext(initialVNode);\n      startMeasure(instance, `mount`);\n    }\n    if (isKeepAlive(initialVNode)) {\n      instance.ctx.renderer = internals;\n    }\n    {\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        startMeasure(instance, `init`);\n      }\n      setupComponent(instance, false, optimized);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        endMeasure(instance, `init`);\n      }\n    }\n    if (instance.asyncDep) {\n      if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) initialVNode.el = null;\n      parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);\n      if (!initialVNode.el) {\n        const placeholder = instance.subTree = createVNode(Comment);\n        processCommentNode(null, placeholder, container, anchor);\n      }\n    } else {\n      setupRenderEffect(\n        instance,\n        initialVNode,\n        container,\n        anchor,\n        parentSuspense,\n        namespace,\n        optimized\n      );\n    }\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      popWarningContext();\n      endMeasure(instance, `mount`);\n    }\n  };\n  const updateComponent = (n1, n2, optimized) => {\n    const instance = n2.component = n1.component;\n    if (shouldUpdateComponent(n1, n2, optimized)) {\n      if (instance.asyncDep && !instance.asyncResolved) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          pushWarningContext(n2);\n        }\n        updateComponentPreRender(instance, n2, optimized);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          popWarningContext();\n        }\n        return;\n      } else {\n        instance.next = n2;\n        instance.update();\n      }\n    } else {\n      n2.el = n1.el;\n      instance.vnode = n2;\n    }\n  };\n  const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n    const componentUpdateFn = () => {\n      if (!instance.isMounted) {\n        let vnodeHook;\n        const { el, props } = initialVNode;\n        const { bm, m, parent, root, type } = instance;\n        const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n        toggleRecurse(instance, false);\n        if (bm) {\n          invokeArrayFns(bm);\n        }\n        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n          invokeVNodeHook(vnodeHook, parent, initialVNode);\n        }\n        toggleRecurse(instance, true);\n        if (el && hydrateNode) {\n          const hydrateSubTree = () => {\n            if (!!(process.env.NODE_ENV !== \"production\")) {\n              startMeasure(instance, `render`);\n            }\n            instance.subTree = renderComponentRoot(instance);\n            if (!!(process.env.NODE_ENV !== \"production\")) {\n              endMeasure(instance, `render`);\n            }\n            if (!!(process.env.NODE_ENV !== \"production\")) {\n              startMeasure(instance, `hydrate`);\n            }\n            hydrateNode(\n              el,\n              instance.subTree,\n              instance,\n              parentSuspense,\n              null\n            );\n            if (!!(process.env.NODE_ENV !== \"production\")) {\n              endMeasure(instance, `hydrate`);\n            }\n          };\n          if (isAsyncWrapperVNode && type.__asyncHydrate) {\n            type.__asyncHydrate(\n              el,\n              instance,\n              hydrateSubTree\n            );\n          } else {\n            hydrateSubTree();\n          }\n        } else {\n          if (root.ce) {\n            root.ce._injectChildStyle(type);\n          }\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            startMeasure(instance, `render`);\n          }\n          const subTree = instance.subTree = renderComponentRoot(instance);\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            endMeasure(instance, `render`);\n          }\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            startMeasure(instance, `patch`);\n          }\n          patch(\n            null,\n            subTree,\n            container,\n            anchor,\n            instance,\n            parentSuspense,\n            namespace\n          );\n          if (!!(process.env.NODE_ENV !== \"production\")) {\n            endMeasure(instance, `patch`);\n          }\n          initialVNode.el = subTree.el;\n        }\n        if (m) {\n          queuePostRenderEffect(m, parentSuspense);\n        }\n        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n          const scopedInitialVNode = initialVNode;\n          queuePostRenderEffect(\n            () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n            parentSuspense\n          );\n        }\n        if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n          instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n        }\n        instance.isMounted = true;\n        if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n          devtoolsComponentAdded(instance);\n        }\n        initialVNode = container = anchor = null;\n      } else {\n        let { next, bu, u, parent, vnode } = instance;\n        {\n          const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n          if (nonHydratedAsyncRoot) {\n            if (next) {\n              next.el = vnode.el;\n              updateComponentPreRender(instance, next, optimized);\n            }\n            nonHydratedAsyncRoot.asyncDep.then(() => {\n              if (!instance.isUnmounted) {\n                componentUpdateFn();\n              }\n            });\n            return;\n          }\n        }\n        let originNext = next;\n        let vnodeHook;\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          pushWarningContext(next || instance.vnode);\n        }\n        toggleRecurse(instance, false);\n        if (next) {\n          next.el = vnode.el;\n          updateComponentPreRender(instance, next, optimized);\n        } else {\n          next = vnode;\n        }\n        if (bu) {\n          invokeArrayFns(bu);\n        }\n        if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n          invokeVNodeHook(vnodeHook, parent, next, vnode);\n        }\n        toggleRecurse(instance, true);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          startMeasure(instance, `render`);\n        }\n        const nextTree = renderComponentRoot(instance);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          endMeasure(instance, `render`);\n        }\n        const prevTree = instance.subTree;\n        instance.subTree = nextTree;\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          startMeasure(instance, `patch`);\n        }\n        patch(\n          prevTree,\n          nextTree,\n          // parent may have changed if it's in a teleport\n          hostParentNode(prevTree.el),\n          // anchor may have changed if it's in a fragment\n          getNextHostNode(prevTree),\n          instance,\n          parentSuspense,\n          namespace\n        );\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          endMeasure(instance, `patch`);\n        }\n        next.el = nextTree.el;\n        if (originNext === null) {\n          updateHOCHostEl(instance, nextTree.el);\n        }\n        if (u) {\n          queuePostRenderEffect(u, parentSuspense);\n        }\n        if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n          queuePostRenderEffect(\n            () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n            parentSuspense\n          );\n        }\n        if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n          devtoolsComponentUpdated(instance);\n        }\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          popWarningContext();\n        }\n      }\n    };\n    instance.scope.on();\n    const effect = instance.effect = new ReactiveEffect(componentUpdateFn);\n    instance.scope.off();\n    const update = instance.update = effect.run.bind(effect);\n    const job = instance.job = effect.runIfDirty.bind(effect);\n    job.i = instance;\n    job.id = instance.uid;\n    effect.scheduler = () => queueJob(job);\n    toggleRecurse(instance, true);\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n      effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n    }\n    update();\n  };\n  const updateComponentPreRender = (instance, nextVNode, optimized) => {\n    nextVNode.component = instance;\n    const prevProps = instance.vnode.props;\n    instance.vnode = nextVNode;\n    instance.next = null;\n    updateProps(instance, nextVNode.props, prevProps, optimized);\n    updateSlots(instance, nextVNode.children, optimized);\n    pauseTracking();\n    flushPreFlushCbs(instance);\n    resetTracking();\n  };\n  const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n    const c1 = n1 && n1.children;\n    const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n    const c2 = n2.children;\n    const { patchFlag, shapeFlag } = n2;\n    if (patchFlag > 0) {\n      if (patchFlag & 128) {\n        patchKeyedChildren(\n          c1,\n          c2,\n          container,\n          anchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        return;\n      } else if (patchFlag & 256) {\n        patchUnkeyedChildren(\n          c1,\n          c2,\n          container,\n          anchor,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        return;\n      }\n    }\n    if (shapeFlag & 8) {\n      if (prevShapeFlag & 16) {\n        unmountChildren(c1, parentComponent, parentSuspense);\n      }\n      if (c2 !== c1) {\n        hostSetElementText(container, c2);\n      }\n    } else {\n      if (prevShapeFlag & 16) {\n        if (shapeFlag & 16) {\n          patchKeyedChildren(\n            c1,\n            c2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        } else {\n          unmountChildren(c1, parentComponent, parentSuspense, true);\n        }\n      } else {\n        if (prevShapeFlag & 8) {\n          hostSetElementText(container, \"\");\n        }\n        if (shapeFlag & 16) {\n          mountChildren(\n            c2,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        }\n      }\n    }\n  };\n  const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    c1 = c1 || EMPTY_ARR;\n    c2 = c2 || EMPTY_ARR;\n    const oldLength = c1.length;\n    const newLength = c2.length;\n    const commonLength = Math.min(oldLength, newLength);\n    let i;\n    for (i = 0; i < commonLength; i++) {\n      const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n      patch(\n        c1[i],\n        nextChild,\n        container,\n        null,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n    }\n    if (oldLength > newLength) {\n      unmountChildren(\n        c1,\n        parentComponent,\n        parentSuspense,\n        true,\n        false,\n        commonLength\n      );\n    } else {\n      mountChildren(\n        c2,\n        container,\n        anchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized,\n        commonLength\n      );\n    }\n  };\n  const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n    let i = 0;\n    const l2 = c2.length;\n    let e1 = c1.length - 1;\n    let e2 = l2 - 1;\n    while (i <= e1 && i <= e2) {\n      const n1 = c1[i];\n      const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n      if (isSameVNodeType(n1, n2)) {\n        patch(\n          n1,\n          n2,\n          container,\n          null,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n      } else {\n        break;\n      }\n      i++;\n    }\n    while (i <= e1 && i <= e2) {\n      const n1 = c1[e1];\n      const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n      if (isSameVNodeType(n1, n2)) {\n        patch(\n          n1,\n          n2,\n          container,\n          null,\n          parentComponent,\n          parentSuspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n      } else {\n        break;\n      }\n      e1--;\n      e2--;\n    }\n    if (i > e1) {\n      if (i <= e2) {\n        const nextPos = e2 + 1;\n        const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n        while (i <= e2) {\n          patch(\n            null,\n            c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n          i++;\n        }\n      }\n    } else if (i > e2) {\n      while (i <= e1) {\n        unmount(c1[i], parentComponent, parentSuspense, true);\n        i++;\n      }\n    } else {\n      const s1 = i;\n      const s2 = i;\n      const keyToNewIndexMap = /* @__PURE__ */ new Map();\n      for (i = s2; i <= e2; i++) {\n        const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n        if (nextChild.key != null) {\n          if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n            warn$1(\n              `Duplicate keys found during update:`,\n              JSON.stringify(nextChild.key),\n              `Make sure keys are unique.`\n            );\n          }\n          keyToNewIndexMap.set(nextChild.key, i);\n        }\n      }\n      let j;\n      let patched = 0;\n      const toBePatched = e2 - s2 + 1;\n      let moved = false;\n      let maxNewIndexSoFar = 0;\n      const newIndexToOldIndexMap = new Array(toBePatched);\n      for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;\n      for (i = s1; i <= e1; i++) {\n        const prevChild = c1[i];\n        if (patched >= toBePatched) {\n          unmount(prevChild, parentComponent, parentSuspense, true);\n          continue;\n        }\n        let newIndex;\n        if (prevChild.key != null) {\n          newIndex = keyToNewIndexMap.get(prevChild.key);\n        } else {\n          for (j = s2; j <= e2; j++) {\n            if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n              newIndex = j;\n              break;\n            }\n          }\n        }\n        if (newIndex === void 0) {\n          unmount(prevChild, parentComponent, parentSuspense, true);\n        } else {\n          newIndexToOldIndexMap[newIndex - s2] = i + 1;\n          if (newIndex >= maxNewIndexSoFar) {\n            maxNewIndexSoFar = newIndex;\n          } else {\n            moved = true;\n          }\n          patch(\n            prevChild,\n            c2[newIndex],\n            container,\n            null,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n          patched++;\n        }\n      }\n      const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n      j = increasingNewIndexSequence.length - 1;\n      for (i = toBePatched - 1; i >= 0; i--) {\n        const nextIndex = s2 + i;\n        const nextChild = c2[nextIndex];\n        const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n        if (newIndexToOldIndexMap[i] === 0) {\n          patch(\n            null,\n            nextChild,\n            container,\n            anchor,\n            parentComponent,\n            parentSuspense,\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n        } else if (moved) {\n          if (j < 0 || i !== increasingNewIndexSequence[j]) {\n            move(nextChild, container, anchor, 2);\n          } else {\n            j--;\n          }\n        }\n      }\n    }\n  };\n  const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n    const { el, type, transition, children, shapeFlag } = vnode;\n    if (shapeFlag & 6) {\n      move(vnode.component.subTree, container, anchor, moveType);\n      return;\n    }\n    if (shapeFlag & 128) {\n      vnode.suspense.move(container, anchor, moveType);\n      return;\n    }\n    if (shapeFlag & 64) {\n      type.move(vnode, container, anchor, internals);\n      return;\n    }\n    if (type === Fragment) {\n      hostInsert(el, container, anchor);\n      for (let i = 0; i < children.length; i++) {\n        move(children[i], container, anchor, moveType);\n      }\n      hostInsert(vnode.anchor, container, anchor);\n      return;\n    }\n    if (type === Static) {\n      moveStaticNode(vnode, container, anchor);\n      return;\n    }\n    const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n    if (needTransition2) {\n      if (moveType === 0) {\n        transition.beforeEnter(el);\n        hostInsert(el, container, anchor);\n        queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n      } else {\n        const { leave, delayLeave, afterLeave } = transition;\n        const remove2 = () => hostInsert(el, container, anchor);\n        const performLeave = () => {\n          leave(el, () => {\n            remove2();\n            afterLeave && afterLeave();\n          });\n        };\n        if (delayLeave) {\n          delayLeave(el, remove2, performLeave);\n        } else {\n          performLeave();\n        }\n      }\n    } else {\n      hostInsert(el, container, anchor);\n    }\n  };\n  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n    const {\n      type,\n      props,\n      ref,\n      children,\n      dynamicChildren,\n      shapeFlag,\n      patchFlag,\n      dirs,\n      cacheIndex\n    } = vnode;\n    if (patchFlag === -2) {\n      optimized = false;\n    }\n    if (ref != null) {\n      setRef(ref, null, parentSuspense, vnode, true);\n    }\n    if (cacheIndex != null) {\n      parentComponent.renderCache[cacheIndex] = void 0;\n    }\n    if (shapeFlag & 256) {\n      parentComponent.ctx.deactivate(vnode);\n      return;\n    }\n    const shouldInvokeDirs = shapeFlag & 1 && dirs;\n    const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n    let vnodeHook;\n    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n      invokeVNodeHook(vnodeHook, parentComponent, vnode);\n    }\n    if (shapeFlag & 6) {\n      unmountComponent(vnode.component, parentSuspense, doRemove);\n    } else {\n      if (shapeFlag & 128) {\n        vnode.suspense.unmount(parentSuspense, doRemove);\n        return;\n      }\n      if (shouldInvokeDirs) {\n        invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n      }\n      if (shapeFlag & 64) {\n        vnode.type.remove(\n          vnode,\n          parentComponent,\n          parentSuspense,\n          internals,\n          doRemove\n        );\n      } else if (dynamicChildren && // #5154\n      // when v-once is used inside a block, setBlockTracking(-1) marks the\n      // parent block with hasOnce: true\n      // so that it doesn't take the fast path during unmount - otherwise\n      // components nested in v-once are never unmounted.\n      !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments\n      (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n        unmountChildren(\n          dynamicChildren,\n          parentComponent,\n          parentSuspense,\n          false,\n          true\n        );\n      } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n        unmountChildren(children, parentComponent, parentSuspense);\n      }\n      if (doRemove) {\n        remove(vnode);\n      }\n    }\n    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n      queuePostRenderEffect(() => {\n        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n        shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n      }, parentSuspense);\n    }\n  };\n  const remove = (vnode) => {\n    const { type, el, anchor, transition } = vnode;\n    if (type === Fragment) {\n      if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n        vnode.children.forEach((child) => {\n          if (child.type === Comment) {\n            hostRemove(child.el);\n          } else {\n            remove(child);\n          }\n        });\n      } else {\n        removeFragment(el, anchor);\n      }\n      return;\n    }\n    if (type === Static) {\n      removeStaticNode(vnode);\n      return;\n    }\n    const performRemove = () => {\n      hostRemove(el);\n      if (transition && !transition.persisted && transition.afterLeave) {\n        transition.afterLeave();\n      }\n    };\n    if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n      const { leave, delayLeave } = transition;\n      const performLeave = () => leave(el, performRemove);\n      if (delayLeave) {\n        delayLeave(vnode.el, performRemove, performLeave);\n      } else {\n        performLeave();\n      }\n    } else {\n      performRemove();\n    }\n  };\n  const removeFragment = (cur, end) => {\n    let next;\n    while (cur !== end) {\n      next = hostNextSibling(cur);\n      hostRemove(cur);\n      cur = next;\n    }\n    hostRemove(end);\n  };\n  const unmountComponent = (instance, parentSuspense, doRemove) => {\n    if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n      unregisterHMR(instance);\n    }\n    const { bum, scope, job, subTree, um, m, a } = instance;\n    invalidateMount(m);\n    invalidateMount(a);\n    if (bum) {\n      invokeArrayFns(bum);\n    }\n    scope.stop();\n    if (job) {\n      job.flags |= 8;\n      unmount(subTree, instance, parentSuspense, doRemove);\n    }\n    if (um) {\n      queuePostRenderEffect(um, parentSuspense);\n    }\n    queuePostRenderEffect(() => {\n      instance.isUnmounted = true;\n    }, parentSuspense);\n    if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n      parentSuspense.deps--;\n      if (parentSuspense.deps === 0) {\n        parentSuspense.resolve();\n      }\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      devtoolsComponentRemoved(instance);\n    }\n  };\n  const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n    for (let i = start; i < children.length; i++) {\n      unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n    }\n  };\n  const getNextHostNode = (vnode) => {\n    if (vnode.shapeFlag & 6) {\n      return getNextHostNode(vnode.component.subTree);\n    }\n    if (vnode.shapeFlag & 128) {\n      return vnode.suspense.next();\n    }\n    const el = hostNextSibling(vnode.anchor || vnode.el);\n    const teleportEnd = el && el[TeleportEndKey];\n    return teleportEnd ? hostNextSibling(teleportEnd) : el;\n  };\n  let isFlushing = false;\n  const render = (vnode, container, namespace) => {\n    if (vnode == null) {\n      if (container._vnode) {\n        unmount(container._vnode, null, null, true);\n      }\n    } else {\n      patch(\n        container._vnode || null,\n        vnode,\n        container,\n        null,\n        null,\n        null,\n        namespace\n      );\n    }\n    container._vnode = vnode;\n    if (!isFlushing) {\n      isFlushing = true;\n      flushPreFlushCbs();\n      flushPostFlushCbs();\n      isFlushing = false;\n    }\n  };\n  const internals = {\n    p: patch,\n    um: unmount,\n    m: move,\n    r: remove,\n    mt: mountComponent,\n    mc: mountChildren,\n    pc: patchChildren,\n    pbc: patchBlockChildren,\n    n: getNextHostNode,\n    o: options\n  };\n  let hydrate;\n  let hydrateNode;\n  if (createHydrationFns) {\n    [hydrate, hydrateNode] = createHydrationFns(\n      internals\n    );\n  }\n  return {\n    render,\n    hydrate,\n    createApp: createAppAPI(render, hydrate)\n  };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n  return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, job }, allowed) {\n  if (allowed) {\n    effect.flags |= 32;\n    job.flags |= 4;\n  } else {\n    effect.flags &= ~32;\n    job.flags &= ~4;\n  }\n}\nfunction needTransition(parentSuspense, transition) {\n  return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n  const ch1 = n1.children;\n  const ch2 = n2.children;\n  if (isArray(ch1) && isArray(ch2)) {\n    for (let i = 0; i < ch1.length; i++) {\n      const c1 = ch1[i];\n      let c2 = ch2[i];\n      if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n        if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n          c2 = ch2[i] = cloneIfMounted(ch2[i]);\n          c2.el = c1.el;\n        }\n        if (!shallow && c2.patchFlag !== -2)\n          traverseStaticChildren(c1, c2);\n      }\n      if (c2.type === Text) {\n        c2.el = c1.el;\n      }\n      if (!!(process.env.NODE_ENV !== \"production\") && c2.type === Comment && !c2.el) {\n        c2.el = c1.el;\n      }\n    }\n  }\n}\nfunction getSequence(arr) {\n  const p = arr.slice();\n  const result = [0];\n  let i, j, u, v, c;\n  const len = arr.length;\n  for (i = 0; i < len; i++) {\n    const arrI = arr[i];\n    if (arrI !== 0) {\n      j = result[result.length - 1];\n      if (arr[j] < arrI) {\n        p[i] = j;\n        result.push(i);\n        continue;\n      }\n      u = 0;\n      v = result.length - 1;\n      while (u < v) {\n        c = u + v >> 1;\n        if (arr[result[c]] < arrI) {\n          u = c + 1;\n        } else {\n          v = c;\n        }\n      }\n      if (arrI < arr[result[u]]) {\n        if (u > 0) {\n          p[i] = result[u - 1];\n        }\n        result[u] = i;\n      }\n    }\n  }\n  u = result.length;\n  v = result[u - 1];\n  while (u-- > 0) {\n    result[u] = v;\n    v = p[v];\n  }\n  return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n  const subComponent = instance.subTree.component;\n  if (subComponent) {\n    if (subComponent.asyncDep && !subComponent.asyncResolved) {\n      return subComponent;\n    } else {\n      return locateNonHydratedAsyncRoot(subComponent);\n    }\n  }\n}\nfunction invalidateMount(hooks) {\n  if (hooks) {\n    for (let i = 0; i < hooks.length; i++)\n      hooks[i].flags |= 8;\n  }\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n  {\n    const ctx = inject(ssrContextKey);\n    if (!ctx) {\n      !!(process.env.NODE_ENV !== \"production\") && warn$1(\n        `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n      );\n    }\n    return ctx;\n  }\n};\n\nfunction watchEffect(effect, options) {\n  return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n  return doWatch(\n    effect,\n    null,\n    !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n  );\n}\nfunction watchSyncEffect(effect, options) {\n  return doWatch(\n    effect,\n    null,\n    !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n  );\n}\nfunction watch(source, cb, options) {\n  if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n    warn$1(\n      `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n    );\n  }\n  return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n  const { immediate, deep, flush, once } = options;\n  if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n    if (immediate !== void 0) {\n      warn$1(\n        `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n      );\n    }\n    if (deep !== void 0) {\n      warn$1(\n        `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n      );\n    }\n    if (once !== void 0) {\n      warn$1(\n        `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n      );\n    }\n  }\n  const baseWatchOptions = extend({}, options);\n  if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n  const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n  let ssrCleanup;\n  if (isInSSRComponentSetup) {\n    if (flush === \"sync\") {\n      const ctx = useSSRContext();\n      ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n    } else if (!runsImmediately) {\n      const watchStopHandle = () => {\n      };\n      watchStopHandle.stop = NOOP;\n      watchStopHandle.resume = NOOP;\n      watchStopHandle.pause = NOOP;\n      return watchStopHandle;\n    }\n  }\n  const instance = currentInstance;\n  baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n  let isPre = false;\n  if (flush === \"post\") {\n    baseWatchOptions.scheduler = (job) => {\n      queuePostRenderEffect(job, instance && instance.suspense);\n    };\n  } else if (flush !== \"sync\") {\n    isPre = true;\n    baseWatchOptions.scheduler = (job, isFirstRun) => {\n      if (isFirstRun) {\n        job();\n      } else {\n        queueJob(job);\n      }\n    };\n  }\n  baseWatchOptions.augmentJob = (job) => {\n    if (cb) {\n      job.flags |= 4;\n    }\n    if (isPre) {\n      job.flags |= 2;\n      if (instance) {\n        job.id = instance.uid;\n        job.i = instance;\n      }\n    }\n  };\n  const watchHandle = watch$1(source, cb, baseWatchOptions);\n  if (isInSSRComponentSetup) {\n    if (ssrCleanup) {\n      ssrCleanup.push(watchHandle);\n    } else if (runsImmediately) {\n      watchHandle();\n    }\n  }\n  return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n  const publicThis = this.proxy;\n  const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n  let cb;\n  if (isFunction(value)) {\n    cb = value;\n  } else {\n    cb = value.handler;\n    options = value;\n  }\n  const reset = setCurrentInstance(this);\n  const res = doWatch(getter, cb.bind(publicThis), options);\n  reset();\n  return res;\n}\nfunction createPathGetter(ctx, path) {\n  const segments = path.split(\".\");\n  return () => {\n    let cur = ctx;\n    for (let i = 0; i < segments.length && cur; i++) {\n      cur = cur[segments[i]];\n    }\n    return cur;\n  };\n}\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n  const i = getCurrentInstance();\n  if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n    warn$1(`useModel() called without active instance.`);\n    return ref();\n  }\n  const camelizedName = camelize(name);\n  if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][camelizedName]) {\n    warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n    return ref();\n  }\n  const hyphenatedName = hyphenate(name);\n  const modifiers = getModelModifiers(props, camelizedName);\n  const res = customRef((track, trigger) => {\n    let localValue;\n    let prevSetValue = EMPTY_OBJ;\n    let prevEmittedValue;\n    watchSyncEffect(() => {\n      const propValue = props[camelizedName];\n      if (hasChanged(localValue, propValue)) {\n        localValue = propValue;\n        trigger();\n      }\n    });\n    return {\n      get() {\n        track();\n        return options.get ? options.get(localValue) : localValue;\n      },\n      set(value) {\n        const emittedValue = options.set ? options.set(value) : value;\n        if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {\n          return;\n        }\n        const rawProps = i.vnode.props;\n        if (!(rawProps && // check if parent has passed v-model\n        (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {\n          localValue = value;\n          trigger();\n        }\n        i.emit(`update:${name}`, emittedValue);\n        if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {\n          trigger();\n        }\n        prevSetValue = value;\n        prevEmittedValue = emittedValue;\n      }\n    };\n  });\n  res[Symbol.iterator] = () => {\n    let i2 = 0;\n    return {\n      next() {\n        if (i2 < 2) {\n          return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false };\n        } else {\n          return { done: true };\n        }\n      }\n    };\n  };\n  return res;\n}\nconst getModelModifiers = (props, modelName) => {\n  return modelName === \"modelValue\" || modelName === \"model-value\" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];\n};\n\nfunction emit(instance, event, ...rawArgs) {\n  if (instance.isUnmounted) return;\n  const props = instance.vnode.props || EMPTY_OBJ;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const {\n      emitsOptions,\n      propsOptions: [propsOptions]\n    } = instance;\n    if (emitsOptions) {\n      if (!(event in emitsOptions) && true) {\n        if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {\n          warn$1(\n            `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(camelize(event))}\" prop.`\n          );\n        }\n      } else {\n        const validator = emitsOptions[event];\n        if (isFunction(validator)) {\n          const isValid = validator(...rawArgs);\n          if (!isValid) {\n            warn$1(\n              `Invalid event arguments: event validation failed for event \"${event}\".`\n            );\n          }\n        }\n      }\n    }\n  }\n  let args = rawArgs;\n  const isModelListener = event.startsWith(\"update:\");\n  const modifiers = isModelListener && getModelModifiers(props, event.slice(7));\n  if (modifiers) {\n    if (modifiers.trim) {\n      args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n    }\n    if (modifiers.number) {\n      args = rawArgs.map(looseToNumber);\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n    devtoolsComponentEmit(instance, event, args);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const lowerCaseEvent = event.toLowerCase();\n    if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n      warn$1(\n        `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n          instance,\n          instance.type\n        )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n          event\n        )}\" instead of \"${event}\".`\n      );\n    }\n  }\n  let handlerName;\n  let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n  props[handlerName = toHandlerKey(camelize(event))];\n  if (!handler && isModelListener) {\n    handler = props[handlerName = toHandlerKey(hyphenate(event))];\n  }\n  if (handler) {\n    callWithAsyncErrorHandling(\n      handler,\n      instance,\n      6,\n      args\n    );\n  }\n  const onceHandler = props[handlerName + `Once`];\n  if (onceHandler) {\n    if (!instance.emitted) {\n      instance.emitted = {};\n    } else if (instance.emitted[handlerName]) {\n      return;\n    }\n    instance.emitted[handlerName] = true;\n    callWithAsyncErrorHandling(\n      onceHandler,\n      instance,\n      6,\n      args\n    );\n  }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n  const cache = appContext.emitsCache;\n  const cached = cache.get(comp);\n  if (cached !== void 0) {\n    return cached;\n  }\n  const raw = comp.emits;\n  let normalized = {};\n  let hasExtends = false;\n  if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n    const extendEmits = (raw2) => {\n      const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n      if (normalizedFromExtend) {\n        hasExtends = true;\n        extend(normalized, normalizedFromExtend);\n      }\n    };\n    if (!asMixin && appContext.mixins.length) {\n      appContext.mixins.forEach(extendEmits);\n    }\n    if (comp.extends) {\n      extendEmits(comp.extends);\n    }\n    if (comp.mixins) {\n      comp.mixins.forEach(extendEmits);\n    }\n  }\n  if (!raw && !hasExtends) {\n    if (isObject(comp)) {\n      cache.set(comp, null);\n    }\n    return null;\n  }\n  if (isArray(raw)) {\n    raw.forEach((key) => normalized[key] = null);\n  } else {\n    extend(normalized, raw);\n  }\n  if (isObject(comp)) {\n    cache.set(comp, normalized);\n  }\n  return normalized;\n}\nfunction isEmitListener(options, key) {\n  if (!options || !isOn(key)) {\n    return false;\n  }\n  key = key.slice(2).replace(/Once$/, \"\");\n  return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n  accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n  const {\n    type: Component,\n    vnode,\n    proxy,\n    withProxy,\n    propsOptions: [propsOptions],\n    slots,\n    attrs,\n    emit,\n    render,\n    renderCache,\n    props,\n    data,\n    setupState,\n    ctx,\n    inheritAttrs\n  } = instance;\n  const prev = setCurrentRenderingInstance(instance);\n  let result;\n  let fallthroughAttrs;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    accessedAttrs = false;\n  }\n  try {\n    if (vnode.shapeFlag & 4) {\n      const proxyToUse = withProxy || proxy;\n      const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n        get(target, key, receiver) {\n          warn$1(\n            `Property '${String(\n              key\n            )}' was accessed via 'this'. Avoid using 'this' in templates.`\n          );\n          return Reflect.get(target, key, receiver);\n        }\n      }) : proxyToUse;\n      result = normalizeVNode(\n        render.call(\n          thisProxy,\n          proxyToUse,\n          renderCache,\n          !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n          setupState,\n          data,\n          ctx\n        )\n      );\n      fallthroughAttrs = attrs;\n    } else {\n      const render2 = Component;\n      if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n        markAttrsAccessed();\n      }\n      result = normalizeVNode(\n        render2.length > 1 ? render2(\n          !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n          !!(process.env.NODE_ENV !== \"production\") ? {\n            get attrs() {\n              markAttrsAccessed();\n              return shallowReadonly(attrs);\n            },\n            slots,\n            emit\n          } : { attrs, slots, emit }\n        ) : render2(\n          !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n          null\n        )\n      );\n      fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n    }\n  } catch (err) {\n    blockStack.length = 0;\n    handleError(err, instance, 1);\n    result = createVNode(Comment);\n  }\n  let root = result;\n  let setRoot = void 0;\n  if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n    [root, setRoot] = getChildRoot(result);\n  }\n  if (fallthroughAttrs && inheritAttrs !== false) {\n    const keys = Object.keys(fallthroughAttrs);\n    const { shapeFlag } = root;\n    if (keys.length) {\n      if (shapeFlag & (1 | 6)) {\n        if (propsOptions && keys.some(isModelListener)) {\n          fallthroughAttrs = filterModelListeners(\n            fallthroughAttrs,\n            propsOptions\n          );\n        }\n        root = cloneVNode(root, fallthroughAttrs, false, true);\n      } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n        const allAttrs = Object.keys(attrs);\n        const eventAttrs = [];\n        const extraAttrs = [];\n        for (let i = 0, l = allAttrs.length; i < l; i++) {\n          const key = allAttrs[i];\n          if (isOn(key)) {\n            if (!isModelListener(key)) {\n              eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n            }\n          } else {\n            extraAttrs.push(key);\n          }\n        }\n        if (extraAttrs.length) {\n          warn$1(\n            `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`\n          );\n        }\n        if (eventAttrs.length) {\n          warn$1(\n            `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n          );\n        }\n      }\n    }\n  }\n  if (vnode.dirs) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n      warn$1(\n        `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n      );\n    }\n    root = cloneVNode(root, null, false, true);\n    root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n  }\n  if (vnode.transition) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n      warn$1(\n        `Component inside <Transition> renders non-element root node that cannot be animated.`\n      );\n    }\n    setTransitionHooks(root, vnode.transition);\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n    setRoot(root);\n  } else {\n    result = root;\n  }\n  setCurrentRenderingInstance(prev);\n  return result;\n}\nconst getChildRoot = (vnode) => {\n  const rawChildren = vnode.children;\n  const dynamicChildren = vnode.dynamicChildren;\n  const childRoot = filterSingleRoot(rawChildren, false);\n  if (!childRoot) {\n    return [vnode, void 0];\n  } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n    return getChildRoot(childRoot);\n  }\n  const index = rawChildren.indexOf(childRoot);\n  const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n  const setRoot = (updatedRoot) => {\n    rawChildren[index] = updatedRoot;\n    if (dynamicChildren) {\n      if (dynamicIndex > -1) {\n        dynamicChildren[dynamicIndex] = updatedRoot;\n      } else if (updatedRoot.patchFlag > 0) {\n        vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n      }\n    }\n  };\n  return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n  let singleRoot;\n  for (let i = 0; i < children.length; i++) {\n    const child = children[i];\n    if (isVNode(child)) {\n      if (child.type !== Comment || child.children === \"v-if\") {\n        if (singleRoot) {\n          return;\n        } else {\n          singleRoot = child;\n          if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n            return filterSingleRoot(singleRoot.children);\n          }\n        }\n      }\n    } else {\n      return;\n    }\n  }\n  return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n  let res;\n  for (const key in attrs) {\n    if (key === \"class\" || key === \"style\" || isOn(key)) {\n      (res || (res = {}))[key] = attrs[key];\n    }\n  }\n  return res;\n};\nconst filterModelListeners = (attrs, props) => {\n  const res = {};\n  for (const key in attrs) {\n    if (!isModelListener(key) || !(key.slice(9) in props)) {\n      res[key] = attrs[key];\n    }\n  }\n  return res;\n};\nconst isElementRoot = (vnode) => {\n  return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n  const { props: prevProps, children: prevChildren, component } = prevVNode;\n  const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n  const emits = component.emitsOptions;\n  if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n    return true;\n  }\n  if (nextVNode.dirs || nextVNode.transition) {\n    return true;\n  }\n  if (optimized && patchFlag >= 0) {\n    if (patchFlag & 1024) {\n      return true;\n    }\n    if (patchFlag & 16) {\n      if (!prevProps) {\n        return !!nextProps;\n      }\n      return hasPropsChanged(prevProps, nextProps, emits);\n    } else if (patchFlag & 8) {\n      const dynamicProps = nextVNode.dynamicProps;\n      for (let i = 0; i < dynamicProps.length; i++) {\n        const key = dynamicProps[i];\n        if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n          return true;\n        }\n      }\n    }\n  } else {\n    if (prevChildren || nextChildren) {\n      if (!nextChildren || !nextChildren.$stable) {\n        return true;\n      }\n    }\n    if (prevProps === nextProps) {\n      return false;\n    }\n    if (!prevProps) {\n      return !!nextProps;\n    }\n    if (!nextProps) {\n      return true;\n    }\n    return hasPropsChanged(prevProps, nextProps, emits);\n  }\n  return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n  const nextKeys = Object.keys(nextProps);\n  if (nextKeys.length !== Object.keys(prevProps).length) {\n    return true;\n  }\n  for (let i = 0; i < nextKeys.length; i++) {\n    const key = nextKeys[i];\n    if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n  while (parent) {\n    const root = parent.subTree;\n    if (root.suspense && root.suspense.activeBranch === vnode) {\n      root.el = vnode.el;\n    }\n    if (root === vnode) {\n      (vnode = parent.vnode).el = el;\n      parent = parent.parent;\n    } else {\n      break;\n    }\n  }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n  name: \"Suspense\",\n  // In order to make Suspense tree-shakable, we need to avoid importing it\n  // directly in the renderer. The renderer checks for the __isSuspense flag\n  // on a vnode's type and calls the `process` method, passing in renderer\n  // internals.\n  __isSuspense: true,\n  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n    if (n1 == null) {\n      mountSuspense(\n        n2,\n        container,\n        anchor,\n        parentComponent,\n        parentSuspense,\n        namespace,\n        slotScopeIds,\n        optimized,\n        rendererInternals\n      );\n    } else {\n      if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n        n2.suspense = n1.suspense;\n        n2.suspense.vnode = n2;\n        n2.el = n1.el;\n        return;\n      }\n      patchSuspense(\n        n1,\n        n2,\n        container,\n        anchor,\n        parentComponent,\n        namespace,\n        slotScopeIds,\n        optimized,\n        rendererInternals\n      );\n    }\n  },\n  hydrate: hydrateSuspense,\n  normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n  const eventListener = vnode.props && vnode.props[name];\n  if (isFunction(eventListener)) {\n    eventListener();\n  }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n  const {\n    p: patch,\n    o: { createElement }\n  } = rendererInternals;\n  const hiddenContainer = createElement(\"div\");\n  const suspense = vnode.suspense = createSuspenseBoundary(\n    vnode,\n    parentSuspense,\n    parentComponent,\n    container,\n    hiddenContainer,\n    anchor,\n    namespace,\n    slotScopeIds,\n    optimized,\n    rendererInternals\n  );\n  patch(\n    null,\n    suspense.pendingBranch = vnode.ssContent,\n    hiddenContainer,\n    null,\n    parentComponent,\n    suspense,\n    namespace,\n    slotScopeIds\n  );\n  if (suspense.deps > 0) {\n    triggerEvent(vnode, \"onPending\");\n    triggerEvent(vnode, \"onFallback\");\n    patch(\n      null,\n      vnode.ssFallback,\n      container,\n      anchor,\n      parentComponent,\n      null,\n      // fallback tree will not have suspense context\n      namespace,\n      slotScopeIds\n    );\n    setActiveBranch(suspense, vnode.ssFallback);\n  } else {\n    suspense.resolve(false, true);\n  }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n  const suspense = n2.suspense = n1.suspense;\n  suspense.vnode = n2;\n  n2.el = n1.el;\n  const newBranch = n2.ssContent;\n  const newFallback = n2.ssFallback;\n  const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n  if (pendingBranch) {\n    suspense.pendingBranch = newBranch;\n    if (isSameVNodeType(newBranch, pendingBranch)) {\n      patch(\n        pendingBranch,\n        newBranch,\n        suspense.hiddenContainer,\n        null,\n        parentComponent,\n        suspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n      if (suspense.deps <= 0) {\n        suspense.resolve();\n      } else if (isInFallback) {\n        if (!isHydrating) {\n          patch(\n            activeBranch,\n            newFallback,\n            container,\n            anchor,\n            parentComponent,\n            null,\n            // fallback tree will not have suspense context\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n          setActiveBranch(suspense, newFallback);\n        }\n      }\n    } else {\n      suspense.pendingId = suspenseId++;\n      if (isHydrating) {\n        suspense.isHydrating = false;\n        suspense.activeBranch = pendingBranch;\n      } else {\n        unmount(pendingBranch, parentComponent, suspense);\n      }\n      suspense.deps = 0;\n      suspense.effects.length = 0;\n      suspense.hiddenContainer = createElement(\"div\");\n      if (isInFallback) {\n        patch(\n          null,\n          newBranch,\n          suspense.hiddenContainer,\n          null,\n          parentComponent,\n          suspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        if (suspense.deps <= 0) {\n          suspense.resolve();\n        } else {\n          patch(\n            activeBranch,\n            newFallback,\n            container,\n            anchor,\n            parentComponent,\n            null,\n            // fallback tree will not have suspense context\n            namespace,\n            slotScopeIds,\n            optimized\n          );\n          setActiveBranch(suspense, newFallback);\n        }\n      } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n        patch(\n          activeBranch,\n          newBranch,\n          container,\n          anchor,\n          parentComponent,\n          suspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        suspense.resolve(true);\n      } else {\n        patch(\n          null,\n          newBranch,\n          suspense.hiddenContainer,\n          null,\n          parentComponent,\n          suspense,\n          namespace,\n          slotScopeIds,\n          optimized\n        );\n        if (suspense.deps <= 0) {\n          suspense.resolve();\n        }\n      }\n    }\n  } else {\n    if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n      patch(\n        activeBranch,\n        newBranch,\n        container,\n        anchor,\n        parentComponent,\n        suspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n      setActiveBranch(suspense, newBranch);\n    } else {\n      triggerEvent(n2, \"onPending\");\n      suspense.pendingBranch = newBranch;\n      if (newBranch.shapeFlag & 512) {\n        suspense.pendingId = newBranch.component.suspenseId;\n      } else {\n        suspense.pendingId = suspenseId++;\n      }\n      patch(\n        null,\n        newBranch,\n        suspense.hiddenContainer,\n        null,\n        parentComponent,\n        suspense,\n        namespace,\n        slotScopeIds,\n        optimized\n      );\n      if (suspense.deps <= 0) {\n        suspense.resolve();\n      } else {\n        const { timeout, pendingId } = suspense;\n        if (timeout > 0) {\n          setTimeout(() => {\n            if (suspense.pendingId === pendingId) {\n              suspense.fallback(newFallback);\n            }\n          }, timeout);\n        } else if (timeout === 0) {\n          suspense.fallback(newFallback);\n        }\n      }\n    }\n  }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n  if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n    hasWarned = true;\n    console[console.info ? \"info\" : \"log\"](\n      `<Suspense> is an experimental feature and its API will likely change.`\n    );\n  }\n  const {\n    p: patch,\n    m: move,\n    um: unmount,\n    n: next,\n    o: { parentNode, remove }\n  } = rendererInternals;\n  let parentSuspenseId;\n  const isSuspensible = isVNodeSuspensible(vnode);\n  if (isSuspensible) {\n    if (parentSuspense && parentSuspense.pendingBranch) {\n      parentSuspenseId = parentSuspense.pendingId;\n      parentSuspense.deps++;\n    }\n  }\n  const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    assertNumber(timeout, `Suspense timeout`);\n  }\n  const initialAnchor = anchor;\n  const suspense = {\n    vnode,\n    parent: parentSuspense,\n    parentComponent,\n    namespace,\n    container,\n    hiddenContainer,\n    deps: 0,\n    pendingId: suspenseId++,\n    timeout: typeof timeout === \"number\" ? timeout : -1,\n    activeBranch: null,\n    pendingBranch: null,\n    isInFallback: !isHydrating,\n    isHydrating,\n    isUnmounted: false,\n    effects: [],\n    resolve(resume = false, sync = false) {\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        if (!resume && !suspense.pendingBranch) {\n          throw new Error(\n            `suspense.resolve() is called without a pending branch.`\n          );\n        }\n        if (suspense.isUnmounted) {\n          throw new Error(\n            `suspense.resolve() is called on an already unmounted suspense boundary.`\n          );\n        }\n      }\n      const {\n        vnode: vnode2,\n        activeBranch,\n        pendingBranch,\n        pendingId,\n        effects,\n        parentComponent: parentComponent2,\n        container: container2\n      } = suspense;\n      let delayEnter = false;\n      if (suspense.isHydrating) {\n        suspense.isHydrating = false;\n      } else if (!resume) {\n        delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n        if (delayEnter) {\n          activeBranch.transition.afterLeave = () => {\n            if (pendingId === suspense.pendingId) {\n              move(\n                pendingBranch,\n                container2,\n                anchor === initialAnchor ? next(activeBranch) : anchor,\n                0\n              );\n              queuePostFlushCb(effects);\n            }\n          };\n        }\n        if (activeBranch) {\n          if (parentNode(activeBranch.el) === container2) {\n            anchor = next(activeBranch);\n          }\n          unmount(activeBranch, parentComponent2, suspense, true);\n        }\n        if (!delayEnter) {\n          move(pendingBranch, container2, anchor, 0);\n        }\n      }\n      setActiveBranch(suspense, pendingBranch);\n      suspense.pendingBranch = null;\n      suspense.isInFallback = false;\n      let parent = suspense.parent;\n      let hasUnresolvedAncestor = false;\n      while (parent) {\n        if (parent.pendingBranch) {\n          parent.effects.push(...effects);\n          hasUnresolvedAncestor = true;\n          break;\n        }\n        parent = parent.parent;\n      }\n      if (!hasUnresolvedAncestor && !delayEnter) {\n        queuePostFlushCb(effects);\n      }\n      suspense.effects = [];\n      if (isSuspensible) {\n        if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n          parentSuspense.deps--;\n          if (parentSuspense.deps === 0 && !sync) {\n            parentSuspense.resolve();\n          }\n        }\n      }\n      triggerEvent(vnode2, \"onResolve\");\n    },\n    fallback(fallbackVNode) {\n      if (!suspense.pendingBranch) {\n        return;\n      }\n      const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n      triggerEvent(vnode2, \"onFallback\");\n      const anchor2 = next(activeBranch);\n      const mountFallback = () => {\n        if (!suspense.isInFallback) {\n          return;\n        }\n        patch(\n          null,\n          fallbackVNode,\n          container2,\n          anchor2,\n          parentComponent2,\n          null,\n          // fallback tree will not have suspense context\n          namespace2,\n          slotScopeIds,\n          optimized\n        );\n        setActiveBranch(suspense, fallbackVNode);\n      };\n      const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n      if (delayEnter) {\n        activeBranch.transition.afterLeave = mountFallback;\n      }\n      suspense.isInFallback = true;\n      unmount(\n        activeBranch,\n        parentComponent2,\n        null,\n        // no suspense so unmount hooks fire now\n        true\n        // shouldRemove\n      );\n      if (!delayEnter) {\n        mountFallback();\n      }\n    },\n    move(container2, anchor2, type) {\n      suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n      suspense.container = container2;\n    },\n    next() {\n      return suspense.activeBranch && next(suspense.activeBranch);\n    },\n    registerDep(instance, setupRenderEffect, optimized2) {\n      const isInPendingSuspense = !!suspense.pendingBranch;\n      if (isInPendingSuspense) {\n        suspense.deps++;\n      }\n      const hydratedEl = instance.vnode.el;\n      instance.asyncDep.catch((err) => {\n        handleError(err, instance, 0);\n      }).then((asyncSetupResult) => {\n        if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n          return;\n        }\n        instance.asyncResolved = true;\n        const { vnode: vnode2 } = instance;\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          pushWarningContext(vnode2);\n        }\n        handleSetupResult(instance, asyncSetupResult, false);\n        if (hydratedEl) {\n          vnode2.el = hydratedEl;\n        }\n        const placeholder = !hydratedEl && instance.subTree.el;\n        setupRenderEffect(\n          instance,\n          vnode2,\n          // component may have been moved before resolve.\n          // if this is not a hydration, instance.subTree will be the comment\n          // placeholder.\n          parentNode(hydratedEl || instance.subTree.el),\n          // anchor will not be used if this is hydration, so only need to\n          // consider the comment placeholder case.\n          hydratedEl ? null : next(instance.subTree),\n          suspense,\n          namespace,\n          optimized2\n        );\n        if (placeholder) {\n          remove(placeholder);\n        }\n        updateHOCHostEl(instance, vnode2.el);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          popWarningContext();\n        }\n        if (isInPendingSuspense && --suspense.deps === 0) {\n          suspense.resolve();\n        }\n      });\n    },\n    unmount(parentSuspense2, doRemove) {\n      suspense.isUnmounted = true;\n      if (suspense.activeBranch) {\n        unmount(\n          suspense.activeBranch,\n          parentComponent,\n          parentSuspense2,\n          doRemove\n        );\n      }\n      if (suspense.pendingBranch) {\n        unmount(\n          suspense.pendingBranch,\n          parentComponent,\n          parentSuspense2,\n          doRemove\n        );\n      }\n    }\n  };\n  return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n  const suspense = vnode.suspense = createSuspenseBoundary(\n    vnode,\n    parentSuspense,\n    parentComponent,\n    node.parentNode,\n    // eslint-disable-next-line no-restricted-globals\n    document.createElement(\"div\"),\n    null,\n    namespace,\n    slotScopeIds,\n    optimized,\n    rendererInternals,\n    true\n  );\n  const result = hydrateNode(\n    node,\n    suspense.pendingBranch = vnode.ssContent,\n    parentComponent,\n    suspense,\n    slotScopeIds,\n    optimized\n  );\n  if (suspense.deps === 0) {\n    suspense.resolve(false, true);\n  }\n  return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n  const { shapeFlag, children } = vnode;\n  const isSlotChildren = shapeFlag & 32;\n  vnode.ssContent = normalizeSuspenseSlot(\n    isSlotChildren ? children.default : children\n  );\n  vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n  let block;\n  if (isFunction(s)) {\n    const trackBlock = isBlockTreeEnabled && s._c;\n    if (trackBlock) {\n      s._d = false;\n      openBlock();\n    }\n    s = s();\n    if (trackBlock) {\n      s._d = true;\n      block = currentBlock;\n      closeBlock();\n    }\n  }\n  if (isArray(s)) {\n    const singleChild = filterSingleRoot(s);\n    if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n      warn$1(`<Suspense> slots expect a single root node.`);\n    }\n    s = singleChild;\n  }\n  s = normalizeVNode(s);\n  if (block && !s.dynamicChildren) {\n    s.dynamicChildren = block.filter((c) => c !== s);\n  }\n  return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n  if (suspense && suspense.pendingBranch) {\n    if (isArray(fn)) {\n      suspense.effects.push(...fn);\n    } else {\n      suspense.effects.push(fn);\n    }\n  } else {\n    queuePostFlushCb(fn);\n  }\n}\nfunction setActiveBranch(suspense, branch) {\n  suspense.activeBranch = branch;\n  const { vnode, parentComponent } = suspense;\n  let el = branch.el;\n  while (!el && branch.component) {\n    branch = branch.component.subTree;\n    el = branch.el;\n  }\n  vnode.el = el;\n  if (parentComponent && parentComponent.subTree === vnode) {\n    parentComponent.vnode.el = el;\n    updateHOCHostEl(parentComponent, el);\n  }\n}\nfunction isVNodeSuspensible(vnode) {\n  const suspensible = vnode.props && vnode.props.suspensible;\n  return suspensible != null && suspensible !== false;\n}\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n  blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n  blockStack.pop();\n  currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value, inVOnce = false) {\n  isBlockTreeEnabled += value;\n  if (value < 0 && currentBlock && inVOnce) {\n    currentBlock.hasOnce = true;\n  }\n}\nfunction setupBlock(vnode) {\n  vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n  closeBlock();\n  if (isBlockTreeEnabled > 0 && currentBlock) {\n    currentBlock.push(vnode);\n  }\n  return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n  return setupBlock(\n    createBaseVNode(\n      type,\n      props,\n      children,\n      patchFlag,\n      dynamicProps,\n      shapeFlag,\n      true\n    )\n  );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n  return setupBlock(\n    createVNode(\n      type,\n      props,\n      children,\n      patchFlag,\n      dynamicProps,\n      true\n    )\n  );\n}\nfunction isVNode(value) {\n  return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n  if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && n1.component) {\n    const dirtyInstances = hmrDirtyComponents.get(n2.type);\n    if (dirtyInstances && dirtyInstances.has(n1.component)) {\n      n1.shapeFlag &= ~256;\n      n2.shapeFlag &= ~512;\n      return false;\n    }\n  }\n  return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n  vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n  return _createVNode(\n    ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n  );\n};\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n  ref,\n  ref_key,\n  ref_for\n}) => {\n  if (typeof ref === \"number\") {\n    ref = \"\" + ref;\n  }\n  return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n  const vnode = {\n    __v_isVNode: true,\n    __v_skip: true,\n    type,\n    props,\n    key: props && normalizeKey(props),\n    ref: props && normalizeRef(props),\n    scopeId: currentScopeId,\n    slotScopeIds: null,\n    children,\n    component: null,\n    suspense: null,\n    ssContent: null,\n    ssFallback: null,\n    dirs: null,\n    transition: null,\n    el: null,\n    anchor: null,\n    target: null,\n    targetStart: null,\n    targetAnchor: null,\n    staticCount: 0,\n    shapeFlag,\n    patchFlag,\n    dynamicProps,\n    dynamicChildren: null,\n    appContext: null,\n    ctx: currentRenderingInstance\n  };\n  if (needFullChildrenNormalization) {\n    normalizeChildren(vnode, children);\n    if (shapeFlag & 128) {\n      type.normalize(vnode);\n    }\n  } else if (children) {\n    vnode.shapeFlag |= isString(children) ? 8 : 16;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n    warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n  }\n  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n  !isBlockNode && // has current parent block\n  currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n  // component nodes also should always be patched, because even if the\n  // component doesn't need to update, it needs to persist the instance on to\n  // the next vnode so that it can be properly unmounted later.\n  (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n  // vnode should not be considered dynamic due to handler caching.\n  vnode.patchFlag !== 32) {\n    currentBlock.push(vnode);\n  }\n  return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n  if (!type || type === NULL_DYNAMIC_COMPONENT) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n      warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n    }\n    type = Comment;\n  }\n  if (isVNode(type)) {\n    const cloned = cloneVNode(\n      type,\n      props,\n      true\n      /* mergeRef: true */\n    );\n    if (children) {\n      normalizeChildren(cloned, children);\n    }\n    if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n      if (cloned.shapeFlag & 6) {\n        currentBlock[currentBlock.indexOf(type)] = cloned;\n      } else {\n        currentBlock.push(cloned);\n      }\n    }\n    cloned.patchFlag = -2;\n    return cloned;\n  }\n  if (isClassComponent(type)) {\n    type = type.__vccOpts;\n  }\n  if (props) {\n    props = guardReactiveProps(props);\n    let { class: klass, style } = props;\n    if (klass && !isString(klass)) {\n      props.class = normalizeClass(klass);\n    }\n    if (isObject(style)) {\n      if (isProxy(style) && !isArray(style)) {\n        style = extend({}, style);\n      }\n      props.style = normalizeStyle(style);\n    }\n  }\n  const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n  if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n    type = toRaw(type);\n    warn$1(\n      `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n      `\nComponent that was made reactive: `,\n      type\n    );\n  }\n  return createBaseVNode(\n    type,\n    props,\n    children,\n    patchFlag,\n    dynamicProps,\n    shapeFlag,\n    isBlockNode,\n    true\n  );\n}\nfunction guardReactiveProps(props) {\n  if (!props) return null;\n  return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {\n  const { props, ref, patchFlag, children, transition } = vnode;\n  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n  const cloned = {\n    __v_isVNode: true,\n    __v_skip: true,\n    type: vnode.type,\n    props: mergedProps,\n    key: mergedProps && normalizeKey(mergedProps),\n    ref: extraProps && extraProps.ref ? (\n      // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n      // if the vnode itself already has a ref, cloneVNode will need to merge\n      // the refs so the single vnode can be set on multiple refs\n      mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n    ) : ref,\n    scopeId: vnode.scopeId,\n    slotScopeIds: vnode.slotScopeIds,\n    children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n    target: vnode.target,\n    targetStart: vnode.targetStart,\n    targetAnchor: vnode.targetAnchor,\n    staticCount: vnode.staticCount,\n    shapeFlag: vnode.shapeFlag,\n    // if the vnode is cloned with extra props, we can no longer assume its\n    // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n    // note: preserve flag for fragments since they use the flag for children\n    // fast paths only.\n    patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n    dynamicProps: vnode.dynamicProps,\n    dynamicChildren: vnode.dynamicChildren,\n    appContext: vnode.appContext,\n    dirs: vnode.dirs,\n    transition,\n    // These should technically only be non-null on mounted VNodes. However,\n    // they *should* be copied for kept-alive vnodes. So we just always copy\n    // them since them being non-null during a mount doesn't affect the logic as\n    // they will simply be overwritten.\n    component: vnode.component,\n    suspense: vnode.suspense,\n    ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n    ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n    el: vnode.el,\n    anchor: vnode.anchor,\n    ctx: vnode.ctx,\n    ce: vnode.ce\n  };\n  if (transition && cloneTransition) {\n    setTransitionHooks(\n      cloned,\n      transition.clone(cloned)\n    );\n  }\n  return cloned;\n}\nfunction deepCloneVNode(vnode) {\n  const cloned = cloneVNode(vnode);\n  if (isArray(vnode.children)) {\n    cloned.children = vnode.children.map(deepCloneVNode);\n  }\n  return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n  return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n  const vnode = createVNode(Static, null, content);\n  vnode.staticCount = numberOfNodes;\n  return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n  return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n  if (child == null || typeof child === \"boolean\") {\n    return createVNode(Comment);\n  } else if (isArray(child)) {\n    return createVNode(\n      Fragment,\n      null,\n      // #3666, avoid reference pollution when reusing vnode\n      child.slice()\n    );\n  } else if (isVNode(child)) {\n    return cloneIfMounted(child);\n  } else {\n    return createVNode(Text, null, String(child));\n  }\n}\nfunction cloneIfMounted(child) {\n  return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n  let type = 0;\n  const { shapeFlag } = vnode;\n  if (children == null) {\n    children = null;\n  } else if (isArray(children)) {\n    type = 16;\n  } else if (typeof children === \"object\") {\n    if (shapeFlag & (1 | 64)) {\n      const slot = children.default;\n      if (slot) {\n        slot._c && (slot._d = false);\n        normalizeChildren(vnode, slot());\n        slot._c && (slot._d = true);\n      }\n      return;\n    } else {\n      type = 32;\n      const slotFlag = children._;\n      if (!slotFlag && !isInternalObject(children)) {\n        children._ctx = currentRenderingInstance;\n      } else if (slotFlag === 3 && currentRenderingInstance) {\n        if (currentRenderingInstance.slots._ === 1) {\n          children._ = 1;\n        } else {\n          children._ = 2;\n          vnode.patchFlag |= 1024;\n        }\n      }\n    }\n  } else if (isFunction(children)) {\n    children = { default: children, _ctx: currentRenderingInstance };\n    type = 32;\n  } else {\n    children = String(children);\n    if (shapeFlag & 64) {\n      type = 16;\n      children = [createTextVNode(children)];\n    } else {\n      type = 8;\n    }\n  }\n  vnode.children = children;\n  vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n  const ret = {};\n  for (let i = 0; i < args.length; i++) {\n    const toMerge = args[i];\n    for (const key in toMerge) {\n      if (key === \"class\") {\n        if (ret.class !== toMerge.class) {\n          ret.class = normalizeClass([ret.class, toMerge.class]);\n        }\n      } else if (key === \"style\") {\n        ret.style = normalizeStyle([ret.style, toMerge.style]);\n      } else if (isOn(key)) {\n        const existing = ret[key];\n        const incoming = toMerge[key];\n        if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n          ret[key] = existing ? [].concat(existing, incoming) : incoming;\n        }\n      } else if (key !== \"\") {\n        ret[key] = toMerge[key];\n      }\n    }\n  }\n  return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n  callWithAsyncErrorHandling(hook, instance, 7, [\n    vnode,\n    prevVNode\n  ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n  const type = vnode.type;\n  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n  const instance = {\n    uid: uid++,\n    vnode,\n    type,\n    parent,\n    appContext,\n    root: null,\n    // to be immediately set\n    next: null,\n    subTree: null,\n    // will be set synchronously right after creation\n    effect: null,\n    update: null,\n    // will be set synchronously right after creation\n    job: null,\n    scope: new EffectScope(\n      true\n      /* detached */\n    ),\n    render: null,\n    proxy: null,\n    exposed: null,\n    exposeProxy: null,\n    withProxy: null,\n    provides: parent ? parent.provides : Object.create(appContext.provides),\n    ids: parent ? parent.ids : [\"\", 0, 0],\n    accessCache: null,\n    renderCache: [],\n    // local resolved assets\n    components: null,\n    directives: null,\n    // resolved props and emits options\n    propsOptions: normalizePropsOptions(type, appContext),\n    emitsOptions: normalizeEmitsOptions(type, appContext),\n    // emit\n    emit: null,\n    // to be set immediately\n    emitted: null,\n    // props default value\n    propsDefaults: EMPTY_OBJ,\n    // inheritAttrs\n    inheritAttrs: type.inheritAttrs,\n    // state\n    ctx: EMPTY_OBJ,\n    data: EMPTY_OBJ,\n    props: EMPTY_OBJ,\n    attrs: EMPTY_OBJ,\n    slots: EMPTY_OBJ,\n    refs: EMPTY_OBJ,\n    setupState: EMPTY_OBJ,\n    setupContext: null,\n    // suspense related\n    suspense,\n    suspenseId: suspense ? suspense.pendingId : 0,\n    asyncDep: null,\n    asyncResolved: false,\n    // lifecycle hooks\n    // not using enums here because it results in computed properties\n    isMounted: false,\n    isUnmounted: false,\n    isDeactivated: false,\n    bc: null,\n    c: null,\n    bm: null,\n    m: null,\n    bu: null,\n    u: null,\n    um: null,\n    bum: null,\n    da: null,\n    a: null,\n    rtg: null,\n    rtc: null,\n    ec: null,\n    sp: null\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    instance.ctx = createDevRenderContext(instance);\n  } else {\n    instance.ctx = { _: instance };\n  }\n  instance.root = parent ? parent.root : instance;\n  instance.emit = emit.bind(null, instance);\n  if (vnode.ce) {\n    vnode.ce(instance);\n  }\n  return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n  const g = getGlobalThis();\n  const registerGlobalSetter = (key, setter) => {\n    let setters;\n    if (!(setters = g[key])) setters = g[key] = [];\n    setters.push(setter);\n    return (v) => {\n      if (setters.length > 1) setters.forEach((set) => set(v));\n      else setters[0](v);\n    };\n  };\n  internalSetCurrentInstance = registerGlobalSetter(\n    `__VUE_INSTANCE_SETTERS__`,\n    (v) => currentInstance = v\n  );\n  setInSSRSetupState = registerGlobalSetter(\n    `__VUE_SSR_SETTERS__`,\n    (v) => isInSSRComponentSetup = v\n  );\n}\nconst setCurrentInstance = (instance) => {\n  const prev = currentInstance;\n  internalSetCurrentInstance(instance);\n  instance.scope.on();\n  return () => {\n    instance.scope.off();\n    internalSetCurrentInstance(prev);\n  };\n};\nconst unsetCurrentInstance = () => {\n  currentInstance && currentInstance.scope.off();\n  internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n  if (isBuiltInTag(name) || isNativeTag(name)) {\n    warn$1(\n      \"Do not use built-in or reserved HTML elements as component id: \" + name\n    );\n  }\n}\nfunction isStatefulComponent(instance) {\n  return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false, optimized = false) {\n  isSSR && setInSSRSetupState(isSSR);\n  const { props, children } = instance.vnode;\n  const isStateful = isStatefulComponent(instance);\n  initProps(instance, props, isStateful, isSSR);\n  initSlots(instance, children, optimized);\n  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n  isSSR && setInSSRSetupState(false);\n  return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n  var _a;\n  const Component = instance.type;\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    if (Component.name) {\n      validateComponentName(Component.name, instance.appContext.config);\n    }\n    if (Component.components) {\n      const names = Object.keys(Component.components);\n      for (let i = 0; i < names.length; i++) {\n        validateComponentName(names[i], instance.appContext.config);\n      }\n    }\n    if (Component.directives) {\n      const names = Object.keys(Component.directives);\n      for (let i = 0; i < names.length; i++) {\n        validateDirectiveName(names[i]);\n      }\n    }\n    if (Component.compilerOptions && isRuntimeOnly()) {\n      warn$1(\n        `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n      );\n    }\n  }\n  instance.accessCache = /* @__PURE__ */ Object.create(null);\n  instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    exposePropsOnRenderContext(instance);\n  }\n  const { setup } = Component;\n  if (setup) {\n    pauseTracking();\n    const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n    const reset = setCurrentInstance(instance);\n    const setupResult = callWithErrorHandling(\n      setup,\n      instance,\n      0,\n      [\n        !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n        setupContext\n      ]\n    );\n    const isAsyncSetup = isPromise(setupResult);\n    resetTracking();\n    reset();\n    if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {\n      markAsyncBoundary(instance);\n    }\n    if (isAsyncSetup) {\n      setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n      if (isSSR) {\n        return setupResult.then((resolvedResult) => {\n          handleSetupResult(instance, resolvedResult, isSSR);\n        }).catch((e) => {\n          handleError(e, instance, 0);\n        });\n      } else {\n        instance.asyncDep = setupResult;\n        if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n          const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n          warn$1(\n            `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n          );\n        }\n      }\n    } else {\n      handleSetupResult(instance, setupResult, isSSR);\n    }\n  } else {\n    finishComponentSetup(instance, isSSR);\n  }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n  if (isFunction(setupResult)) {\n    if (instance.type.__ssrInlineRender) {\n      instance.ssrRender = setupResult;\n    } else {\n      instance.render = setupResult;\n    }\n  } else if (isObject(setupResult)) {\n    if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n      warn$1(\n        `setup() should not return VNodes directly - return a render function instead.`\n      );\n    }\n    if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n      instance.devtoolsRawSetupState = setupResult;\n    }\n    instance.setupState = proxyRefs(setupResult);\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      exposeSetupStateOnRenderContext(instance);\n    }\n  } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n    warn$1(\n      `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n    );\n  }\n  finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n  compile = _compile;\n  installWithProxy = (i) => {\n    if (i.render._rc) {\n      i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n    }\n  };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n  const Component = instance.type;\n  if (!instance.render) {\n    if (!isSSR && compile && !Component.render) {\n      const template = Component.template || __VUE_OPTIONS_API__ && resolveMergedOptions(instance).template;\n      if (template) {\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          startMeasure(instance, `compile`);\n        }\n        const { isCustomElement, compilerOptions } = instance.appContext.config;\n        const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n        const finalCompilerOptions = extend(\n          extend(\n            {\n              isCustomElement,\n              delimiters\n            },\n            compilerOptions\n          ),\n          componentCompilerOptions\n        );\n        Component.render = compile(template, finalCompilerOptions);\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          endMeasure(instance, `compile`);\n        }\n      }\n    }\n    instance.render = Component.render || NOOP;\n    if (installWithProxy) {\n      installWithProxy(instance);\n    }\n  }\n  if (__VUE_OPTIONS_API__ && true) {\n    const reset = setCurrentInstance(instance);\n    pauseTracking();\n    try {\n      applyOptions(instance);\n    } finally {\n      resetTracking();\n      reset();\n    }\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n    if (!compile && Component.template) {\n      warn$1(\n        `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n      );\n    } else {\n      warn$1(`Component is missing template or render function: `, Component);\n    }\n  }\n}\nconst attrsProxyHandlers = !!(process.env.NODE_ENV !== \"production\") ? {\n  get(target, key) {\n    markAttrsAccessed();\n    track(target, \"get\", \"\");\n    return target[key];\n  },\n  set() {\n    warn$1(`setupContext.attrs is readonly.`);\n    return false;\n  },\n  deleteProperty() {\n    warn$1(`setupContext.attrs is readonly.`);\n    return false;\n  }\n} : {\n  get(target, key) {\n    track(target, \"get\", \"\");\n    return target[key];\n  }\n};\nfunction getSlotsProxy(instance) {\n  return new Proxy(instance.slots, {\n    get(target, key) {\n      track(instance, \"get\", \"$slots\");\n      return target[key];\n    }\n  });\n}\nfunction createSetupContext(instance) {\n  const expose = (exposed) => {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      if (instance.exposed) {\n        warn$1(`expose() should be called only once per setup().`);\n      }\n      if (exposed != null) {\n        let exposedType = typeof exposed;\n        if (exposedType === \"object\") {\n          if (isArray(exposed)) {\n            exposedType = \"array\";\n          } else if (isRef(exposed)) {\n            exposedType = \"ref\";\n          }\n        }\n        if (exposedType !== \"object\") {\n          warn$1(\n            `expose() should be passed a plain object, received ${exposedType}.`\n          );\n        }\n      }\n    }\n    instance.exposed = exposed || {};\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    let attrsProxy;\n    let slotsProxy;\n    return Object.freeze({\n      get attrs() {\n        return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));\n      },\n      get slots() {\n        return slotsProxy || (slotsProxy = getSlotsProxy(instance));\n      },\n      get emit() {\n        return (event, ...args) => instance.emit(event, ...args);\n      },\n      expose\n    });\n  } else {\n    return {\n      attrs: new Proxy(instance.attrs, attrsProxyHandlers),\n      slots: instance.slots,\n      emit: instance.emit,\n      expose\n    };\n  }\n}\nfunction getComponentPublicInstance(instance) {\n  if (instance.exposed) {\n    return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n      get(target, key) {\n        if (key in target) {\n          return target[key];\n        } else if (key in publicPropertiesMap) {\n          return publicPropertiesMap[key](instance);\n        }\n      },\n      has(target, key) {\n        return key in target || key in publicPropertiesMap;\n      }\n    }));\n  } else {\n    return instance.proxy;\n  }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n  return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n  let name = getComponentName(Component);\n  if (!name && Component.__file) {\n    const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n    if (match) {\n      name = match[1];\n    }\n  }\n  if (!name && instance && instance.parent) {\n    const inferFromRegistry = (registry) => {\n      for (const key in registry) {\n        if (registry[key] === Component) {\n          return key;\n        }\n      }\n    };\n    name = inferFromRegistry(\n      instance.components || instance.parent.type.components\n    ) || inferFromRegistry(instance.appContext.components);\n  }\n  return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n  return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n  const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    const i = getCurrentInstance();\n    if (i && i.appContext.config.warnRecursiveComputed) {\n      c._warnRecursive = true;\n    }\n  }\n  return c;\n};\n\nfunction h(type, propsOrChildren, children) {\n  const l = arguments.length;\n  if (l === 2) {\n    if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n      if (isVNode(propsOrChildren)) {\n        return createVNode(type, null, [propsOrChildren]);\n      }\n      return createVNode(type, propsOrChildren);\n    } else {\n      return createVNode(type, null, propsOrChildren);\n    }\n  } else {\n    if (l > 3) {\n      children = Array.prototype.slice.call(arguments, 2);\n    } else if (l === 3 && isVNode(children)) {\n      children = [children];\n    }\n    return createVNode(type, propsOrChildren, children);\n  }\n}\n\nfunction initCustomFormatter() {\n  if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n    return;\n  }\n  const vueStyle = { style: \"color:#3ba776\" };\n  const numberStyle = { style: \"color:#1677ff\" };\n  const stringStyle = { style: \"color:#f5222d\" };\n  const keywordStyle = { style: \"color:#eb2f96\" };\n  const formatter = {\n    __vue_custom_formatter: true,\n    header(obj) {\n      if (!isObject(obj)) {\n        return null;\n      }\n      if (obj.__isVue) {\n        return [\"div\", vueStyle, `VueInstance`];\n      } else if (isRef(obj)) {\n        return [\n          \"div\",\n          {},\n          [\"span\", vueStyle, genRefFlag(obj)],\n          \"<\",\n          // avoid debugger accessing value affecting behavior\n          formatValue(\"_value\" in obj ? obj._value : obj),\n          `>`\n        ];\n      } else if (isReactive(obj)) {\n        return [\n          \"div\",\n          {},\n          [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n          \"<\",\n          formatValue(obj),\n          `>${isReadonly(obj) ? ` (readonly)` : ``}`\n        ];\n      } else if (isReadonly(obj)) {\n        return [\n          \"div\",\n          {},\n          [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n          \"<\",\n          formatValue(obj),\n          \">\"\n        ];\n      }\n      return null;\n    },\n    hasBody(obj) {\n      return obj && obj.__isVue;\n    },\n    body(obj) {\n      if (obj && obj.__isVue) {\n        return [\n          \"div\",\n          {},\n          ...formatInstance(obj.$)\n        ];\n      }\n    }\n  };\n  function formatInstance(instance) {\n    const blocks = [];\n    if (instance.type.props && instance.props) {\n      blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n    }\n    if (instance.setupState !== EMPTY_OBJ) {\n      blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n    }\n    if (instance.data !== EMPTY_OBJ) {\n      blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n    }\n    const computed = extractKeys(instance, \"computed\");\n    if (computed) {\n      blocks.push(createInstanceBlock(\"computed\", computed));\n    }\n    const injected = extractKeys(instance, \"inject\");\n    if (injected) {\n      blocks.push(createInstanceBlock(\"injected\", injected));\n    }\n    blocks.push([\n      \"div\",\n      {},\n      [\n        \"span\",\n        {\n          style: keywordStyle.style + \";opacity:0.66\"\n        },\n        \"$ (internal): \"\n      ],\n      [\"object\", { object: instance }]\n    ]);\n    return blocks;\n  }\n  function createInstanceBlock(type, target) {\n    target = extend({}, target);\n    if (!Object.keys(target).length) {\n      return [\"span\", {}];\n    }\n    return [\n      \"div\",\n      { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n      [\n        \"div\",\n        {\n          style: \"color:#476582\"\n        },\n        type\n      ],\n      [\n        \"div\",\n        {\n          style: \"padding-left:1.25em\"\n        },\n        ...Object.keys(target).map((key) => {\n          return [\n            \"div\",\n            {},\n            [\"span\", keywordStyle, key + \": \"],\n            formatValue(target[key], false)\n          ];\n        })\n      ]\n    ];\n  }\n  function formatValue(v, asRaw = true) {\n    if (typeof v === \"number\") {\n      return [\"span\", numberStyle, v];\n    } else if (typeof v === \"string\") {\n      return [\"span\", stringStyle, JSON.stringify(v)];\n    } else if (typeof v === \"boolean\") {\n      return [\"span\", keywordStyle, v];\n    } else if (isObject(v)) {\n      return [\"object\", { object: asRaw ? toRaw(v) : v }];\n    } else {\n      return [\"span\", stringStyle, String(v)];\n    }\n  }\n  function extractKeys(instance, type) {\n    const Comp = instance.type;\n    if (isFunction(Comp)) {\n      return;\n    }\n    const extracted = {};\n    for (const key in instance.ctx) {\n      if (isKeyOfType(Comp, key, type)) {\n        extracted[key] = instance.ctx[key];\n      }\n    }\n    return extracted;\n  }\n  function isKeyOfType(Comp, key, type) {\n    const opts = Comp[type];\n    if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n      return true;\n    }\n    if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n      return true;\n    }\n    if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n      return true;\n    }\n  }\n  function genRefFlag(v) {\n    if (isShallow(v)) {\n      return `ShallowRef`;\n    }\n    if (v.effect) {\n      return `ComputedRef`;\n    }\n    return `Ref`;\n  }\n  if (window.devtoolsFormatters) {\n    window.devtoolsFormatters.push(formatter);\n  } else {\n    window.devtoolsFormatters = [formatter];\n  }\n}\n\nfunction withMemo(memo, render, cache, index) {\n  const cached = cache[index];\n  if (cached && isMemoSame(cached, memo)) {\n    return cached;\n  }\n  const ret = render();\n  ret.memo = memo.slice();\n  ret.cacheIndex = index;\n  return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n  const prev = cached.memo;\n  if (prev.length != memo.length) {\n    return false;\n  }\n  for (let i = 0; i < prev.length; i++) {\n    if (hasChanged(prev[i], memo[i])) {\n      return false;\n    }\n  }\n  if (isBlockTreeEnabled > 0 && currentBlock) {\n    currentBlock.push(cached);\n  }\n  return true;\n}\n\nconst version = \"3.5.13\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n  createComponentInstance,\n  setupComponent,\n  renderComponentRoot,\n  setCurrentRenderingInstance,\n  isVNode: isVNode,\n  normalizeVNode,\n  getComponentPublicInstance,\n  ensureValidVNode,\n  pushWarningContext,\n  popWarningContext\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = null;\nconst compatUtils = null;\nconst DeprecationTypes = null;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useId, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","/**\n* @vue/runtime-dom v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { warn, h, BaseTransition, assertNumber, BaseTransitionPropsValidators, getCurrentInstance, onBeforeUpdate, queuePostFlushCb, onMounted, watch, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, unref, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, isRuntimeOnly, createRenderer, createHydrationRenderer } from '@vue/runtime-core';\nexport * from '@vue/runtime-core';\nimport { extend, isObject, toNumber, isArray, NOOP, isString, hyphenate, capitalize, includeBooleanAttr, isSymbol, isSpecialBooleanAttr, isFunction, isOn, isModelListener, camelize as camelize$1, isPlainObject, hasOwn, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';\n\nlet policy = void 0;\nconst tt = typeof window !== \"undefined\" && window.trustedTypes;\nif (tt) {\n  try {\n    policy = /* @__PURE__ */ tt.createPolicy(\"vue\", {\n      createHTML: (val) => val\n    });\n  } catch (e) {\n    !!(process.env.NODE_ENV !== \"production\") && warn(`Error creating trusted types policy: ${e}`);\n  }\n}\nconst unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n  insert: (child, parent, anchor) => {\n    parent.insertBefore(child, anchor || null);\n  },\n  remove: (child) => {\n    const parent = child.parentNode;\n    if (parent) {\n      parent.removeChild(child);\n    }\n  },\n  createElement: (tag, namespace, is, props) => {\n    const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);\n    if (tag === \"select\" && props && props.multiple != null) {\n      el.setAttribute(\"multiple\", props.multiple);\n    }\n    return el;\n  },\n  createText: (text) => doc.createTextNode(text),\n  createComment: (text) => doc.createComment(text),\n  setText: (node, text) => {\n    node.nodeValue = text;\n  },\n  setElementText: (el, text) => {\n    el.textContent = text;\n  },\n  parentNode: (node) => node.parentNode,\n  nextSibling: (node) => node.nextSibling,\n  querySelector: (selector) => doc.querySelector(selector),\n  setScopeId(el, id) {\n    el.setAttribute(id, \"\");\n  },\n  // __UNSAFE__\n  // Reason: innerHTML.\n  // Static content here can only come from compiled templates.\n  // As long as the user only uses trusted templates, this is safe.\n  insertStaticContent(content, parent, anchor, namespace, start, end) {\n    const before = anchor ? anchor.previousSibling : parent.lastChild;\n    if (start && (start === end || start.nextSibling)) {\n      while (true) {\n        parent.insertBefore(start.cloneNode(true), anchor);\n        if (start === end || !(start = start.nextSibling)) break;\n      }\n    } else {\n      templateContainer.innerHTML = unsafeToTrustedHTML(\n        namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content\n      );\n      const template = templateContainer.content;\n      if (namespace === \"svg\" || namespace === \"mathml\") {\n        const wrapper = template.firstChild;\n        while (wrapper.firstChild) {\n          template.appendChild(wrapper.firstChild);\n        }\n        template.removeChild(wrapper);\n      }\n      parent.insertBefore(template, anchor);\n    }\n    return [\n      // first\n      before ? before.nextSibling : parent.firstChild,\n      // last\n      anchor ? anchor.previousSibling : parent.lastChild\n    ];\n  }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = Symbol(\"_vtc\");\nconst DOMTransitionPropsValidators = {\n  name: String,\n  type: String,\n  css: {\n    type: Boolean,\n    default: true\n  },\n  duration: [String, Number, Object],\n  enterFromClass: String,\n  enterActiveClass: String,\n  enterToClass: String,\n  appearFromClass: String,\n  appearActiveClass: String,\n  appearToClass: String,\n  leaveFromClass: String,\n  leaveActiveClass: String,\n  leaveToClass: String\n};\nconst TransitionPropsValidators = /* @__PURE__ */ extend(\n  {},\n  BaseTransitionPropsValidators,\n  DOMTransitionPropsValidators\n);\nconst decorate$1 = (t) => {\n  t.displayName = \"Transition\";\n  t.props = TransitionPropsValidators;\n  return t;\n};\nconst Transition = /* @__PURE__ */ decorate$1(\n  (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots)\n);\nconst callHook = (hook, args = []) => {\n  if (isArray(hook)) {\n    hook.forEach((h2) => h2(...args));\n  } else if (hook) {\n    hook(...args);\n  }\n};\nconst hasExplicitCallback = (hook) => {\n  return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n  const baseProps = {};\n  for (const key in rawProps) {\n    if (!(key in DOMTransitionPropsValidators)) {\n      baseProps[key] = rawProps[key];\n    }\n  }\n  if (rawProps.css === false) {\n    return baseProps;\n  }\n  const {\n    name = \"v\",\n    type,\n    duration,\n    enterFromClass = `${name}-enter-from`,\n    enterActiveClass = `${name}-enter-active`,\n    enterToClass = `${name}-enter-to`,\n    appearFromClass = enterFromClass,\n    appearActiveClass = enterActiveClass,\n    appearToClass = enterToClass,\n    leaveFromClass = `${name}-leave-from`,\n    leaveActiveClass = `${name}-leave-active`,\n    leaveToClass = `${name}-leave-to`\n  } = rawProps;\n  const durations = normalizeDuration(duration);\n  const enterDuration = durations && durations[0];\n  const leaveDuration = durations && durations[1];\n  const {\n    onBeforeEnter,\n    onEnter,\n    onEnterCancelled,\n    onLeave,\n    onLeaveCancelled,\n    onBeforeAppear = onBeforeEnter,\n    onAppear = onEnter,\n    onAppearCancelled = onEnterCancelled\n  } = baseProps;\n  const finishEnter = (el, isAppear, done, isCancelled) => {\n    el._enterCancelled = isCancelled;\n    removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n    removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n    done && done();\n  };\n  const finishLeave = (el, done) => {\n    el._isLeaving = false;\n    removeTransitionClass(el, leaveFromClass);\n    removeTransitionClass(el, leaveToClass);\n    removeTransitionClass(el, leaveActiveClass);\n    done && done();\n  };\n  const makeEnterHook = (isAppear) => {\n    return (el, done) => {\n      const hook = isAppear ? onAppear : onEnter;\n      const resolve = () => finishEnter(el, isAppear, done);\n      callHook(hook, [el, resolve]);\n      nextFrame(() => {\n        removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n        addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n        if (!hasExplicitCallback(hook)) {\n          whenTransitionEnds(el, type, enterDuration, resolve);\n        }\n      });\n    };\n  };\n  return extend(baseProps, {\n    onBeforeEnter(el) {\n      callHook(onBeforeEnter, [el]);\n      addTransitionClass(el, enterFromClass);\n      addTransitionClass(el, enterActiveClass);\n    },\n    onBeforeAppear(el) {\n      callHook(onBeforeAppear, [el]);\n      addTransitionClass(el, appearFromClass);\n      addTransitionClass(el, appearActiveClass);\n    },\n    onEnter: makeEnterHook(false),\n    onAppear: makeEnterHook(true),\n    onLeave(el, done) {\n      el._isLeaving = true;\n      const resolve = () => finishLeave(el, done);\n      addTransitionClass(el, leaveFromClass);\n      if (!el._enterCancelled) {\n        forceReflow();\n        addTransitionClass(el, leaveActiveClass);\n      } else {\n        addTransitionClass(el, leaveActiveClass);\n        forceReflow();\n      }\n      nextFrame(() => {\n        if (!el._isLeaving) {\n          return;\n        }\n        removeTransitionClass(el, leaveFromClass);\n        addTransitionClass(el, leaveToClass);\n        if (!hasExplicitCallback(onLeave)) {\n          whenTransitionEnds(el, type, leaveDuration, resolve);\n        }\n      });\n      callHook(onLeave, [el, resolve]);\n    },\n    onEnterCancelled(el) {\n      finishEnter(el, false, void 0, true);\n      callHook(onEnterCancelled, [el]);\n    },\n    onAppearCancelled(el) {\n      finishEnter(el, true, void 0, true);\n      callHook(onAppearCancelled, [el]);\n    },\n    onLeaveCancelled(el) {\n      finishLeave(el);\n      callHook(onLeaveCancelled, [el]);\n    }\n  });\n}\nfunction normalizeDuration(duration) {\n  if (duration == null) {\n    return null;\n  } else if (isObject(duration)) {\n    return [NumberOf(duration.enter), NumberOf(duration.leave)];\n  } else {\n    const n = NumberOf(duration);\n    return [n, n];\n  }\n}\nfunction NumberOf(val) {\n  const res = toNumber(val);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    assertNumber(res, \"<transition> explicit duration\");\n  }\n  return res;\n}\nfunction addTransitionClass(el, cls) {\n  cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n  (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n  cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n  const _vtc = el[vtcKey];\n  if (_vtc) {\n    _vtc.delete(cls);\n    if (!_vtc.size) {\n      el[vtcKey] = void 0;\n    }\n  }\n}\nfunction nextFrame(cb) {\n  requestAnimationFrame(() => {\n    requestAnimationFrame(cb);\n  });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n  const id = el._endId = ++endId;\n  const resolveIfNotStale = () => {\n    if (id === el._endId) {\n      resolve();\n    }\n  };\n  if (explicitTimeout != null) {\n    return setTimeout(resolveIfNotStale, explicitTimeout);\n  }\n  const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n  if (!type) {\n    return resolve();\n  }\n  const endEvent = type + \"end\";\n  let ended = 0;\n  const end = () => {\n    el.removeEventListener(endEvent, onEnd);\n    resolveIfNotStale();\n  };\n  const onEnd = (e) => {\n    if (e.target === el && ++ended >= propCount) {\n      end();\n    }\n  };\n  setTimeout(() => {\n    if (ended < propCount) {\n      end();\n    }\n  }, timeout + 1);\n  el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n  const styles = window.getComputedStyle(el);\n  const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n  const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n  const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n  const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n  const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n  const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n  const animationTimeout = getTimeout(animationDelays, animationDurations);\n  let type = null;\n  let timeout = 0;\n  let propCount = 0;\n  if (expectedType === TRANSITION) {\n    if (transitionTimeout > 0) {\n      type = TRANSITION;\n      timeout = transitionTimeout;\n      propCount = transitionDurations.length;\n    }\n  } else if (expectedType === ANIMATION) {\n    if (animationTimeout > 0) {\n      type = ANIMATION;\n      timeout = animationTimeout;\n      propCount = animationDurations.length;\n    }\n  } else {\n    timeout = Math.max(transitionTimeout, animationTimeout);\n    type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n    propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n  }\n  const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(\n    getStyleProperties(`${TRANSITION}Property`).toString()\n  );\n  return {\n    type,\n    timeout,\n    propCount,\n    hasTransform\n  };\n}\nfunction getTimeout(delays, durations) {\n  while (delays.length < durations.length) {\n    delays = delays.concat(delays);\n  }\n  return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n  if (s === \"auto\") return 0;\n  return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n  return document.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n  const transitionClasses = el[vtcKey];\n  if (transitionClasses) {\n    value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n  }\n  if (value == null) {\n    el.removeAttribute(\"class\");\n  } else if (isSVG) {\n    el.setAttribute(\"class\", value);\n  } else {\n    el.className = value;\n  }\n}\n\nconst vShowOriginalDisplay = Symbol(\"_vod\");\nconst vShowHidden = Symbol(\"_vsh\");\nconst vShow = {\n  beforeMount(el, { value }, { transition }) {\n    el[vShowOriginalDisplay] = el.style.display === \"none\" ? \"\" : el.style.display;\n    if (transition && value) {\n      transition.beforeEnter(el);\n    } else {\n      setDisplay(el, value);\n    }\n  },\n  mounted(el, { value }, { transition }) {\n    if (transition && value) {\n      transition.enter(el);\n    }\n  },\n  updated(el, { value, oldValue }, { transition }) {\n    if (!value === !oldValue) return;\n    if (transition) {\n      if (value) {\n        transition.beforeEnter(el);\n        setDisplay(el, true);\n        transition.enter(el);\n      } else {\n        transition.leave(el, () => {\n          setDisplay(el, false);\n        });\n      }\n    } else {\n      setDisplay(el, value);\n    }\n  },\n  beforeUnmount(el, { value }) {\n    setDisplay(el, value);\n  }\n};\nif (!!(process.env.NODE_ENV !== \"production\")) {\n  vShow.name = \"show\";\n}\nfunction setDisplay(el, value) {\n  el.style.display = value ? el[vShowOriginalDisplay] : \"none\";\n  el[vShowHidden] = !value;\n}\nfunction initVShowForSSR() {\n  vShow.getSSRProps = ({ value }) => {\n    if (!value) {\n      return { style: { display: \"none\" } };\n    }\n  };\n}\n\nconst CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\nfunction useCssVars(getter) {\n  const instance = getCurrentInstance();\n  if (!instance) {\n    !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n    return;\n  }\n  const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {\n    Array.from(\n      document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)\n    ).forEach((node) => setVarsOnNode(node, vars));\n  };\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    instance.getCssVars = () => getter(instance.proxy);\n  }\n  const setVars = () => {\n    const vars = getter(instance.proxy);\n    if (instance.ce) {\n      setVarsOnNode(instance.ce, vars);\n    } else {\n      setVarsOnVNode(instance.subTree, vars);\n    }\n    updateTeleports(vars);\n  };\n  onBeforeUpdate(() => {\n    queuePostFlushCb(setVars);\n  });\n  onMounted(() => {\n    watch(setVars, NOOP, { flush: \"post\" });\n    const ob = new MutationObserver(setVars);\n    ob.observe(instance.subTree.el.parentNode, { childList: true });\n    onUnmounted(() => ob.disconnect());\n  });\n}\nfunction setVarsOnVNode(vnode, vars) {\n  if (vnode.shapeFlag & 128) {\n    const suspense = vnode.suspense;\n    vnode = suspense.activeBranch;\n    if (suspense.pendingBranch && !suspense.isHydrating) {\n      suspense.effects.push(() => {\n        setVarsOnVNode(suspense.activeBranch, vars);\n      });\n    }\n  }\n  while (vnode.component) {\n    vnode = vnode.component.subTree;\n  }\n  if (vnode.shapeFlag & 1 && vnode.el) {\n    setVarsOnNode(vnode.el, vars);\n  } else if (vnode.type === Fragment) {\n    vnode.children.forEach((c) => setVarsOnVNode(c, vars));\n  } else if (vnode.type === Static) {\n    let { el, anchor } = vnode;\n    while (el) {\n      setVarsOnNode(el, vars);\n      if (el === anchor) break;\n      el = el.nextSibling;\n    }\n  }\n}\nfunction setVarsOnNode(el, vars) {\n  if (el.nodeType === 1) {\n    const style = el.style;\n    let cssText = \"\";\n    for (const key in vars) {\n      style.setProperty(`--${key}`, vars[key]);\n      cssText += `--${key}: ${vars[key]};`;\n    }\n    style[CSS_VAR_TEXT] = cssText;\n  }\n}\n\nconst displayRE = /(^|;)\\s*display\\s*:/;\nfunction patchStyle(el, prev, next) {\n  const style = el.style;\n  const isCssString = isString(next);\n  let hasControlledDisplay = false;\n  if (next && !isCssString) {\n    if (prev) {\n      if (!isString(prev)) {\n        for (const key in prev) {\n          if (next[key] == null) {\n            setStyle(style, key, \"\");\n          }\n        }\n      } else {\n        for (const prevStyle of prev.split(\";\")) {\n          const key = prevStyle.slice(0, prevStyle.indexOf(\":\")).trim();\n          if (next[key] == null) {\n            setStyle(style, key, \"\");\n          }\n        }\n      }\n    }\n    for (const key in next) {\n      if (key === \"display\") {\n        hasControlledDisplay = true;\n      }\n      setStyle(style, key, next[key]);\n    }\n  } else {\n    if (isCssString) {\n      if (prev !== next) {\n        const cssVarText = style[CSS_VAR_TEXT];\n        if (cssVarText) {\n          next += \";\" + cssVarText;\n        }\n        style.cssText = next;\n        hasControlledDisplay = displayRE.test(next);\n      }\n    } else if (prev) {\n      el.removeAttribute(\"style\");\n    }\n  }\n  if (vShowOriginalDisplay in el) {\n    el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : \"\";\n    if (el[vShowHidden]) {\n      style.display = \"none\";\n    }\n  }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n  if (isArray(val)) {\n    val.forEach((v) => setStyle(style, name, v));\n  } else {\n    if (val == null) val = \"\";\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      if (semicolonRE.test(val)) {\n        warn(\n          `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n        );\n      }\n    }\n    if (name.startsWith(\"--\")) {\n      style.setProperty(name, val);\n    } else {\n      const prefixed = autoPrefix(style, name);\n      if (importantRE.test(val)) {\n        style.setProperty(\n          hyphenate(prefixed),\n          val.replace(importantRE, \"\"),\n          \"important\"\n        );\n      } else {\n        style[prefixed] = val;\n      }\n    }\n  }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n  const cached = prefixCache[rawName];\n  if (cached) {\n    return cached;\n  }\n  let name = camelize(rawName);\n  if (name !== \"filter\" && name in style) {\n    return prefixCache[rawName] = name;\n  }\n  name = capitalize(name);\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefixed = prefixes[i] + name;\n    if (prefixed in style) {\n      return prefixCache[rawName] = prefixed;\n    }\n  }\n  return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {\n  if (isSVG && key.startsWith(\"xlink:\")) {\n    if (value == null) {\n      el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n    } else {\n      el.setAttributeNS(xlinkNS, key, value);\n    }\n  } else {\n    if (value == null || isBoolean && !includeBooleanAttr(value)) {\n      el.removeAttribute(key);\n    } else {\n      el.setAttribute(\n        key,\n        isBoolean ? \"\" : isSymbol(value) ? String(value) : value\n      );\n    }\n  }\n}\n\nfunction patchDOMProp(el, key, value, parentComponent, attrName) {\n  if (key === \"innerHTML\" || key === \"textContent\") {\n    if (value != null) {\n      el[key] = key === \"innerHTML\" ? unsafeToTrustedHTML(value) : value;\n    }\n    return;\n  }\n  const tag = el.tagName;\n  if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n  !tag.includes(\"-\")) {\n    const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") || \"\" : el.value;\n    const newValue = value == null ? (\n      // #11647: value should be set as empty string for null and undefined,\n      // but <input type=\"checkbox\"> should be set as 'on'.\n      el.type === \"checkbox\" ? \"on\" : \"\"\n    ) : String(value);\n    if (oldValue !== newValue || !(\"_value\" in el)) {\n      el.value = newValue;\n    }\n    if (value == null) {\n      el.removeAttribute(key);\n    }\n    el._value = value;\n    return;\n  }\n  let needRemove = false;\n  if (value === \"\" || value == null) {\n    const type = typeof el[key];\n    if (type === \"boolean\") {\n      value = includeBooleanAttr(value);\n    } else if (value == null && type === \"string\") {\n      value = \"\";\n      needRemove = true;\n    } else if (type === \"number\") {\n      value = 0;\n      needRemove = true;\n    }\n  }\n  try {\n    el[key] = value;\n  } catch (e) {\n    if (!!(process.env.NODE_ENV !== \"production\") && !needRemove) {\n      warn(\n        `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n        e\n      );\n    }\n  }\n  needRemove && el.removeAttribute(attrName || key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n  el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n  el.removeEventListener(event, handler, options);\n}\nconst veiKey = Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n  const invokers = el[veiKey] || (el[veiKey] = {});\n  const existingInvoker = invokers[rawName];\n  if (nextValue && existingInvoker) {\n    existingInvoker.value = !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue;\n  } else {\n    const [name, options] = parseName(rawName);\n    if (nextValue) {\n      const invoker = invokers[rawName] = createInvoker(\n        !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue,\n        instance\n      );\n      addEventListener(el, name, invoker, options);\n    } else if (existingInvoker) {\n      removeEventListener(el, name, existingInvoker, options);\n      invokers[rawName] = void 0;\n    }\n  }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n  let options;\n  if (optionsModifierRE.test(name)) {\n    options = {};\n    let m;\n    while (m = name.match(optionsModifierRE)) {\n      name = name.slice(0, name.length - m[0].length);\n      options[m[0].toLowerCase()] = true;\n    }\n  }\n  const event = name[2] === \":\" ? name.slice(3) : hyphenate(name.slice(2));\n  return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n  const invoker = (e) => {\n    if (!e._vts) {\n      e._vts = Date.now();\n    } else if (e._vts <= invoker.attached) {\n      return;\n    }\n    callWithAsyncErrorHandling(\n      patchStopImmediatePropagation(e, invoker.value),\n      instance,\n      5,\n      [e]\n    );\n  };\n  invoker.value = initialValue;\n  invoker.attached = getNow();\n  return invoker;\n}\nfunction sanitizeEventValue(value, propName) {\n  if (isFunction(value) || isArray(value)) {\n    return value;\n  }\n  warn(\n    `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`\n  );\n  return NOOP;\n}\nfunction patchStopImmediatePropagation(e, value) {\n  if (isArray(value)) {\n    const originalStop = e.stopImmediatePropagation;\n    e.stopImmediatePropagation = () => {\n      originalStop.call(e);\n      e._stopped = true;\n    };\n    return value.map(\n      (fn) => (e2) => !e2._stopped && fn && fn(e2)\n    );\n  } else {\n    return value;\n  }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {\n  const isSVG = namespace === \"svg\";\n  if (key === \"class\") {\n    patchClass(el, nextValue, isSVG);\n  } else if (key === \"style\") {\n    patchStyle(el, prevValue, nextValue);\n  } else if (isOn(key)) {\n    if (!isModelListener(key)) {\n      patchEvent(el, key, prevValue, nextValue, parentComponent);\n    }\n  } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n    patchDOMProp(el, key, nextValue);\n    if (!el.tagName.includes(\"-\") && (key === \"value\" || key === \"checked\" || key === \"selected\")) {\n      patchAttr(el, key, nextValue, isSVG, parentComponent, key !== \"value\");\n    }\n  } else if (\n    // #11081 force set props for possible async custom element\n    el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue))\n  ) {\n    patchDOMProp(el, camelize$1(key), nextValue, parentComponent, key);\n  } else {\n    if (key === \"true-value\") {\n      el._trueValue = nextValue;\n    } else if (key === \"false-value\") {\n      el._falseValue = nextValue;\n    }\n    patchAttr(el, key, nextValue, isSVG);\n  }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n  if (isSVG) {\n    if (key === \"innerHTML\" || key === \"textContent\") {\n      return true;\n    }\n    if (key in el && isNativeOn(key) && isFunction(value)) {\n      return true;\n    }\n    return false;\n  }\n  if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n    return false;\n  }\n  if (key === \"form\") {\n    return false;\n  }\n  if (key === \"list\" && el.tagName === \"INPUT\") {\n    return false;\n  }\n  if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n    return false;\n  }\n  if (key === \"width\" || key === \"height\") {\n    const tag = el.tagName;\n    if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n      return false;\n    }\n  }\n  if (isNativeOn(key) && isString(value)) {\n    return false;\n  }\n  return key in el;\n}\n\nconst REMOVAL = {};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, extraOptions, _createApp) {\n  const Comp = defineComponent(options, extraOptions);\n  if (isPlainObject(Comp)) extend(Comp, extraOptions);\n  class VueCustomElement extends VueElement {\n    constructor(initialProps) {\n      super(Comp, initialProps, _createApp);\n    }\n  }\n  VueCustomElement.def = Comp;\n  return VueCustomElement;\n}\n/*! #__NO_SIDE_EFFECTS__ */\nconst defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {\n  return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);\n};\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n  constructor(_def, _props = {}, _createApp = createApp) {\n    super();\n    this._def = _def;\n    this._props = _props;\n    this._createApp = _createApp;\n    this._isVueCE = true;\n    /**\n     * @internal\n     */\n    this._instance = null;\n    /**\n     * @internal\n     */\n    this._app = null;\n    /**\n     * @internal\n     */\n    this._nonce = this._def.nonce;\n    this._connected = false;\n    this._resolved = false;\n    this._numberProps = null;\n    this._styleChildren = /* @__PURE__ */ new WeakSet();\n    this._ob = null;\n    if (this.shadowRoot && _createApp !== createApp) {\n      this._root = this.shadowRoot;\n    } else {\n      if (!!(process.env.NODE_ENV !== \"production\") && this.shadowRoot) {\n        warn(\n          `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n        );\n      }\n      if (_def.shadowRoot !== false) {\n        this.attachShadow({ mode: \"open\" });\n        this._root = this.shadowRoot;\n      } else {\n        this._root = this;\n      }\n    }\n    if (!this._def.__asyncLoader) {\n      this._resolveProps(this._def);\n    }\n  }\n  connectedCallback() {\n    if (!this.isConnected) return;\n    if (!this.shadowRoot) {\n      this._parseSlots();\n    }\n    this._connected = true;\n    let parent = this;\n    while (parent = parent && (parent.parentNode || parent.host)) {\n      if (parent instanceof VueElement) {\n        this._parent = parent;\n        break;\n      }\n    }\n    if (!this._instance) {\n      if (this._resolved) {\n        this._setParent();\n        this._update();\n      } else {\n        if (parent && parent._pendingResolve) {\n          this._pendingResolve = parent._pendingResolve.then(() => {\n            this._pendingResolve = void 0;\n            this._resolveDef();\n          });\n        } else {\n          this._resolveDef();\n        }\n      }\n    }\n  }\n  _setParent(parent = this._parent) {\n    if (parent) {\n      this._instance.parent = parent._instance;\n      this._instance.provides = parent._instance.provides;\n    }\n  }\n  disconnectedCallback() {\n    this._connected = false;\n    nextTick(() => {\n      if (!this._connected) {\n        if (this._ob) {\n          this._ob.disconnect();\n          this._ob = null;\n        }\n        this._app && this._app.unmount();\n        if (this._instance) this._instance.ce = void 0;\n        this._app = this._instance = null;\n      }\n    });\n  }\n  /**\n   * resolve inner component definition (handle possible async component)\n   */\n  _resolveDef() {\n    if (this._pendingResolve) {\n      return;\n    }\n    for (let i = 0; i < this.attributes.length; i++) {\n      this._setAttr(this.attributes[i].name);\n    }\n    this._ob = new MutationObserver((mutations) => {\n      for (const m of mutations) {\n        this._setAttr(m.attributeName);\n      }\n    });\n    this._ob.observe(this, { attributes: true });\n    const resolve = (def, isAsync = false) => {\n      this._resolved = true;\n      this._pendingResolve = void 0;\n      const { props, styles } = def;\n      let numberProps;\n      if (props && !isArray(props)) {\n        for (const key in props) {\n          const opt = props[key];\n          if (opt === Number || opt && opt.type === Number) {\n            if (key in this._props) {\n              this._props[key] = toNumber(this._props[key]);\n            }\n            (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize$1(key)] = true;\n          }\n        }\n      }\n      this._numberProps = numberProps;\n      if (isAsync) {\n        this._resolveProps(def);\n      }\n      if (this.shadowRoot) {\n        this._applyStyles(styles);\n      } else if (!!(process.env.NODE_ENV !== \"production\") && styles) {\n        warn(\n          \"Custom element style injection is not supported when using shadowRoot: false\"\n        );\n      }\n      this._mount(def);\n    };\n    const asyncDef = this._def.__asyncLoader;\n    if (asyncDef) {\n      this._pendingResolve = asyncDef().then(\n        (def) => resolve(this._def = def, true)\n      );\n    } else {\n      resolve(this._def);\n    }\n  }\n  _mount(def) {\n    if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) && !def.name) {\n      def.name = \"VueElement\";\n    }\n    this._app = this._createApp(def);\n    if (def.configureApp) {\n      def.configureApp(this._app);\n    }\n    this._app._ceVNode = this._createVNode();\n    this._app.mount(this._root);\n    const exposed = this._instance && this._instance.exposed;\n    if (!exposed) return;\n    for (const key in exposed) {\n      if (!hasOwn(this, key)) {\n        Object.defineProperty(this, key, {\n          // unwrap ref to be consistent with public instance behavior\n          get: () => unref(exposed[key])\n        });\n      } else if (!!(process.env.NODE_ENV !== \"production\")) {\n        warn(`Exposed property \"${key}\" already exists on custom element.`);\n      }\n    }\n  }\n  _resolveProps(def) {\n    const { props } = def;\n    const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n    for (const key of Object.keys(this)) {\n      if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n        this._setProp(key, this[key]);\n      }\n    }\n    for (const key of declaredPropKeys.map(camelize$1)) {\n      Object.defineProperty(this, key, {\n        get() {\n          return this._getProp(key);\n        },\n        set(val) {\n          this._setProp(key, val, true, true);\n        }\n      });\n    }\n  }\n  _setAttr(key) {\n    if (key.startsWith(\"data-v-\")) return;\n    const has = this.hasAttribute(key);\n    let value = has ? this.getAttribute(key) : REMOVAL;\n    const camelKey = camelize$1(key);\n    if (has && this._numberProps && this._numberProps[camelKey]) {\n      value = toNumber(value);\n    }\n    this._setProp(camelKey, value, false, true);\n  }\n  /**\n   * @internal\n   */\n  _getProp(key) {\n    return this._props[key];\n  }\n  /**\n   * @internal\n   */\n  _setProp(key, val, shouldReflect = true, shouldUpdate = false) {\n    if (val !== this._props[key]) {\n      if (val === REMOVAL) {\n        delete this._props[key];\n      } else {\n        this._props[key] = val;\n        if (key === \"key\" && this._app) {\n          this._app._ceVNode.key = val;\n        }\n      }\n      if (shouldUpdate && this._instance) {\n        this._update();\n      }\n      if (shouldReflect) {\n        const ob = this._ob;\n        ob && ob.disconnect();\n        if (val === true) {\n          this.setAttribute(hyphenate(key), \"\");\n        } else if (typeof val === \"string\" || typeof val === \"number\") {\n          this.setAttribute(hyphenate(key), val + \"\");\n        } else if (!val) {\n          this.removeAttribute(hyphenate(key));\n        }\n        ob && ob.observe(this, { attributes: true });\n      }\n    }\n  }\n  _update() {\n    render(this._createVNode(), this._root);\n  }\n  _createVNode() {\n    const baseProps = {};\n    if (!this.shadowRoot) {\n      baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);\n    }\n    const vnode = createVNode(this._def, extend(baseProps, this._props));\n    if (!this._instance) {\n      vnode.ce = (instance) => {\n        this._instance = instance;\n        instance.ce = this;\n        instance.isCE = true;\n        if (!!(process.env.NODE_ENV !== \"production\")) {\n          instance.ceReload = (newStyles) => {\n            if (this._styles) {\n              this._styles.forEach((s) => this._root.removeChild(s));\n              this._styles.length = 0;\n            }\n            this._applyStyles(newStyles);\n            this._instance = null;\n            this._update();\n          };\n        }\n        const dispatch = (event, args) => {\n          this.dispatchEvent(\n            new CustomEvent(\n              event,\n              isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args }\n            )\n          );\n        };\n        instance.emit = (event, ...args) => {\n          dispatch(event, args);\n          if (hyphenate(event) !== event) {\n            dispatch(hyphenate(event), args);\n          }\n        };\n        this._setParent();\n      };\n    }\n    return vnode;\n  }\n  _applyStyles(styles, owner) {\n    if (!styles) return;\n    if (owner) {\n      if (owner === this._def || this._styleChildren.has(owner)) {\n        return;\n      }\n      this._styleChildren.add(owner);\n    }\n    const nonce = this._nonce;\n    for (let i = styles.length - 1; i >= 0; i--) {\n      const s = document.createElement(\"style\");\n      if (nonce) s.setAttribute(\"nonce\", nonce);\n      s.textContent = styles[i];\n      this.shadowRoot.prepend(s);\n      if (!!(process.env.NODE_ENV !== \"production\")) {\n        if (owner) {\n          if (owner.__hmrId) {\n            if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();\n            let entry = this._childStyles.get(owner.__hmrId);\n            if (!entry) {\n              this._childStyles.set(owner.__hmrId, entry = []);\n            }\n            entry.push(s);\n          }\n        } else {\n          (this._styles || (this._styles = [])).push(s);\n        }\n      }\n    }\n  }\n  /**\n   * Only called when shadowRoot is false\n   */\n  _parseSlots() {\n    const slots = this._slots = {};\n    let n;\n    while (n = this.firstChild) {\n      const slotName = n.nodeType === 1 && n.getAttribute(\"slot\") || \"default\";\n      (slots[slotName] || (slots[slotName] = [])).push(n);\n      this.removeChild(n);\n    }\n  }\n  /**\n   * Only called when shadowRoot is false\n   */\n  _renderSlots() {\n    const outlets = (this._teleportTarget || this).querySelectorAll(\"slot\");\n    const scopeId = this._instance.type.__scopeId;\n    for (let i = 0; i < outlets.length; i++) {\n      const o = outlets[i];\n      const slotName = o.getAttribute(\"name\") || \"default\";\n      const content = this._slots[slotName];\n      const parent = o.parentNode;\n      if (content) {\n        for (const n of content) {\n          if (scopeId && n.nodeType === 1) {\n            const id = scopeId + \"-s\";\n            const walker = document.createTreeWalker(n, 1);\n            n.setAttribute(id, \"\");\n            let child;\n            while (child = walker.nextNode()) {\n              child.setAttribute(id, \"\");\n            }\n          }\n          parent.insertBefore(n, o);\n        }\n      } else {\n        while (o.firstChild) parent.insertBefore(o.firstChild, o);\n      }\n      parent.removeChild(o);\n    }\n  }\n  /**\n   * @internal\n   */\n  _injectChildStyle(comp) {\n    this._applyStyles(comp.styles, comp);\n  }\n  /**\n   * @internal\n   */\n  _removeChildStyle(comp) {\n    if (!!(process.env.NODE_ENV !== \"production\")) {\n      this._styleChildren.delete(comp);\n      if (this._childStyles && comp.__hmrId) {\n        const oldStyles = this._childStyles.get(comp.__hmrId);\n        if (oldStyles) {\n          oldStyles.forEach((s) => this._root.removeChild(s));\n          oldStyles.length = 0;\n        }\n      }\n    }\n  }\n}\nfunction useHost(caller) {\n  const instance = getCurrentInstance();\n  const el = instance && instance.ce;\n  if (el) {\n    return el;\n  } else if (!!(process.env.NODE_ENV !== \"production\")) {\n    if (!instance) {\n      warn(\n        `${caller || \"useHost\"} called without an active component instance.`\n      );\n    } else {\n      warn(\n        `${caller || \"useHost\"} can only be used in components defined via defineCustomElement.`\n      );\n    }\n  }\n  return null;\n}\nfunction useShadowRoot() {\n  const el = !!(process.env.NODE_ENV !== \"production\") ? useHost(\"useShadowRoot\") : useHost();\n  return el && el.shadowRoot;\n}\n\nfunction useCssModule(name = \"$style\") {\n  {\n    const instance = getCurrentInstance();\n    if (!instance) {\n      !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n      return EMPTY_OBJ;\n    }\n    const modules = instance.type.__cssModules;\n    if (!modules) {\n      !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n      return EMPTY_OBJ;\n    }\n    const mod = modules[name];\n    if (!mod) {\n      !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n      return EMPTY_OBJ;\n    }\n    return mod;\n  }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = Symbol(\"_moveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nconst decorate = (t) => {\n  delete t.props.mode;\n  return t;\n};\nconst TransitionGroupImpl = /* @__PURE__ */ decorate({\n  name: \"TransitionGroup\",\n  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n    tag: String,\n    moveClass: String\n  }),\n  setup(props, { slots }) {\n    const instance = getCurrentInstance();\n    const state = useTransitionState();\n    let prevChildren;\n    let children;\n    onUpdated(() => {\n      if (!prevChildren.length) {\n        return;\n      }\n      const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n      if (!hasCSSTransform(\n        prevChildren[0].el,\n        instance.vnode.el,\n        moveClass\n      )) {\n        return;\n      }\n      prevChildren.forEach(callPendingCbs);\n      prevChildren.forEach(recordPosition);\n      const movedChildren = prevChildren.filter(applyTranslation);\n      forceReflow();\n      movedChildren.forEach((c) => {\n        const el = c.el;\n        const style = el.style;\n        addTransitionClass(el, moveClass);\n        style.transform = style.webkitTransform = style.transitionDuration = \"\";\n        const cb = el[moveCbKey] = (e) => {\n          if (e && e.target !== el) {\n            return;\n          }\n          if (!e || /transform$/.test(e.propertyName)) {\n            el.removeEventListener(\"transitionend\", cb);\n            el[moveCbKey] = null;\n            removeTransitionClass(el, moveClass);\n          }\n        };\n        el.addEventListener(\"transitionend\", cb);\n      });\n    });\n    return () => {\n      const rawProps = toRaw(props);\n      const cssTransitionProps = resolveTransitionProps(rawProps);\n      let tag = rawProps.tag || Fragment;\n      prevChildren = [];\n      if (children) {\n        for (let i = 0; i < children.length; i++) {\n          const child = children[i];\n          if (child.el && child.el instanceof Element) {\n            prevChildren.push(child);\n            setTransitionHooks(\n              child,\n              resolveTransitionHooks(\n                child,\n                cssTransitionProps,\n                state,\n                instance\n              )\n            );\n            positionMap.set(\n              child,\n              child.el.getBoundingClientRect()\n            );\n          }\n        }\n      }\n      children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n      for (let i = 0; i < children.length; i++) {\n        const child = children[i];\n        if (child.key != null) {\n          setTransitionHooks(\n            child,\n            resolveTransitionHooks(child, cssTransitionProps, state, instance)\n          );\n        } else if (!!(process.env.NODE_ENV !== \"production\") && child.type !== Text) {\n          warn(`<TransitionGroup> children must be keyed.`);\n        }\n      }\n      return createVNode(tag, null, children);\n    };\n  }\n});\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n  const el = c.el;\n  if (el[moveCbKey]) {\n    el[moveCbKey]();\n  }\n  if (el[enterCbKey]) {\n    el[enterCbKey]();\n  }\n}\nfunction recordPosition(c) {\n  newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n  const oldPos = positionMap.get(c);\n  const newPos = newPositionMap.get(c);\n  const dx = oldPos.left - newPos.left;\n  const dy = oldPos.top - newPos.top;\n  if (dx || dy) {\n    const s = c.el.style;\n    s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n    s.transitionDuration = \"0s\";\n    return c;\n  }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n  const clone = el.cloneNode();\n  const _vtc = el[vtcKey];\n  if (_vtc) {\n    _vtc.forEach((cls) => {\n      cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n    });\n  }\n  moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n  clone.style.display = \"none\";\n  const container = root.nodeType === 1 ? root : root.parentNode;\n  container.appendChild(clone);\n  const { hasTransform } = getTransitionInfo(clone);\n  container.removeChild(clone);\n  return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n  const fn = vnode.props[\"onUpdate:modelValue\"] || false;\n  return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n  e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n  const target = e.target;\n  if (target.composing) {\n    target.composing = false;\n    target.dispatchEvent(new Event(\"input\"));\n  }\n}\nconst assignKey = Symbol(\"_assign\");\nconst vModelText = {\n  created(el, { modifiers: { lazy, trim, number } }, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n    addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n      if (e.target.composing) return;\n      let domValue = el.value;\n      if (trim) {\n        domValue = domValue.trim();\n      }\n      if (castToNumber) {\n        domValue = looseToNumber(domValue);\n      }\n      el[assignKey](domValue);\n    });\n    if (trim) {\n      addEventListener(el, \"change\", () => {\n        el.value = el.value.trim();\n      });\n    }\n    if (!lazy) {\n      addEventListener(el, \"compositionstart\", onCompositionStart);\n      addEventListener(el, \"compositionend\", onCompositionEnd);\n      addEventListener(el, \"change\", onCompositionEnd);\n    }\n  },\n  // set value on mounted so it's after min/max for type=\"range\"\n  mounted(el, { value }) {\n    el.value = value == null ? \"\" : value;\n  },\n  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    if (el.composing) return;\n    const elValue = (number || el.type === \"number\") && !/^0\\d/.test(el.value) ? looseToNumber(el.value) : el.value;\n    const newValue = value == null ? \"\" : value;\n    if (elValue === newValue) {\n      return;\n    }\n    if (document.activeElement === el && el.type !== \"range\") {\n      if (lazy && value === oldValue) {\n        return;\n      }\n      if (trim && el.value.trim() === newValue) {\n        return;\n      }\n    }\n    el.value = newValue;\n  }\n};\nconst vModelCheckbox = {\n  // #4096 array checkboxes need to be deep traversed\n  deep: true,\n  created(el, _, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    addEventListener(el, \"change\", () => {\n      const modelValue = el._modelValue;\n      const elementValue = getValue(el);\n      const checked = el.checked;\n      const assign = el[assignKey];\n      if (isArray(modelValue)) {\n        const index = looseIndexOf(modelValue, elementValue);\n        const found = index !== -1;\n        if (checked && !found) {\n          assign(modelValue.concat(elementValue));\n        } else if (!checked && found) {\n          const filtered = [...modelValue];\n          filtered.splice(index, 1);\n          assign(filtered);\n        }\n      } else if (isSet(modelValue)) {\n        const cloned = new Set(modelValue);\n        if (checked) {\n          cloned.add(elementValue);\n        } else {\n          cloned.delete(elementValue);\n        }\n        assign(cloned);\n      } else {\n        assign(getCheckboxValue(el, checked));\n      }\n    });\n  },\n  // set initial checked on mount to wait for true-value/false-value\n  mounted: setChecked,\n  beforeUpdate(el, binding, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    setChecked(el, binding, vnode);\n  }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n  el._modelValue = value;\n  let checked;\n  if (isArray(value)) {\n    checked = looseIndexOf(value, vnode.props.value) > -1;\n  } else if (isSet(value)) {\n    checked = value.has(vnode.props.value);\n  } else {\n    if (value === oldValue) return;\n    checked = looseEqual(value, getCheckboxValue(el, true));\n  }\n  if (el.checked !== checked) {\n    el.checked = checked;\n  }\n}\nconst vModelRadio = {\n  created(el, { value }, vnode) {\n    el.checked = looseEqual(value, vnode.props.value);\n    el[assignKey] = getModelAssigner(vnode);\n    addEventListener(el, \"change\", () => {\n      el[assignKey](getValue(el));\n    });\n  },\n  beforeUpdate(el, { value, oldValue }, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n    if (value !== oldValue) {\n      el.checked = looseEqual(value, vnode.props.value);\n    }\n  }\n};\nconst vModelSelect = {\n  // <select multiple> value need to be deep traversed\n  deep: true,\n  created(el, { value, modifiers: { number } }, vnode) {\n    const isSetModel = isSet(value);\n    addEventListener(el, \"change\", () => {\n      const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n        (o) => number ? looseToNumber(getValue(o)) : getValue(o)\n      );\n      el[assignKey](\n        el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n      );\n      el._assigning = true;\n      nextTick(() => {\n        el._assigning = false;\n      });\n    });\n    el[assignKey] = getModelAssigner(vnode);\n  },\n  // set value in mounted & updated because <select> relies on its children\n  // <option>s.\n  mounted(el, { value }) {\n    setSelected(el, value);\n  },\n  beforeUpdate(el, _binding, vnode) {\n    el[assignKey] = getModelAssigner(vnode);\n  },\n  updated(el, { value }) {\n    if (!el._assigning) {\n      setSelected(el, value);\n    }\n  }\n};\nfunction setSelected(el, value) {\n  const isMultiple = el.multiple;\n  const isArrayValue = isArray(value);\n  if (isMultiple && !isArrayValue && !isSet(value)) {\n    !!(process.env.NODE_ENV !== \"production\") && warn(\n      `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n    );\n    return;\n  }\n  for (let i = 0, l = el.options.length; i < l; i++) {\n    const option = el.options[i];\n    const optionValue = getValue(option);\n    if (isMultiple) {\n      if (isArrayValue) {\n        const optionType = typeof optionValue;\n        if (optionType === \"string\" || optionType === \"number\") {\n          option.selected = value.some((v) => String(v) === String(optionValue));\n        } else {\n          option.selected = looseIndexOf(value, optionValue) > -1;\n        }\n      } else {\n        option.selected = value.has(optionValue);\n      }\n    } else if (looseEqual(getValue(option), value)) {\n      if (el.selectedIndex !== i) el.selectedIndex = i;\n      return;\n    }\n  }\n  if (!isMultiple && el.selectedIndex !== -1) {\n    el.selectedIndex = -1;\n  }\n}\nfunction getValue(el) {\n  return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n  const key = checked ? \"_trueValue\" : \"_falseValue\";\n  return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n  created(el, binding, vnode) {\n    callModelHook(el, binding, vnode, null, \"created\");\n  },\n  mounted(el, binding, vnode) {\n    callModelHook(el, binding, vnode, null, \"mounted\");\n  },\n  beforeUpdate(el, binding, vnode, prevVNode) {\n    callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n  },\n  updated(el, binding, vnode, prevVNode) {\n    callModelHook(el, binding, vnode, prevVNode, \"updated\");\n  }\n};\nfunction resolveDynamicModel(tagName, type) {\n  switch (tagName) {\n    case \"SELECT\":\n      return vModelSelect;\n    case \"TEXTAREA\":\n      return vModelText;\n    default:\n      switch (type) {\n        case \"checkbox\":\n          return vModelCheckbox;\n        case \"radio\":\n          return vModelRadio;\n        default:\n          return vModelText;\n      }\n  }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n  const modelToUse = resolveDynamicModel(\n    el.tagName,\n    vnode.props && vnode.props.type\n  );\n  const fn = modelToUse[hook];\n  fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n  vModelText.getSSRProps = ({ value }) => ({ value });\n  vModelRadio.getSSRProps = ({ value }, vnode) => {\n    if (vnode.props && looseEqual(vnode.props.value, value)) {\n      return { checked: true };\n    }\n  };\n  vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n    if (isArray(value)) {\n      if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n        return { checked: true };\n      }\n    } else if (isSet(value)) {\n      if (vnode.props && value.has(vnode.props.value)) {\n        return { checked: true };\n      }\n    } else if (value) {\n      return { checked: true };\n    }\n  };\n  vModelDynamic.getSSRProps = (binding, vnode) => {\n    if (typeof vnode.type !== \"string\") {\n      return;\n    }\n    const modelToUse = resolveDynamicModel(\n      // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n      vnode.type.toUpperCase(),\n      vnode.props && vnode.props.type\n    );\n    if (modelToUse.getSSRProps) {\n      return modelToUse.getSSRProps(binding, vnode);\n    }\n  };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n  stop: (e) => e.stopPropagation(),\n  prevent: (e) => e.preventDefault(),\n  self: (e) => e.target !== e.currentTarget,\n  ctrl: (e) => !e.ctrlKey,\n  shift: (e) => !e.shiftKey,\n  alt: (e) => !e.altKey,\n  meta: (e) => !e.metaKey,\n  left: (e) => \"button\" in e && e.button !== 0,\n  middle: (e) => \"button\" in e && e.button !== 1,\n  right: (e) => \"button\" in e && e.button !== 2,\n  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n  const cache = fn._withMods || (fn._withMods = {});\n  const cacheKey = modifiers.join(\".\");\n  return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {\n    for (let i = 0; i < modifiers.length; i++) {\n      const guard = modifierGuards[modifiers[i]];\n      if (guard && guard(event, modifiers)) return;\n    }\n    return fn(event, ...args);\n  });\n};\nconst keyNames = {\n  esc: \"escape\",\n  space: \" \",\n  up: \"arrow-up\",\n  left: \"arrow-left\",\n  right: \"arrow-right\",\n  down: \"arrow-down\",\n  delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n  const cache = fn._withKeys || (fn._withKeys = {});\n  const cacheKey = modifiers.join(\".\");\n  return cache[cacheKey] || (cache[cacheKey] = (event) => {\n    if (!(\"key\" in event)) {\n      return;\n    }\n    const eventKey = hyphenate(event.key);\n    if (modifiers.some(\n      (k) => k === eventKey || keyNames[k] === eventKey\n    )) {\n      return fn(event);\n    }\n  });\n};\n\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n  return renderer || (renderer = createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n  renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);\n  enabledHydration = true;\n  return renderer;\n}\nconst render = (...args) => {\n  ensureRenderer().render(...args);\n};\nconst hydrate = (...args) => {\n  ensureHydrationRenderer().hydrate(...args);\n};\nconst createApp = (...args) => {\n  const app = ensureRenderer().createApp(...args);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    injectNativeTagCheck(app);\n    injectCompilerOptionsCheck(app);\n  }\n  const { mount } = app;\n  app.mount = (containerOrSelector) => {\n    const container = normalizeContainer(containerOrSelector);\n    if (!container) return;\n    const component = app._component;\n    if (!isFunction(component) && !component.render && !component.template) {\n      component.template = container.innerHTML;\n    }\n    if (container.nodeType === 1) {\n      container.textContent = \"\";\n    }\n    const proxy = mount(container, false, resolveRootNamespace(container));\n    if (container instanceof Element) {\n      container.removeAttribute(\"v-cloak\");\n      container.setAttribute(\"data-v-app\", \"\");\n    }\n    return proxy;\n  };\n  return app;\n};\nconst createSSRApp = (...args) => {\n  const app = ensureHydrationRenderer().createApp(...args);\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    injectNativeTagCheck(app);\n    injectCompilerOptionsCheck(app);\n  }\n  const { mount } = app;\n  app.mount = (containerOrSelector) => {\n    const container = normalizeContainer(containerOrSelector);\n    if (container) {\n      return mount(container, true, resolveRootNamespace(container));\n    }\n  };\n  return app;\n};\nfunction resolveRootNamespace(container) {\n  if (container instanceof SVGElement) {\n    return \"svg\";\n  }\n  if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n    return \"mathml\";\n  }\n}\nfunction injectNativeTagCheck(app) {\n  Object.defineProperty(app.config, \"isNativeTag\", {\n    value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n    writable: false\n  });\n}\nfunction injectCompilerOptionsCheck(app) {\n  if (isRuntimeOnly()) {\n    const isCustomElement = app.config.isCustomElement;\n    Object.defineProperty(app.config, \"isCustomElement\", {\n      get() {\n        return isCustomElement;\n      },\n      set() {\n        warn(\n          `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n        );\n      }\n    });\n    const compilerOptions = app.config.compilerOptions;\n    const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n    Object.defineProperty(app.config, \"compilerOptions\", {\n      get() {\n        warn(msg);\n        return compilerOptions;\n      },\n      set() {\n        warn(msg);\n      }\n    });\n  }\n}\nfunction normalizeContainer(container) {\n  if (isString(container)) {\n    const res = document.querySelector(container);\n    if (!!(process.env.NODE_ENV !== \"production\") && !res) {\n      warn(\n        `Failed to mount app: mount target selector \"${container}\" returned null.`\n      );\n    }\n    return res;\n  }\n  if (!!(process.env.NODE_ENV !== \"production\") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n    warn(\n      `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n    );\n  }\n  return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n  if (!ssrDirectiveInitialized) {\n    ssrDirectiveInitialized = true;\n    initVModelForSSR();\n    initVShowForSSR();\n  }\n} ;\n\nexport { Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, useHost, useShadowRoot, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers };\n","/**\n* vue v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { initCustomFormatter, warn } from '@vue/runtime-dom';\nexport * from '@vue/runtime-dom';\n\nfunction initDev() {\n  {\n    initCustomFormatter();\n  }\n}\n\nif (!!(process.env.NODE_ENV !== \"production\")) {\n  initDev();\n}\nconst compile = () => {\n  if (!!(process.env.NODE_ENV !== \"production\")) {\n    warn(\n      `Runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n    );\n  }\n};\n\nexport { compile };\n","import { VNode, h } from \"vue\";\n\nexport function vnodeToString(vnode: any) {\n  if (\n    [\"string\", \"boolean\", \"undefined\", \"null\", \"number\"].includes(typeof vnode)\n  ) {\n    return vnode;\n  }\n  const attrs = Object.keys(vnode.attrs || {})\n    .map((key) => `${key}=\"${vnode.attrs[key]}\"`)\n    .join(\" \");\n  const children = (vnode.children || []).map(vnodeToString).join(\"\");\n  return `<${vnode.tag} ${attrs}>${children}</${vnode.tag}>`;\n}\n\nexport const getElementAttrs = (node: HTMLElement) => {\n  const attrs: Record<string, string> = {};\n  if (node.attributes) {\n    for (let i = 0, atts = node.attributes, n = atts.length; i < n; i++) {\n      const att = atts[i];\n      if (att.nodeName && att.nodeValue) {\n        attrs[att.nodeName] = att.nodeValue;\n      }\n    }\n  }\n  // for (const attr of node.attributes) attrs[attr.name] = attr.value;\n  return attrs;\n};\n\nexport const elementsToVNodes = (\n  elements: HTMLElement | HTMLElement[]\n): VNode[] => {\n  if (!Array.isArray(elements)) {\n    elements = [elements];\n  }\n  return elements.map((element) => {\n    // 3 is #text, not sure how else to build this one\n    if (element.nodeType === 3) {\n      return h(\"span\", element.nodeValue || \"\");\n    }\n    if (element.childNodes && element.childNodes.length) {\n      return h(\n        element.tagName,\n        getElementAttrs(element),\n        elementsToVNodes(element.childNodes as unknown as HTMLElement[])\n      );\n    } else {\n      return h(element.tagName, getElementAttrs(element), element.innerHTML);\n    }\n  });\n};\n\nexport const stringToVNodes = (html: string) => {\n  const div = document.createElement(\"div\");\n  div.innerHTML = html;\n  return elementsToVNodes(div.childNodes as unknown as HTMLElement[]);\n};\n","const fu = {};\nfunction du() {\n  return typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : this || fu;\n}\nconst vt = du(), mu = \"@YZ/\";\nfunction Vi(n, t = mu) {\n  return n.startsWith(t) ? n : `${t}${n}`;\n}\nfunction Pr(n) {\n  return typeof n == \"string\" && n.startsWith(\"Symbol(\") && n.endsWith(\")\");\n}\nfunction Tr(n) {\n  return Pr(n) && (n = n.slice(7, -1)), n;\n}\nfunction Zn(n) {\n  return n = Tr(n), n = Vi(n), typeof Symbol == \"function\" ? Symbol(n) : `Symbol(${n})`;\n}\nconst Es = Zn(\"TIMESTAMP\"), pu = Zn(\"META\");\nfunction gu(n, t) {\n  const e = t.toString();\n  if (!Pr(e))\n    return !1;\n  if (n && typeof n == \"object\") {\n    if (Tr(e) == \"\")\n      return t in n;\n    for (const s of Reflect.ownKeys(n))\n      if (s.toString() == e)\n        return !0;\n    return !1;\n  }\n  return !1;\n}\nfunction Do(n) {\n  if (!Pr(n))\n    return n;\n  switch (n = Tr(n), n) {\n    case Vi(\"TIMESTAMP\"):\n      return Es;\n    case Vi(\"META\"):\n      return pu;\n    default:\n      return Zn(n);\n  }\n}\nfunction $i(n) {\n  if (Array.isArray(n))\n    return n.map($i);\n  if (n && typeof n == \"object\") {\n    const t = {};\n    for (const e of Reflect.ownKeys(n)) {\n      const s = n[e];\n      t[typeof e == \"symbol\" ? e.toString() : e] = typeof s == \"symbol\" ? s.toString() : $i(s);\n    }\n    return t;\n  }\n  return typeof n == \"symbol\" ? n.toString() : n;\n}\nfunction qi(n) {\n  if (Array.isArray(n))\n    return n.map(qi);\n  if (n && typeof n == \"object\") {\n    const t = {};\n    for (const e of Object.keys(n))\n      t[Do(e)] = qi(n[e]);\n    return t;\n  }\n  return Do(n);\n}\nfunction Mr(n) {\n  return JSON.stringify($i(n));\n}\nconst Ar = Mr;\nfunction Wa(n) {\n  return qi(JSON.parse(n));\n}\nvar Mt = /* @__PURE__ */ ((n) => (n.UNKNOWN = \"\", n.TEXT = \"text/plain\", n.MD = \"text/plain\", n.HTML = \"text/html\", n.XML_TEXT = \"text/xml\", n.CSS = \"text/css\", n.JPEG = \"image/jpeg\", n.PNG = \"image/png\", n.GIF = \"image/gif\", n.BMP = \"image/bmp\", n.WEBP = \"image/webp\", n.SVG = \"image/svg+xml\", n.ICON = \"image/x-icon\", n.MICROSOFT_ICON = \"image/vnd.microsoft.icon\", n.MPEG = \"audio/mpeg\", n.MP3 = \"audio/mpeg\", n.MP4 = \"video/mp4\", n.OGG = \"audio/ogg\", n.WAV = \"audio/wav\", n.MIDI = \"audio/midi\", n.WEBM = \"video/webm\", n.VIDEO_OGG = \"video/ogg\", n.OCTET_STREAM = \"application/octet-stream\", n.JAVASCRIPT = \"application/javascript\", n.ECMASCRIPT = \"application/ecmascript\", n.JSON = \"application/json\", n.XML = \"application/xml\", n.XHTML = \"application/xhtml+xml\", n.XWWW = \"application/x-www-form-urlencoded\", n.DOC = \"application/msword\", n.CSV = \"application/x-csv\", n.EXCEL = \"application/vnb.ms-excel\", n.PPT = \"application/vnb.mspowerpoint\", n.PDF = \"application/pdf\", n.ZIP = \"application/zip\", n.TGZ = \"application/x-gtar\", n.TAR_GZ = \"application/x-gzip\", n.EOT = \"appliaction/vnd.ms-fontobject\", n.TTF = \"aplication/font-sfnt\", n.PKCS12 = \"aplication/pkcs12\", n))(Mt || {}), Bn = /* @__PURE__ */ ((n) => (n.ascii = \"ascii\", n.utf8 = \"utf8\", n.utf16le = \"utf16le\", n.ucs2 = \"ucs2\", n.base64 = \"base64\", n.base64url = \"base64url\", n.latin1 = \"latin1\", n.binary = \"binary\", n.hex = \"hex\", n))(Bn || {}), Ut = /* @__PURE__ */ ((n) => (n.text = \"text\", n.dataURL = \"dataURL\", n.binaryString = \"binaryString\", n.arraybuffer = \"arraybuffer\", n))(Ut || {}), Hs = /* @__PURE__ */ ((n) => (n.md5 = \"md5\", n.sha1 = \"sha1\", n.sha256 = \"sha256\", n.SHA256 = \"SHA-256\", n.sha512 = \"sha512\", n.SHA512 = \"SHA-512\", n.AESGCM = \"AES-GCM\", n.ECDSA = \"ECDSA\", n))(Hs || {});\nconst Jn = (n) => {\n  let t = null;\n  switch (n) {\n    case \"any-character\":\n      t = /[^]/;\n      break;\n    case \"bin\":\n      t = /^(0b)?[0-1]+$/i;\n      break;\n    case \"oct\":\n      t = /^(0o)?[0-7]+$/i;\n      break;\n    case \"hex\":\n      t = /^(0x)?[0-9a-fA-F]+$/i;\n      break;\n    case \"ascii\":\n      t = /^[\\x00-\\xFF]+$/i;\n      break;\n    case \"int\":\n      t = /^[-+]?[0-9]+$/;\n      break;\n    case \"number\":\n      t = /[-+]?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/gi;\n      break;\n    case \"number-single\":\n      t = /[-+]?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/i;\n      break;\n    case \"split\":\n      t = /\\s*,\\s*/gi;\n      break;\n    case \"trim\":\n      t = /^\\s+|\\s+$/g;\n      break;\n    case \"regexp\":\n      t = /[\\\\^$.*+?()[\\]{}|]/g;\n      break;\n    case \"regexp-flags\":\n      t = /\\w*$/;\n      break;\n    case \"native-method\":\n      t = RegExp(\n        \"^\" + Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(Jn(\"regexp\"), \"\\\\$&\").replace(\n          /hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\n          \"$1.*?\"\n        ) + \"$\"\n      );\n      break;\n    case \"svg-segment\":\n      t = /([mlhvzaqtcs])([^mlhvzaqtcs]*)/gi;\n      break;\n    case \"mobile-china\":\n      t = /^[1]{1}[0-9]{10}$/;\n      break;\n    case \"email\":\n      t = /^[A-Za-z0-9_!#$%&'*+/=?`{|}~^.-]+\\@[A-Za-z0-9._-]+\\.[A-Za-z0-9]+$/gm;\n      break;\n    case \"ip\":\n      t = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n      break;\n    case \"url\":\n      t = /^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$/;\n      break;\n    case \"element-url\":\n      t = /^url\\(['\"]?(.+?)['\"]?\\)$/i;\n      break;\n    case \"date\":\n      t = /^\\d{4}(\\-|\\/|\\.)(\\d{1,2})(\\-|\\/|\\.)(\\d{1,2})$/;\n      break;\n    case \"time\":\n      t = /^(\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/;\n      break;\n    case \"datetime\":\n      t = /^\\d{4}(\\-|\\/|\\.)(\\d{1,2})(\\-|\\/|\\.)(\\d{1,2})\\s+(\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/;\n      break;\n    case \"base64-data\":\n      t = /^\\s*data:(?:[a-z]+\\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\\-._~:@/?%\\s]*?)\\s*$/i;\n      break;\n    case \"hex-color\":\n      t = /^#([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\n      break;\n    case \"color\":\n      t = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\))\\s*$/i;\n      break;\n    case \"whitespace\":\n      t = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]/g;\n      break;\n    case \"commaSpaces\":\n      t = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/;\n      break;\n    case \"var-name\":\n      t = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;\n      break;\n    case \"bezier\":\n      t = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/;\n      break;\n    case \"chinese-name\":\n      t = /^(?:[\\u4e00-\\u9fa5·]{2,16})$/;\n      break;\n    case \"chinese\":\n      t = new RegExp(\n        String.raw`\n          [\\u{FA0E}\\u{FA0F}\\u{FA11}\\u{FA13}\\u{FA14}\\u{FA1F}\\u{FA21}\\u{FA23}\\u{FA24}\\u{FA27}-\\u{FA29}]\n          |[\\u{4E00}-\\u{9FCC}]\n          |[\\u{3400}-\\u{4DB5}]\n          |[\\u{20000}-\\u{2A6D6}]\n          |[\\u{2A700}-\\u{2B734}]\n          |[\\u{2B740}-\\u{2B81D}]\n          |[\\u{2B820}-\\u{2CEAF}]\n          |[\\u{2CEB0}-\\u{2EBEF}]\n        `.replace(/\\s+/g, \"\"),\n        \"u\"\n      );\n      break;\n    case \"mime-image\":\n      t = /^image\\//;\n      break;\n    case \"mime-video\":\n      t = /^video\\//;\n      break;\n    case \"mime-audio\":\n      t = /^audio\\//;\n      break;\n    case \"mime-document-word\":\n      t = /^application\\/(?:vnd\\.openxmlformats-officedocument\\.wordprocessingml\\.document|msword|vnd\\.ms-word\\.document\\.macroenabled\\.12|vnd\\.openxmlformats-officedocument\\.wordprocessingml\\.template|vnd\\.ms-word\\.template\\.macroenabled\\.12)$/;\n      break;\n    case \"mime-document-excel\":\n      t = /^application\\/(?:vnd\\.openxmlformats-officedocument\\.spreadsheetml\\.sheet|vnd\\.ms-excel|vnd\\.ms-excel\\.sheet\\.macroenabled\\.12|vnd\\.openxmlformats-officedocument\\.spreadsheetml\\.template|vnd\\.ms-excel\\.template\\.macroenabled\\.12)$/;\n      break;\n    case \"mime-document-ppt\":\n      t = /^application\\/(?:vnd\\.ms-powerpoint|vnd\\.openxmlformats-officedocument\\.presentationml\\.presentation|vnd\\.ms-powerpoint\\.presentation\\.macroenabled\\.12|vnd\\.openxmlformats-officedocument\\.presentationml\\.template|vnd\\.ms-powerpoint\\.template\\.macroenabled\\.12)$/;\n      break;\n    case \"mime-document-json\":\n      t = /^application\\/json$/;\n      break;\n    case \"mime-document-xml\":\n      t = /^(?:application|text)\\/(?:xml|xhtml\\+xml)$/;\n      break;\n  }\n  return t;\n}, fe = (n, t) => (typeof n == \"string\" && (n = Jn(n) || new RegExp(n)), n.test(t)), Za = (n, t) => {\n  typeof n == \"string\" && (n = Jn(n) || new RegExp(n));\n  const e = t.match(n);\n  return e ? n.flags.toLowerCase().indexOf(\"g\") >= 0 ? e.map(\n    (s) => ({\n      matchIndex: -1,\n      fullMatch: s,\n      groupMatchs: []\n    })\n  ) : {\n    matchIndex: typeof e.index == \"number\" ? e.index : -1,\n    fullMatch: e[0],\n    groupMatchs: e.slice(1)\n  } : null;\n}, Ja = (n, t) => {\n  typeof n == \"string\" && (n = Jn(n) || new RegExp(n));\n  const e = [], s = t.matchAll(n);\n  for (const i of s)\n    e.push({\n      matchIndex: typeof i.index == \"number\" ? i.index : -1,\n      fullMatch: i[0],\n      groupMatchs: i.slice(1)\n    });\n  return e;\n};\nfunction yu(n) {\n  const t = n.match(/[\\s\\S]/gu);\n  return t ? t.length : 0;\n}\nfunction Lo(n, t) {\n  const e = n.codePointAt(t);\n  return e ? String.fromCodePoint(e) : void 0;\n}\nfunction Xs(n = 12, t = \"all\") {\n  let e = \"ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghijklmnopqrstuvwxyz0123456789\";\n  t == \"number\" && (e = \"0123456789\");\n  const s = e.length;\n  let i = \"\";\n  for (let r = 0; r < n; r++)\n    i += e[Math.floor(Math.random() * s)];\n  return i;\n}\nfunction xu(n) {\n  return n.replace(/(^\\w)/g, (t) => t.toLowerCase());\n}\nconst pt = (n, t = \"-\") => {\n  let e = n.replace(new RegExp(\"[_-]?([A-Z])\", \"g\"), t + \"$1\").toLowerCase();\n  const s = new RegExp(`^${t}`);\n  return s.test(n) || (e = e.replace(s, \"\")), e;\n};\nfunction wu(n) {\n  return n.replace(/(^\\w|[_-]\\w)/g, (t) => t.slice(-1).toUpperCase());\n}\nfunction Ka(n) {\n  return xu(wu(n));\n}\nfunction Qa(n) {\n  let t = \"\";\n  for (let e = 0, s = n.length; e < s; e++) {\n    const i = n.charCodeAt(e);\n    i >= 1 && i <= 127 ? t += n.charAt(e) : i > 2047 ? (t += String.fromCharCode(224 | i >> 12 & 15), t += String.fromCharCode(128 | i >> 6 & 63), t += String.fromCharCode(128 | i >> 0 & 63)) : (t += String.fromCharCode(192 | i >> 6 & 31), t += String.fromCharCode(128 | i >> 0 & 63));\n  }\n  return t;\n}\nfunction bu(n) {\n  return n.slice(0);\n}\nfunction vu(n, t = !0) {\n  const e = t ? bu(n.buffer) : n.buffer;\n  return new n.constructor(\n    e,\n    n.byteOffset,\n    n.length\n  );\n}\nconst _u = \"[object Undefined]\", Su = \"[object Null]\", Cu = \"[object Boolean]\", Eu = \"[object Number]\", Pu = \"[object BigInt]\", th = \"[object String]\", Tu = \"[object Symbol]\", Mu = \"[object Function]\", Au = \"[object Array]\", Iu = \"[object GeneratorFunction]\";\nfunction Kn(n) {\n  return Object.prototype.toString.call(n);\n}\nfunction ku(n) {\n  return n != null;\n}\nfunction Du(n) {\n  return Kn(n) === th;\n}\nfunction eh(n) {\n  const t = Kn(n);\n  return t === _u || t === Su || t === Cu || t === Eu || t === th || t === Tu || t === Pu;\n}\nfunction Lu(n) {\n  const t = Kn(n);\n  return t == Mu || t == Iu;\n}\nfunction Xn(n) {\n  return Kn(n) === Au;\n}\nfunction An(n) {\n  return !!n && typeof n == \"object\";\n}\nfunction Ps(n) {\n  return An(n) && !Xn(n);\n}\nconst Ro = (n) => {\n  for (const t in n)\n    if (Object.prototype.hasOwnProperty.call(n, t))\n      return !1;\n  return !0;\n};\nfunction sh(n) {\n  const t = [];\n  for (const e in n)\n    Object.prototype.hasOwnProperty.call(n, e) && t.push(e);\n  return t;\n}\nfunction is(n, t, e = !0) {\n  if (Ps(n) && Ps(t))\n    for (const s of sh(t))\n      (e || typeof n[s] > \"u\") && (Ps(n[s]) && Ps(t[s]) ? is(n[s], t[s], e) : n[s] = t[s]);\n  return n;\n}\nfunction nh(n, ...t) {\n  return new n.constructor(...t);\n}\nfunction Ve(n, t = `\\r\n`, e = 6, s = 1) {\n  if (Du(n))\n    return `\"${n}\"`;\n  if (eh(n))\n    return \"\" + n;\n  if (Lu(n))\n    return \"[Fn]\";\n  if (s > e)\n    return Xn(n) ? \"[...]\" : \"{...}\";\n  let i = \"\", r = \"\";\n  for (let o = 0; o < s; o++)\n    i += \"  \", o > 0 && (r += \"  \");\n  return Xn(n) ? `[${n.map(\n    (o) => t + i + Ve(o, t, e, s + 1)\n  ).join(\", \")}${t}${r}]` : `{${sh(n).map(\n    (o) => `${t}${i}${o}: ${Ve(\n      n[o],\n      t,\n      e,\n      s + 1\n    )}`\n  ).join(\", \")}${t}${r}}`;\n}\nfunction Ru(n, t = \"\", e = [\"\", \"sign\", \"key\"]) {\n  return Ps(n) ? Object.keys(n).filter((s) => {\n    for (let i = 0, r = e.length; i < r; i++)\n      if (n[s] == e[i])\n        return !1;\n    return !0;\n  }).sort().map((s) => `${s}=${n[s]}`).join(\"&\") + t : String(n);\n}\nfunction ih(n, t, e = \"\") {\n  let s = [];\n  return n === t ? s : typeof n != \"object\" || typeof t != \"object\" || !n || !t ? (s.push({\n    path: e,\n    newValue: t,\n    oldValue: n\n  }), s) : ((/* @__PURE__ */ new Set([...Object.keys(n), ...Object.keys(t)])).forEach((i) => {\n    const r = e ? `${e}.${i}` : i;\n    s = s.concat(ih(n[i], t[i], r));\n  }), s);\n}\nfunction Ou(n) {\n  return Number.isNaN(n);\n}\nfunction zu(n) {\n  if (n <= 1)\n    return !1;\n  for (let t = 2; t <= Math.sqrt(n); t++)\n    if (n % t === 0)\n      return !1;\n  return !0;\n}\nfunction Nu(n) {\n  for (; !zu(n); )\n    n++;\n  return n;\n}\nfunction Qt(n, t) {\n  const e = parseFloat(n);\n  return Number.isNaN(e) ? typeof t == \"number\" ? t : NaN : e;\n}\nfunction ji(n = 1e-6) {\n  return function(t, e) {\n    return Math.abs(t - e) < n;\n  };\n}\nfunction N(n, t, e) {\n  const s = Math.min(t, e), i = Math.max(t, e);\n  return n < s ? s : n > i ? i : n;\n}\nfunction Yu(n, t) {\n  return (n % t + t) % t;\n}\nfunction In(n, t, e) {\n  return typeof n == \"number\" && typeof t == \"number\" ? (1 - e) * n + e * t : typeof n == \"number\" ? n : typeof t == \"number\" ? t : 0;\n}\nfunction Bu(n, t, e) {\n  const s = Math.max(n.length, t.length), i = new Array(s);\n  for (let r = 0; r < s; r++)\n    i[r] = In(n[r], t[r], e);\n  return i;\n}\nfunction Xu(n, t, e) {\n  return (s) => {\n    const i = N(s, n, t);\n    return e == 0 ? i : t - i < e ? t : Math.round(i / e) * e;\n  };\n}\nfunction Fu(n, t = 12) {\n  return Qt(n, 0).toFixed(t);\n}\nfunction Y(n, t = 12) {\n  return +Fu(n, t);\n}\nfunction Hi(n, t) {\n  const e = Za(\"number-single\", String(n));\n  return {\n    hasNumber: !!e,\n    number: e && !Array.isArray(e) && e.fullMatch ? parseFloat(e.fullMatch) : ku(t) ? t : NaN,\n    prefix: e && !Array.isArray(e) && e.fullMatch ? n.substring(0, e.matchIndex) : \"\",\n    suffix: e && !Array.isArray(e) && e.fullMatch ? n.substring(e.matchIndex + e.fullMatch.length) : \"\"\n  };\n}\nfunction Ir(n) {\n  const t = Za(\"number\", n);\n  return t ? Array.isArray(t) ? t.map((e) => Number(e.fullMatch)) : [Number(t.fullMatch)] : [];\n}\nfunction Uu(n = [], t = []) {\n  const e = n.length, s = t.length;\n  for (let r = 0; r < s; r++)\n    n[r] = t[r];\n  let i = Math.max(0, e - s);\n  for (; i > 0; )\n    n.pop(), i--;\n  return n;\n}\nfunction rh(n, t) {\n  const e = n.findIndex((s) => s === t);\n  return e >= 0 && n.splice(e, 1), n;\n}\nfunction oh(n, t) {\n  return n.findIndex((e) => e == t) >= 0;\n}\nfunction Gu(n, ...t) {\n  return t.forEach((e) => {\n    oh(n, e) || n.push(e);\n  }), n;\n}\nfunction ct() {\n  return (performance || Date).now();\n}\nfunction Gt(n = /* @__PURE__ */ new Date()) {\n  return n.getTime();\n}\nfunction Vu(n = /* @__PURE__ */ new Date(), t = \"yyyy-mm-dd hh:ii:ss.SSS\") {\n  return Zu(n, t);\n}\nfunction $u(n) {\n  return !Ou(n.valueOf());\n}\nfunction qu(n, t = 3) {\n  const e = Math.max(n.length, 6);\n  let s = \"\";\n  for (let r = 0; r < e - 4; r++)\n    s += n[r] || \"0\";\n  const i = [\n    s,\n    \"\" + (n[e - 4] || \"0\") + (n[e - 3] || \"0\"),\n    \"\" + (n[e - 2] || \"0\") + (n[e - 1] || \"0\")\n  ];\n  switch (t) {\n    case 1:\n      return i[0];\n    case 2:\n      return i[0] + \":\" + i[1];\n    case 3:\n      return i[0] + \":\" + i[1] + \":\" + i[2];\n  }\n}\nfunction ju(n) {\n  const t = Math.max(n.length, 6);\n  let e = 0;\n  e += (n[t - 2] || 0) * 10 + (n[t - 1] || 0), e += ((n[t - 4] || 0) * 10 + (n[t - 3] || 0)) * 60;\n  let s = 0;\n  for (let i = 0; i < t - 4; i++)\n    s = s * 10 + (n[i] || 0);\n  return e += s * 60 * 60, Math.floor(Math.max(0, e));\n}\nfunction Hu(n, t = !1) {\n  let e = 0;\n  typeof n == \"number\" ? e = n : e = ju(n);\n  const s = [], i = e % 60;\n  s.unshift(i % 10), s.unshift(Math.floor(i / 10)), e = Math.floor(e / 60);\n  const r = e % 60;\n  if (s.unshift(r % 10), s.unshift(Math.floor(r / 10)), e = Math.floor(e / 60), t) {\n    const o = e % 100;\n    for (s.unshift(o % 10), s.unshift(Math.floor(o / 10)), e = Math.floor(e / 100); e; )\n      s.unshift(e % 10), e = Math.floor(e / 10);\n  } else {\n    const o = e % 24;\n    s.unshift(o % 10), s.unshift(Math.floor(o / 10));\n  }\n  return s;\n}\nfunction Wu(n, t = 1, e = !1) {\n  return n[n.length - 1] += t, Hu(n, e);\n}\nfunction Zu(n, t = \"yyyy-mm-dd hh:ii:ss\") {\n  if (!$u(n))\n    return \"\";\n  const e = /(y+)/.exec(t);\n  if (e && e[1]) {\n    const i = e[1];\n    t = t.replace(\n      i,\n      // (date.getFullYear() + \"\").substring(Math.max(4 - year.length, 0))\n      (n.getFullYear() + \"\").substring(4 - i.length)\n    );\n  }\n  const s = {\n    \"m+\": n.getMonth() + 1,\n    //月份\n    \"d+\": n.getDate(),\n    //日\n    \"h+\": n.getHours(),\n    //小时\n    \"i+\": n.getMinutes(),\n    //分\n    \"s+\": n.getSeconds(),\n    //秒\n    \"q+\": Math.floor((n.getMonth() + 3) / 3),\n    // 季度\n    \"S+\": n.getMilliseconds()\n    //毫秒\n  };\n  for (const i in s) {\n    const r = new RegExp(\"(\" + i + \")\").exec(t);\n    if (r && r[1]) {\n      const o = r[1];\n      t = t.replace(\n        o,\n        // d.length == 1 ? \"\" + o[k] : (\"00\" + o[k]).substring((\"\" + o[k]).length)\n        // d.length == 1\n        //   ? \"\" + o[k]\n        //   : (\"00\" + o[k]).substring((\"\" + o[k]).length - d.length + 2)\n        o.length === 1 ? \"\" + s[i] : (\"00\" + s[i]).slice(-o.length)\n      );\n    }\n  }\n  return t;\n}\nfunction Fn(n, t) {\n  const e = typeof t?.aliveInSeconds == \"number\" ? Math.max(t.aliveInSeconds, 0) : -1, s = typeof t?.aliveUntilTimestamp == \"number\" ? Math.max(t.aliveUntilTimestamp, 0) : -1;\n  function i(o, a = !1) {\n    return eh(o) || Xn(o) ? { v: o, [Es]: Gt() } : a && gu(o, Es) ? o : {\n      ...o,\n      [Es]: Gt()\n    };\n  }\n  let r = i(n, !0);\n  return {\n    get: () => {\n      let o = !1;\n      return (e >= 0 && Gt() > r[Es] + e * 1e3 || // 时间戳\n      s >= 0 && Gt() > s) && (o = !0), o && (r.v = void 0), r;\n    },\n    set: (o) => r = i(o)\n  };\n}\nconst Ju = typeof window < \"u\";\n!!(vt.Worker && vt.Blob && vt.Promise && vt.OffscreenCanvas && vt.OffscreenCanvasRenderingContext2D && vt.HTMLCanvasElement && vt.HTMLCanvasElement.prototype.transferControlToOffscreen && vt.URL && vt.URL.createObjectURL);\nconst Ku = (() => {\n  if (!vt.OffscreenCanvas)\n    return !1;\n  const n = new OffscreenCanvas(1, 1), t = n.getContext(\"2d\");\n  if (!t)\n    return !1;\n  t.fillRect(0, 0, 1, 1);\n  const e = n.transferToImageBitmap();\n  try {\n    t.createPattern(e, \"no-repeat\");\n  } catch {\n    return !1;\n  }\n  return !0;\n})();\nlet Oo;\ntry {\n  Oo = Map;\n} catch {\n  Oo = function() {\n  };\n}\nlet zo;\ntry {\n  zo = Set;\n} catch {\n  zo = function() {\n  };\n}\nconst es = (n, t = 16) => {\n  let e = n.toLowerCase();\n  const s = e.indexOf(\"0b\") == 0, i = e.indexOf(\"0o\") == 0, r = e.indexOf(\"0x\") == 0;\n  (s || i || r) && (e = e.slice(2)), s && (t = 2), i && (t = 8), r && (t = 16);\n  const o = parseInt(e, t);\n  if (isNaN(o))\n    throw new Error(`radixStringToNumber(${n}, ${t}) 无法解析！`);\n  return o;\n};\nfunction kr(n) {\n  return new TextEncoder().encode(n);\n}\nfunction ah(n) {\n  return String.fromCharCode.apply(\n    null,\n    new Uint16Array(n)\n  );\n}\nfunction Dr(n, t) {\n  const e = t?.mime, s = t?.encode, i = t?.type;\n  return i ? new Blob([n], {\n    type: i\n  }) : e ? s === Bn.base64 ? new Blob([n], { type: `${e};${s}` }) : s === Bn.utf8 ? new Blob([n], {\n    type: `${e};charset=${s}`\n  }) : new Blob([n], {\n    type: `${e}`\n  }) : new Blob([n]);\n}\nconst Qu = (n) => {\n  let t = Mt.UNKNOWN;\n  switch (new DataView(n).getUint32(0, tf()).toString(16).toUpperCase()) {\n    case \"FFD8FFDB\":\n      t = Mt.JPEG;\n      break;\n    case \"FFD8FFE0\":\n    case \"FFD8FFE1\":\n    case \"FFD8FFE2\":\n    case \"FFD8FFE3\":\n      t = Mt.JPEG;\n      break;\n    case \"89504E47\":\n      t = Mt.PNG;\n      break;\n    case \"47494638\":\n      t = Mt.GIF;\n      break;\n    case \"52494646\":\n      t = Mt.WEBP;\n      break;\n    case \"25504446\":\n      t = Mt.PDF;\n      break;\n    case \"504B0304\":\n      t = Mt.ZIP;\n      break;\n  }\n  return t;\n};\nfunction tf() {\n  const n = Uint32Array.of(305419896), t = new Uint8Array(n.buffer);\n  switch (t[0] * 16777216 + t[1] * 65536 + t[2] * 256 + t[3]) {\n    case 305419896:\n      return !1;\n    case 2018915346:\n      return !0;\n  }\n}\nconst Ts = {\n  THROW: 1,\n  DROP: 2,\n  SLIDE: 3,\n  EXPAND: 4\n};\nclass ef {\n  queue;\n  limit;\n  overflow;\n  constructor(t = 10, e = Ts.EXPAND) {\n    this.queue = [], this.limit = t, this.overflow = e;\n  }\n  length() {\n    return this.queue.length;\n  }\n  isEmpty() {\n    return this.length() === 0;\n  }\n  findIndex(t) {\n    return this.queue.findIndex(t);\n  }\n  deleteIndex(t) {\n    return !!this.queue.splice(t, 1).length;\n  }\n  delete(t) {\n    const e = this.findIndex(t);\n    return e > -1 ? this.deleteIndex(e) : !1;\n  }\n  // 入队\n  enqueue(t) {\n    if (this.length() < this.limit) {\n      this.queue.push(t);\n      return;\n    }\n    switch (this.overflow) {\n      case Ts.EXPAND:\n        this.limit *= 2, this.queue.push(t);\n        break;\n      case Ts.SLIDE:\n        this.deleteIndex(0), this.queue.push(t);\n        break;\n      case Ts.THROW:\n        throw new Error(`Queue limit(${this.limit}) overflow!`);\n    }\n  }\n  push(t) {\n    this.enqueue(t);\n  }\n  put(t) {\n    this.enqueue(t);\n  }\n  // 出队\n  dequeue() {\n    return this.queue.shift();\n  }\n  pop() {\n    return this.dequeue();\n  }\n  take() {\n    return this.dequeue();\n  }\n  // 获取队顶对象\n  peek() {\n    return this.queue[0];\n  }\n  // 获取对象\n  index(t) {\n    return this.queue[t];\n  }\n  // 全部出队\n  clear() {\n    this.queue = [];\n  }\n  // 全部出队\n  flush() {\n    const t = [];\n    let e;\n    for (; e = this.dequeue(); )\n      t.push(e);\n    return t;\n  }\n}\nconst sf = (n) => new ef(n, Ts.EXPAND), No = {\n  SLIDE: 1,\n  EXPAND: 2\n};\nclass nf {\n  size;\n  table;\n  objectSignature;\n  overflow;\n  ttl;\n  constructor(t) {\n    this.table = new Array(t?.size || 137), this.size = this.table.length, this.objectSignature = t?.objectSignature || ((e) => String(e)), this.overflow = t?.overflow || No.EXPAND, this.ttl = t?.ttl || 6e4;\n  }\n  // 散列函数，纯函数\n  hash(t) {\n    if (t == null || t == null)\n      throw new Error(\"HashTable can't put undefined or null\");\n    const e = this.objectSignature(t), s = 31;\n    let i = 0;\n    for (let r = 0, o = e.length; r < o; r++)\n      i += s * i + e.charCodeAt(r);\n    return i % this.size;\n  }\n  // 扩展散列表大小至一个更大的质数\n  resize() {\n    const t = this.size, e = Nu(this.size * 2), s = new Array(e), i = this.table;\n    this.table = s, this.size = e;\n    for (let r = 0, o = t; r < o; r++)\n      if (i[r] !== void 0 && !this.isOutdated(i[r])) {\n        let a = this.hash(i[r].value);\n        for (; s[a] !== void 0; )\n          a = (a + 1) % e;\n        s[a] = i[r];\n      }\n    i.length = 0;\n  }\n  put(t) {\n    this.size > 200 && Math.random() < 0.1 && this.clean();\n    let e = this.hash(t);\n    const s = e;\n    for (; this.table[e] !== void 0 && !this.isOutdated(this.table[e]); )\n      if (e = (e + 1) % this.size, s == e) {\n        if (this.overflow == No.EXPAND)\n          return this.resize(), this.put(t);\n        break;\n      }\n    return this.table[e] = { value: t, timestamp: Date.now() }, e;\n  }\n  // 性能瓶颈\n  // visitFn : return false to break loop\n  traverse(t) {\n    for (let e = 0, s = this.size; e < s; e++)\n      if (this.table[e] !== void 0 && !t(this.table[e].value, e))\n        return e;\n    return -1;\n  }\n  // filter : return false 删除\n  update(t) {\n    this.traverse((e, s) => (t(e) === !1 && this.deleteIndex(s), !0));\n  }\n  getIndex(t) {\n    let e = this.hash(t);\n    const s = e;\n    for (; this.table[e]?.value !== t; )\n      if (this.table[e] === void 0 || (this.isOutdated(this.table[e]) && (this.table[e] = void 0), e = (e + 1) % this.size, s == e))\n        return -1;\n    return this.isOutdated(this.table[e]) ? (this.table[e] = void 0, -1) : e;\n  }\n  has(t) {\n    return this.getIndex(t) >= 0;\n  }\n  // 性能瓶颈\n  find(t) {\n    const e = this.traverse((s) => !t(s));\n    return e >= 0 ? this.table[e]?.value : void 0;\n  }\n  deleteIndex(t) {\n    return t >= 0 && t < this.size && this.table[t] !== void 0 ? (this.table[t] = void 0, !0) : !1;\n  }\n  delete(t) {\n    return this.deleteIndex(this.getIndex(t));\n  }\n  clear() {\n    this.table = [];\n  }\n  // 数据是否过期\n  isOutdated(t) {\n    return Date.now() - t.timestamp > this.ttl;\n  }\n  // 性能瓶颈\n  // 供外部使用：主动清理过期数据\n  clean() {\n    for (let t = 0, e = this.size; t < e; t++)\n      this.table[t] !== void 0 && this.isOutdated(this.table[t]) && (this.table[t] = void 0);\n  }\n}\nclass Ws {\n  maps = /* @__PURE__ */ new Map();\n  constructor() {\n  }\n  // Object.entries(...);\n  // Object.fromEntries(...);\n  entries() {\n    return [...this.maps.entries()];\n  }\n  // Object.keys(...);\n  keys() {\n    return [...this.maps.keys()];\n  }\n  // Object.values(...);\n  values() {\n    return [...this.maps.values()];\n  }\n  json() {\n    const t = {};\n    for (const e of this.maps)\n      t[e[0]] = e[1];\n    return t;\n  }\n  get length() {\n    return this.maps.size;\n  }\n  set(t, e) {\n    this.maps.set(t, e);\n  }\n  get(t) {\n    return this.maps.get(t);\n  }\n  has(t) {\n    return this.maps.has(t);\n  }\n  // Map 对象是按插入的顺序返回键值\n  getEntryFromIndex(t) {\n    let e = -1;\n    for (const s of this.maps)\n      if (++e == t)\n        return s;\n  }\n  // 性能瓶颈\n  getEntry(t) {\n    for (const e of this.maps)\n      if (t(e[0], e[1]))\n        return e;\n  }\n  firstEntry() {\n    return this.getEntryFromIndex(0);\n  }\n  // 从头部删除\n  shift() {\n    const t = this.firstEntry();\n    if (t) {\n      const [e] = t;\n      this.delete(e);\n    }\n    return t;\n  }\n  delete(t) {\n    return this.maps.delete(t);\n  }\n  clear() {\n    this.maps.clear();\n  }\n  // filter : return false 删除\n  update(t) {\n    const e = this.entries();\n    for (let s = 0, i = e.length; s < i; s++) {\n      const [r, o] = e[s];\n      t(r, o) === !1 && this.delete(r);\n    }\n  }\n}\nfunction jg() {\n  vt.OPEN_LOG = !0;\n}\nfunction Hg() {\n  vt.OPEN_LOG = !1;\n}\nfunction Wg(n) {\n  vt.LOG_UPLOAD_FN = n;\n}\nfunction hh() {\n  return !!vt.OPEN_LOG;\n}\nfunction ch(n) {\n  vt.LOG_UPLOAD_FN && vt.LOG_UPLOAD_FN(n);\n}\nfunction ae(n) {\n  ch({ level: \"info\", msg: n }), hh() && (!console || typeof console != \"object\" || typeof console.log != \"function\" || console.log(n));\n}\nfunction kn(n) {\n  ch({ level: \"warn\", msg: n }), hh() && (!console || typeof console != \"object\" || typeof console.warn != \"function\" || console.warn(n));\n}\nconst Yo = () => {\n};\nfunction lh(n = 0, t) {\n  const e = t?.min || 300, s = t?.max || 6e4, i = t?.exponent || 2, r = t?.factor || 0.5;\n  let o = e * Math.pow(i, n);\n  if (r) {\n    const a = Math.random(), h = Math.floor(a * r * o);\n    o = Math.floor(a * 10) & 1 ? o + h : o - h;\n  }\n  return Math.min(o, s) | 0;\n}\nfunction Lr(n, t = 3, e, s) {\n  return async function(...i) {\n    const r = `retry(${n.name})(${i.map((a) => Ve(a))})`;\n    let o;\n    for (let a = 0; a < t; a++)\n      try {\n        return await n.call(s || this, ...i);\n      } catch (h) {\n        ae(`(${r}) 第 ${a + 1} 次尝试失败, retrying...`), o = h, await new Promise(\n          (c) => setTimeout(\n            c,\n            typeof e == \"number\" ? e : lh(a)\n            // : 300 * Math.pow(2, attempt)\n          )\n        );\n      }\n    throw ae(\n      `(${r}) 已 ${t} 次失败，不再重试。 Last error: ${Ve(\n        o\n      )}`\n    ), o;\n  };\n}\nfunction Rr(n, t = 60, e = new Ws(), s) {\n  return async function(...i) {\n    const r = `cache(${n.name})(${i.map((c) => Ve(c))})`, o = Date.now();\n    t && e.update((c, l) => o - l.timestamp < t * 1e3);\n    const a = Ar(i), h = e.get(a);\n    if (h) {\n      if (!t || o - h.timestamp < t * 1e3)\n        return ae(`${r} 击中缓存`), h.value;\n      e.delete(a);\n    }\n    try {\n      ae(`${r} 没有缓存, 尝试立即执行...`);\n      const c = await n.call(s || this, ...i);\n      return ae(`${r} 缓存设置成功`), e.set(a, {\n        value: c,\n        timestamp: Date.now()\n      }), c;\n    } catch (c) {\n      throw ae(`${r} 执行失败 : ${Ve(c)}`), c;\n    }\n  };\n}\nvar Wi = function(n, t) {\n  return Wi = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, s) {\n    e.__proto__ = s;\n  } || function(e, s) {\n    for (var i in s)\n      Object.prototype.hasOwnProperty.call(s, i) && (e[i] = s[i]);\n  }, Wi(n, t);\n};\nfunction Or(n, t) {\n  if (typeof t != \"function\" && t !== null)\n    throw new TypeError(\"Class extends value \" + String(t) + \" is not a constructor or null\");\n  Wi(n, t);\n  function e() {\n    this.constructor = n;\n  }\n  n.prototype = t === null ? Object.create(t) : (e.prototype = t.prototype, new e());\n}\nfunction Bo(n) {\n  var t = typeof Symbol == \"function\" && Symbol.iterator, e = t && n[t], s = 0;\n  if (e)\n    return e.call(n);\n  if (n && typeof n.length == \"number\")\n    return {\n      next: function() {\n        return n && s >= n.length && (n = void 0), { value: n && n[s++], done: !n };\n      }\n    };\n  throw new TypeError(t ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nfunction Zi(n, t) {\n  var e = typeof Symbol == \"function\" && n[Symbol.iterator];\n  if (!e)\n    return n;\n  var s = e.call(n), i, r = [], o;\n  try {\n    for (; (t === void 0 || t-- > 0) && !(i = s.next()).done; )\n      r.push(i.value);\n  } catch (a) {\n    o = { error: a };\n  } finally {\n    try {\n      i && !i.done && (e = s.return) && e.call(s);\n    } finally {\n      if (o)\n        throw o.error;\n    }\n  }\n  return r;\n}\nfunction Ji(n, t, e) {\n  if (e || arguments.length === 2)\n    for (var s = 0, i = t.length, r; s < i; s++)\n      (r || !(s in t)) && (r || (r = Array.prototype.slice.call(t, 0, s)), r[s] = t[s]);\n  return n.concat(r || Array.prototype.slice.call(t));\n}\nfunction ye(n) {\n  return typeof n == \"function\";\n}\nfunction rf(n) {\n  var t = function(s) {\n    Error.call(s), s.stack = new Error().stack;\n  }, e = n(t);\n  return e.prototype = Object.create(Error.prototype), e.prototype.constructor = e, e;\n}\nvar Ci = rf(function(n) {\n  return function(t) {\n    n(this), this.message = t ? t.length + ` errors occurred during unsubscription:\n` + t.map(function(e, s) {\n      return s + 1 + \") \" + e.toString();\n    }).join(`\n  `) : \"\", this.name = \"UnsubscriptionError\", this.errors = t;\n  };\n});\nfunction Xo(n, t) {\n  if (n) {\n    var e = n.indexOf(t);\n    0 <= e && n.splice(e, 1);\n  }\n}\nvar zr = function() {\n  function n(t) {\n    this.initialTeardown = t, this.closed = !1, this._parentage = null, this._finalizers = null;\n  }\n  return n.prototype.unsubscribe = function() {\n    var t, e, s, i, r;\n    if (!this.closed) {\n      this.closed = !0;\n      var o = this._parentage;\n      if (o)\n        if (this._parentage = null, Array.isArray(o))\n          try {\n            for (var a = Bo(o), h = a.next(); !h.done; h = a.next()) {\n              var c = h.value;\n              c.remove(this);\n            }\n          } catch (p) {\n            t = { error: p };\n          } finally {\n            try {\n              h && !h.done && (e = a.return) && e.call(a);\n            } finally {\n              if (t)\n                throw t.error;\n            }\n          }\n        else\n          o.remove(this);\n      var l = this.initialTeardown;\n      if (ye(l))\n        try {\n          l();\n        } catch (p) {\n          r = p instanceof Ci ? p.errors : [p];\n        }\n      var u = this._finalizers;\n      if (u) {\n        this._finalizers = null;\n        try {\n          for (var d = Bo(u), f = d.next(); !f.done; f = d.next()) {\n            var m = f.value;\n            try {\n              Fo(m);\n            } catch (p) {\n              r = r ?? [], p instanceof Ci ? r = Ji(Ji([], Zi(r)), Zi(p.errors)) : r.push(p);\n            }\n          }\n        } catch (p) {\n          s = { error: p };\n        } finally {\n          try {\n            f && !f.done && (i = d.return) && i.call(d);\n          } finally {\n            if (s)\n              throw s.error;\n          }\n        }\n      }\n      if (r)\n        throw new Ci(r);\n    }\n  }, n.prototype.add = function(t) {\n    var e;\n    if (t && t !== this)\n      if (this.closed)\n        Fo(t);\n      else {\n        if (t instanceof n) {\n          if (t.closed || t._hasParent(this))\n            return;\n          t._addParent(this);\n        }\n        (this._finalizers = (e = this._finalizers) !== null && e !== void 0 ? e : []).push(t);\n      }\n  }, n.prototype._hasParent = function(t) {\n    var e = this._parentage;\n    return e === t || Array.isArray(e) && e.includes(t);\n  }, n.prototype._addParent = function(t) {\n    var e = this._parentage;\n    this._parentage = Array.isArray(e) ? (e.push(t), e) : e ? [e, t] : t;\n  }, n.prototype._removeParent = function(t) {\n    var e = this._parentage;\n    e === t ? this._parentage = null : Array.isArray(e) && Xo(e, t);\n  }, n.prototype.remove = function(t) {\n    var e = this._finalizers;\n    e && Xo(e, t), t instanceof n && t._removeParent(this);\n  }, n.EMPTY = function() {\n    var t = new n();\n    return t.closed = !0, t;\n  }(), n;\n}();\nzr.EMPTY;\nfunction uh(n) {\n  return n instanceof zr || n && \"closed\" in n && ye(n.remove) && ye(n.add) && ye(n.unsubscribe);\n}\nfunction Fo(n) {\n  ye(n) ? n() : n.unsubscribe();\n}\nvar fh = {\n  onUnhandledError: null,\n  onStoppedNotification: null,\n  Promise: void 0,\n  useDeprecatedSynchronousErrorHandling: !1,\n  useDeprecatedNextContext: !1\n}, of = {\n  setTimeout: function(n, t) {\n    for (var e = [], s = 2; s < arguments.length; s++)\n      e[s - 2] = arguments[s];\n    return setTimeout.apply(void 0, Ji([n, t], Zi(e)));\n  },\n  clearTimeout: function(n) {\n    return clearTimeout(n);\n  },\n  delegate: void 0\n};\nfunction af(n) {\n  of.setTimeout(function() {\n    throw n;\n  });\n}\nfunction Uo() {\n}\nfunction hf(n) {\n  n();\n}\nvar Nr = function(n) {\n  Or(t, n);\n  function t(e) {\n    var s = n.call(this) || this;\n    return s.isStopped = !1, e ? (s.destination = e, uh(e) && e.add(s)) : s.destination = ff, s;\n  }\n  return t.create = function(e, s, i) {\n    return new Ki(e, s, i);\n  }, t.prototype.next = function(e) {\n    this.isStopped || this._next(e);\n  }, t.prototype.error = function(e) {\n    this.isStopped || (this.isStopped = !0, this._error(e));\n  }, t.prototype.complete = function() {\n    this.isStopped || (this.isStopped = !0, this._complete());\n  }, t.prototype.unsubscribe = function() {\n    this.closed || (this.isStopped = !0, n.prototype.unsubscribe.call(this), this.destination = null);\n  }, t.prototype._next = function(e) {\n    this.destination.next(e);\n  }, t.prototype._error = function(e) {\n    try {\n      this.destination.error(e);\n    } finally {\n      this.unsubscribe();\n    }\n  }, t.prototype._complete = function() {\n    try {\n      this.destination.complete();\n    } finally {\n      this.unsubscribe();\n    }\n  }, t;\n}(zr), cf = Function.prototype.bind;\nfunction Ei(n, t) {\n  return cf.call(n, t);\n}\nvar lf = function() {\n  function n(t) {\n    this.partialObserver = t;\n  }\n  return n.prototype.next = function(t) {\n    var e = this.partialObserver;\n    if (e.next)\n      try {\n        e.next(t);\n      } catch (s) {\n        gn(s);\n      }\n  }, n.prototype.error = function(t) {\n    var e = this.partialObserver;\n    if (e.error)\n      try {\n        e.error(t);\n      } catch (s) {\n        gn(s);\n      }\n    else\n      gn(t);\n  }, n.prototype.complete = function() {\n    var t = this.partialObserver;\n    if (t.complete)\n      try {\n        t.complete();\n      } catch (e) {\n        gn(e);\n      }\n  }, n;\n}(), Ki = function(n) {\n  Or(t, n);\n  function t(e, s, i) {\n    var r = n.call(this) || this, o;\n    if (ye(e) || !e)\n      o = {\n        next: e ?? void 0,\n        error: s ?? void 0,\n        complete: i ?? void 0\n      };\n    else {\n      var a;\n      r && fh.useDeprecatedNextContext ? (a = Object.create(e), a.unsubscribe = function() {\n        return r.unsubscribe();\n      }, o = {\n        next: e.next && Ei(e.next, a),\n        error: e.error && Ei(e.error, a),\n        complete: e.complete && Ei(e.complete, a)\n      }) : o = e;\n    }\n    return r.destination = new lf(o), r;\n  }\n  return t;\n}(Nr);\nfunction gn(n) {\n  af(n);\n}\nfunction uf(n) {\n  throw n;\n}\nvar ff = {\n  closed: !0,\n  next: Uo,\n  error: uf,\n  complete: Uo\n}, df = function() {\n  return typeof Symbol == \"function\" && Symbol.observable || \"@@observable\";\n}();\nfunction mf(n) {\n  return n;\n}\nfunction pf(n) {\n  return n.length === 0 ? mf : n.length === 1 ? n[0] : function(t) {\n    return n.reduce(function(e, s) {\n      return s(e);\n    }, t);\n  };\n}\n(function() {\n  function n(t) {\n    t && (this._subscribe = t);\n  }\n  return n.prototype.lift = function(t) {\n    var e = new n();\n    return e.source = this, e.operator = t, e;\n  }, n.prototype.subscribe = function(t, e, s) {\n    var i = this, r = yf(t) ? t : new Ki(t, e, s);\n    return hf(function() {\n      var o = i, a = o.operator, h = o.source;\n      r.add(a ? a.call(r, h) : h ? i._subscribe(r) : i._trySubscribe(r));\n    }), r;\n  }, n.prototype._trySubscribe = function(t) {\n    try {\n      return this._subscribe(t);\n    } catch (e) {\n      t.error(e);\n    }\n  }, n.prototype.forEach = function(t, e) {\n    var s = this;\n    return e = Go(e), new e(function(i, r) {\n      var o = new Ki({\n        next: function(a) {\n          try {\n            t(a);\n          } catch (h) {\n            r(h), o.unsubscribe();\n          }\n        },\n        error: r,\n        complete: i\n      });\n      s.subscribe(o);\n    });\n  }, n.prototype._subscribe = function(t) {\n    var e;\n    return (e = this.source) === null || e === void 0 ? void 0 : e.subscribe(t);\n  }, n.prototype[df] = function() {\n    return this;\n  }, n.prototype.pipe = function() {\n    for (var t = [], e = 0; e < arguments.length; e++)\n      t[e] = arguments[e];\n    return pf(t)(this);\n  }, n.prototype.toPromise = function(t) {\n    var e = this;\n    return t = Go(t), new t(function(s, i) {\n      var r;\n      e.subscribe(function(o) {\n        return r = o;\n      }, function(o) {\n        return i(o);\n      }, function() {\n        return s(r);\n      });\n    });\n  }, n.create = function(t) {\n    return new n(t);\n  }, n;\n})();\nfunction Go(n) {\n  var t;\n  return (t = n ?? fh.Promise) !== null && t !== void 0 ? t : Promise;\n}\nfunction gf(n) {\n  return n && ye(n.next) && ye(n.error) && ye(n.complete);\n}\nfunction yf(n) {\n  return n && n instanceof Nr || gf(n) && uh(n);\n}\n(function(n) {\n  Or(t, n);\n  function t(e, s, i, r, o, a) {\n    var h = n.call(this, e) || this;\n    return h.onFinalize = o, h.shouldUnsubscribe = a, h._next = s ? function(c) {\n      try {\n        s(c);\n      } catch (l) {\n        e.error(l);\n      }\n    } : n.prototype._next, h._error = r ? function(c) {\n      try {\n        r(c);\n      } catch (l) {\n        e.error(l);\n      } finally {\n        this.unsubscribe();\n      }\n    } : n.prototype._error, h._complete = i ? function() {\n      try {\n        i();\n      } catch (c) {\n        e.error(c);\n      } finally {\n        this.unsubscribe();\n      }\n    } : n.prototype._complete, h;\n  }\n  return t.prototype.unsubscribe = function() {\n    var e;\n    if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n      var s = this.closed;\n      n.prototype.unsubscribe.call(this), !s && ((e = this.onFinalize) === null || e === void 0 || e.call(this));\n    }\n  }, t;\n})(Nr);\nclass xf extends Error {\n  name;\n  response;\n  statusCode;\n  constructor(t, e) {\n    super(t), this.name = \"HttpError\", this.response = e, this.statusCode = e.status;\n  }\n  toJSON() {\n    return {\n      name: this.name,\n      message: this.message,\n      stack: this.stack,\n      response: this.response,\n      statusCode: this.statusCode\n    };\n  }\n}\nlet Os;\nfunction Te(n) {\n  Os = n, n(), Os = null;\n}\nclass wf {\n  subscribers = /* @__PURE__ */ new Set();\n  add() {\n    Os && !this.subscribers.has(Os) && this.subscribers.add(Os);\n  }\n  notify(t) {\n    this.subscribers.forEach((e) => e(t));\n  }\n}\nconst Vo = /* @__PURE__ */ new WeakMap();\nfunction Pi(n, t) {\n  let e = Vo.get(n);\n  e || (e = /* @__PURE__ */ new Map(), Vo.set(n, e));\n  let s = e.get(t);\n  return s || (s = new wf(), e.set(t, s)), s;\n}\nconst Yr = dh;\nfunction dh(n, t) {\n  if (!An(n))\n    return n;\n  const e = typeof t?.deep == \"boolean\" ? t?.deep : !0, s = t?.path || \"\", i = t?.callback, r = {\n    // 拦截对象属性的读取\n    // target 目标对象、key 键值、receiver 当前proxy实例\n    get(o, a, h) {\n      const c = s ? `${s}.${String(a)}` : String(a);\n      let l = Reflect.get(o, a, h);\n      const u = Pi(o, a);\n      if (e && An(l) && !(\"isYZProxy\" in l)) {\n        const d = dh(l, {\n          deep: !0,\n          path: c,\n          callback: i\n        });\n        Array.isArray(l) && (d.YZProxyArrayDep = u), l = d;\n      }\n      return u.add(), l;\n    },\n    // 拦截对象属性的设置\n    // target 目标对象、key 键值、value 值、receiver 当前proxy实例\n    set(o, a, h, c) {\n      const l = Reflect.get(o, a, c), u = Reflect.set(o, a, h, c);\n      if (a == \"YZProxyArrayDep\")\n        return u;\n      if (l !== h) {\n        let d;\n        Array.isArray(o) ? d = o.YZProxyArrayDep : d = Pi(o, a);\n        const f = { path: s ? `${s}.${String(a)}` : String(a), newValue: h, oldValue: l };\n        d.notify(f), i && i(f);\n      }\n      return u;\n    },\n    // 拦截 `delete proxy[key]` 的操作，返回一个布尔值\n    deleteProperty(o, a) {\n      if (!(a in o))\n        return !1;\n      let h = typeof a == \"symbol\" ? void 0 : o[a];\n      An(h) && (h = Array.isArray(h) ? [...h] : { ...h });\n      const c = Reflect.deleteProperty(o, a);\n      if (c) {\n        let l;\n        Array.isArray(o) ? l = o.YZProxyArrayDep : l = Pi(o, a);\n        const u = { path: s ? `${s}.${String(a)}` : String(a), newValue: void 0, oldValue: h };\n        l.notify(u), i && i(u);\n      }\n      return c;\n    },\n    // 拦截 `key in proxy` 的操作，返回一个布尔值\n    has(o, a) {\n      return a === \"isYZProxy\" || a in o;\n    }\n    // 拦截 `Object.keys(proxy)`、`for...in` 等循环，返回一个数组\n    // ownKeys(target) {\n    //   return [];\n    // },\n    // 拦截 `Object.getOwnPropertyDescriptor(proxy, key)`，返回属性的描述对象\n    // getOwnPropertyDescriptor(target, key) {\n    //   return {};\n    // },\n    // 拦截 `Object.defineProperty(proxy, key, desc`，返回一个布尔值\n    // defineProperty(target, key, desc) {\n    //   return true;\n    // },\n    // 拦截 `Object.preventExtensions(proxy)`，返回一个布尔值\n    // preventExtensions(target) {\n    //   return true;\n    // },\n    // 拦截 `Object.getPrototypeOf(proxy)`，返回一个对象\n    // getPrototypeOf(target) {\n    //   return {};\n    // },\n    // 拦截 `Object.isExtensible(proxy)`，返回一个布尔值\n    // isExtensible(target) {\n    //   return true;\n    // },\n    // 拦截 `Object.setPrototypeOf(proxy, proto)`，返回一个布尔值\n    // setPrototypeOf(target, proto) {\n    //   return true;\n    // },\n    // 拦截 Proxy 实例作为函数调用的操作\n    // apply(target, thisArg, args) {\n    //   return target.apply(thisArg, args);\n    // },\n    // 拦截 Proxy 实例作为构造函数调用的操作\n    // construct(target, args) {\n    //   return {};\n    // }\n  };\n  return new Proxy(n, r);\n}\nclass Qn {\n  events;\n  constructor() {\n    this.events = {};\n  }\n  isEmpty(t) {\n    return this.events[t] == null || this.events[t].length == 0;\n  }\n  has(t, e) {\n    return this.events[t] !== void 0 && this.events[t].indexOf(e) !== -1;\n  }\n  prependListener(t, e, s) {\n    return this.events[t] || (this.events[t] = []), this.events[t].unshift(\n      s ? e.bind(s) : e\n    ), this;\n  }\n  addListener(t, e, s) {\n    return this.events[t] || (this.events[t] = []), this.events[t].push(\n      s ? e.bind(s) : e\n    ), this;\n  }\n  on(t, e, s) {\n    return this.addListener(t, e, s), this;\n  }\n  removeListener(t, e) {\n    return this.events[t] && (this.events[t] = this.events[t].filter((s) => s !== e)), this;\n  }\n  off(t, e) {\n    return this.removeListener(t, e), this;\n  }\n  removeAllListeners(t) {\n    return t ? this.events[t] = [] : this.events = {}, this;\n  }\n  // 注意：handler 自己绑定 this\n  emit(t, ...e) {\n    return this.events[t] && this.events[t].slice(0).forEach((s) => {\n      s(...e);\n    }), this;\n  }\n  once(t, e, s) {\n    const i = (...r) => {\n      s ? e.apply(s, r) : e(...r), this.off(t, i);\n    };\n    return this.on(t, i), this;\n  }\n}\nfunction bf(n, t = (e, s) => e <= s) {\n  const e = n.length;\n  let s = Math.floor(e / 2);\n  for (; s > 0; ) {\n    for (let i = s; i < e; i++) {\n      const r = n[i];\n      let o = i;\n      for (; o >= s && !t(n[o - s], r); )\n        n[o] = n[o - s], o -= s;\n      n[o] = r;\n    }\n    s = Math.floor(s / 2);\n  }\n}\nfunction vf() {\n  const n = {};\n  return n.promise = new Promise((t, e) => {\n    n.resolve = t, n.reject = e;\n  }), n;\n}\nlet _f = 0;\nfunction mh(n) {\n  const t = vf();\n  let e = !1;\n  return {\n    name: n.name || String(++_f),\n    deadline: typeof n.deadline == \"number\" ? Math.max(n.deadline, 0) : -1,\n    run: async () => {\n      if (!e) {\n        e = !0;\n        try {\n          let s;\n          const i = n.args || [];\n          n.thisArg ? s = await n.fn.call(n.thisArg, ...i) : s = await n.fn(...i), t.resolve(s);\n        } catch (s) {\n          t.reject(s);\n        }\n      }\n    },\n    result: () => t.promise\n  };\n}\nclass Sf {\n  // 任务队列\n  queue;\n  // 是否暂停执行任务队列\n  suspend = !1;\n  // 执行信号\n  // Incrementing adds a lock\n  // Decrementing releases a lock\n  semaphore = 0;\n  // 并发执行数量 或 并发等待结果数量\n  concurrency = 1;\n  // 剩余可执行时间，毫秒\n  // -1 不考虑剩余可执行时间\n  // =0 自动暂停执行任务队列\n  timeRemaining = -1;\n  // 超时任务检查id\n  timeoutId;\n  // queue = createNoneRingQueue() : 不缓存数据\n  // queue = createFixedRingQueue(10) : 超出缓存空间时，抛错\n  // queue = createDroppingRingQueue(10) : 超出缓存空间时，忽略新数据\n  // queue = createSlidingRingQueue(10) : 超出缓存空间时，删除旧数据\n  // queue = createExpandingRingQueue(10) : 超出缓存空间时，扩大缓存空间\n  constructor(t) {\n    this.queue = t?.queue || sf(10), typeof t?.concurrency == \"number\" && (this.concurrency = Math.max(t?.concurrency, 1)), typeof t?.timeRemaining == \"number\" && this.setTimeRemaining(t.timeRemaining);\n  }\n  setTimeRemaining(t) {\n    this.timeRemaining = Math.max(0, t);\n  }\n  increaseTimeRemaining(t, e = !1) {\n    this.timeRemaining !== -1 ? this.setTimeRemaining(this.timeRemaining + t) : e && this.setTimeRemaining(t);\n  }\n  decreaseTimeRemaining(t) {\n    this.timeRemaining !== -1 && this.setTimeRemaining(this.timeRemaining - t);\n  }\n  // 执行任务，不管执行结果\n  _exec(t, e = !0) {\n    const s = Gt();\n    try {\n      this.semaphore++, t.run();\n    } finally {\n      this.semaphore--, e && (this.decreaseTimeRemaining(Gt() - s), this._flush());\n    }\n  }\n  // 执行队列\n  _flush() {\n    for (; !this.suspend && this.semaphore < this.concurrency && (this.timeRemaining == -1 || this.timeRemaining > 0); ) {\n      const t = this.queue.dequeue();\n      if (!t)\n        break;\n      this._exec(t);\n    }\n    this._timeout();\n  }\n  // 超时任务检查\n  _timeout(t = 0, e = 0) {\n    clearTimeout(this.timeoutId), this.timeoutId = setTimeout(() => {\n      if (!(this.suspend || this.semaphore > 0 || !this.queue.length)) {\n        for (let s = 0; s < this.queue.length(); ) {\n          const i = this.queue.index(s);\n          if (!i)\n            break;\n          i.deadline != -1 && i.deadline <= Gt() ? (this._exec(i, !1), this.queue.deleteIndex(s)) : s++;\n        }\n        this.queue.length() && (this.timeoutId = setTimeout(\n          () => {\n            this._timeout(t, ++e);\n          },\n          300 * Math.pow(2, e)\n          // wait a bit longer between each retry\n        ));\n      }\n    }, t);\n  }\n  // 暂停\n  pause() {\n    this.suspend = !0;\n  }\n  // 恢复\n  resume() {\n    this.suspend = !1, this._flush();\n  }\n  addTask(t) {\n    this.queue.delete((e) => e.name == t.name), this.queue.enqueue(t);\n  }\n  // 立即触发执行\n  immediately(t) {\n    this._exec(t), this._flush();\n  }\n  // 立即顺序触发执行队列\n  asap(t) {\n    this.addTask(t), this._flush();\n  }\n  // 有空余时间再执行队列\n  idleCallback(t) {\n    this.setTimeRemaining(t.timeRemaining()), this._flush();\n  }\n  clear() {\n    this.queue.clear();\n  }\n}\nclass ph extends Sf {\n  // 上个任务的执行结果\n  lastResult;\n  constructor(t) {\n    super(t);\n  }\n  // 执行任务\n  _exec(t, e = !0) {\n    const s = Gt();\n    try {\n      this.semaphore++, t.run();\n    } finally {\n      t.result().then((i) => {\n        this.lastResult = i;\n      }).finally(() => {\n        this.semaphore--, e && (this.decreaseTimeRemaining(Gt() - s), this._flush());\n      });\n    }\n  }\n}\nclass Cf {\n  schedule;\n  closeLastDialog;\n  constructor(t) {\n    this.schedule = new ph(t);\n  }\n  // dialog 自己绑定this\n  // 将 Dialog 放入队列，依次关闭后显示\n  asap(t, e) {\n    const s = mh({\n      fn: (i) => new Promise((r) => {\n        this.closeLastDialog = t({\n          ...i,\n          onClose: () => {\n            this.closeLastDialog = void 0, i?.onClose?.(), r();\n          }\n        });\n      }),\n      args: [e]\n    });\n    return this.schedule.asap(s), s;\n  }\n  // 强制显示 Dialog\n  immediately(t, e) {\n    return this.clear(), this.asap(t, e);\n  }\n  // 强制关闭上一个 Dialog\n  closeLast() {\n    this.closeLastDialog && this.closeLastDialog();\n  }\n  // 丢弃所有未处理的 Dialog\n  clear() {\n    this.schedule.clear(), this.closeLast();\n  }\n}\nfunction gh(n) {\n  const t = typeof n.immutable == \"boolean\" ? n.immutable : !0, e = n.initState || {};\n  let s = n.reducer;\n  if (n.enhancer)\n    return n.enhancer(gh)({ reducer: s, initState: e, immutable: t });\n  const i = [], r = (c) => (i.push(c), () => {\n    const l = i.indexOf(c);\n    l > -1 && i.splice(l, 1);\n  });\n  let o = e;\n  t || (o = Yr(o, {\n    callback: (c) => {\n      i.forEach((l) => l(c));\n    }\n  }));\n  const a = (c) => {\n    if (t) {\n      const l = o;\n      o = s(o, c);\n      const u = ih(l, o);\n      for (const d of u)\n        i.forEach((f) => f(d));\n    } else\n      s(o, c);\n  }, h = (c) => {\n    s = c, a({ type: \"INIT\" });\n  };\n  return a({ type: \"INIT\" }), {\n    getState: () => o,\n    dispatch: a,\n    subscribe: r,\n    replaceReducer: h\n  };\n}\nfunction Ef(n = window.location.href) {\n  try {\n    return new URL(n);\n  } catch {\n    const t = \"(?<protocol>https?:)\", e = \"(?<host>(?<hostname>[^/#?:]+)(?::(?<port>\\\\d+))?)\", s = \"(?<pathname>(?:\\\\/[^/#?]+)*\\\\/?)\", i = \"(?<search>(?:\\\\?[^#]*)?)\", r = \"(?<hash>(?:#.*)?)\", o = new RegExp(`^${t}//${e}${s}${i}${r}$`).exec(n);\n    return {\n      href: n,\n      protocol: o?.groups?.protocol || \"\",\n      host: o?.groups?.host || \"\",\n      hostname: o?.groups?.hostname || \"\",\n      port: o?.groups?.port || \"\",\n      pathname: o?.groups?.pathname || \"\",\n      search: o?.groups?.search || \"\",\n      hash: o?.groups?.hash || \"\"\n    };\n  }\n}\nfunction Pf(n = window.location.href) {\n  const t = Ef(n), e = t.href.indexOf(t.hash);\n  return t.hash && e >= 0 ? t.href.substring(0, e) : t.href;\n}\nfunction Tf(n, t) {\n  return n + t.replace(/^[&?]/, n.indexOf(\"?\") >= 0 ? \"&\" : \"?\");\n}\nfunction Mf(n) {\n  return \"?\" + Object.entries(n).map(([t, e]) => `${encodeURIComponent(t)}=${encodeURIComponent(e)}`).join(\"&\");\n}\nfunction Af(n) {\n  return \"?\" + [...n.entries()].map(\n    (t) => encodeURIComponent(t[0]) + \"=\" + encodeURIComponent(t[1] instanceof File ? t[1].name : t[1])\n  ).join(\"&\");\n}\nfunction yh(n, t) {\n  return function() {\n    return n.apply(t, arguments);\n  };\n}\nconst { toString: If } = Object.prototype, { getPrototypeOf: Br } = Object, ti = ((n) => (t) => {\n  const e = If.call(t);\n  return n[e] || (n[e] = e.slice(8, -1).toLowerCase());\n})(/* @__PURE__ */ Object.create(null)), ee = (n) => (n = n.toLowerCase(), (t) => ti(t) === n), ei = (n) => (t) => typeof t === n, { isArray: ms } = Array, Fs = ei(\"undefined\");\nfunction kf(n) {\n  return n !== null && !Fs(n) && n.constructor !== null && !Fs(n.constructor) && zt(n.constructor.isBuffer) && n.constructor.isBuffer(n);\n}\nconst xh = ee(\"ArrayBuffer\");\nfunction Df(n) {\n  let t;\n  return typeof ArrayBuffer < \"u\" && ArrayBuffer.isView ? t = ArrayBuffer.isView(n) : t = n && n.buffer && xh(n.buffer), t;\n}\nconst Lf = ei(\"string\"), zt = ei(\"function\"), wh = ei(\"number\"), si = (n) => n !== null && typeof n == \"object\", Rf = (n) => n === !0 || n === !1, Dn = (n) => {\n  if (ti(n) !== \"object\")\n    return !1;\n  const t = Br(n);\n  return (t === null || t === Object.prototype || Object.getPrototypeOf(t) === null) && !(Symbol.toStringTag in n) && !(Symbol.iterator in n);\n}, Of = ee(\"Date\"), zf = ee(\"File\"), Nf = ee(\"Blob\"), Yf = ee(\"FileList\"), Bf = (n) => si(n) && zt(n.pipe), Xf = (n) => {\n  let t;\n  return n && (typeof FormData == \"function\" && n instanceof FormData || zt(n.append) && ((t = ti(n)) === \"formdata\" || // detect form-data instance\n  t === \"object\" && zt(n.toString) && n.toString() === \"[object FormData]\"));\n}, Ff = ee(\"URLSearchParams\"), [Uf, Gf, Vf, $f] = [\"ReadableStream\", \"Request\", \"Response\", \"Headers\"].map(ee), qf = (n) => n.trim ? n.trim() : n.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\");\nfunction Zs(n, t, { allOwnKeys: e = !1 } = {}) {\n  if (n === null || typeof n > \"u\")\n    return;\n  let s, i;\n  if (typeof n != \"object\" && (n = [n]), ms(n))\n    for (s = 0, i = n.length; s < i; s++)\n      t.call(null, n[s], s, n);\n  else {\n    const r = e ? Object.getOwnPropertyNames(n) : Object.keys(n), o = r.length;\n    let a;\n    for (s = 0; s < o; s++)\n      a = r[s], t.call(null, n[a], a, n);\n  }\n}\nfunction bh(n, t) {\n  t = t.toLowerCase();\n  const e = Object.keys(n);\n  let s = e.length, i;\n  for (; s-- > 0; )\n    if (i = e[s], t === i.toLowerCase())\n      return i;\n  return null;\n}\nconst Xe = (() => typeof globalThis < \"u\" ? globalThis : typeof self < \"u\" ? self : typeof window < \"u\" ? window : global)(), vh = (n) => !Fs(n) && n !== Xe;\nfunction Qi() {\n  const { caseless: n } = vh(this) && this || {}, t = {}, e = (s, i) => {\n    const r = n && bh(t, i) || i;\n    Dn(t[r]) && Dn(s) ? t[r] = Qi(t[r], s) : Dn(s) ? t[r] = Qi({}, s) : ms(s) ? t[r] = s.slice() : t[r] = s;\n  };\n  for (let s = 0, i = arguments.length; s < i; s++)\n    arguments[s] && Zs(arguments[s], e);\n  return t;\n}\nconst jf = (n, t, e, { allOwnKeys: s } = {}) => (Zs(t, (i, r) => {\n  e && zt(i) ? n[r] = yh(i, e) : n[r] = i;\n}, { allOwnKeys: s }), n), Hf = (n) => (n.charCodeAt(0) === 65279 && (n = n.slice(1)), n), Wf = (n, t, e, s) => {\n  n.prototype = Object.create(t.prototype, s), n.prototype.constructor = n, Object.defineProperty(n, \"super\", {\n    value: t.prototype\n  }), e && Object.assign(n.prototype, e);\n}, Zf = (n, t, e, s) => {\n  let i, r, o;\n  const a = {};\n  if (t = t || {}, n == null)\n    return t;\n  do {\n    for (i = Object.getOwnPropertyNames(n), r = i.length; r-- > 0; )\n      o = i[r], (!s || s(o, n, t)) && !a[o] && (t[o] = n[o], a[o] = !0);\n    n = e !== !1 && Br(n);\n  } while (n && (!e || e(n, t)) && n !== Object.prototype);\n  return t;\n}, Jf = (n, t, e) => {\n  n = String(n), (e === void 0 || e > n.length) && (e = n.length), e -= t.length;\n  const s = n.indexOf(t, e);\n  return s !== -1 && s === e;\n}, Kf = (n) => {\n  if (!n)\n    return null;\n  if (ms(n))\n    return n;\n  let t = n.length;\n  if (!wh(t))\n    return null;\n  const e = new Array(t);\n  for (; t-- > 0; )\n    e[t] = n[t];\n  return e;\n}, Qf = ((n) => (t) => n && t instanceof n)(typeof Uint8Array < \"u\" && Br(Uint8Array)), td = (n, t) => {\n  const e = (n && n[Symbol.iterator]).call(n);\n  let s;\n  for (; (s = e.next()) && !s.done; ) {\n    const i = s.value;\n    t.call(n, i[0], i[1]);\n  }\n}, ed = (n, t) => {\n  let e;\n  const s = [];\n  for (; (e = n.exec(t)) !== null; )\n    s.push(e);\n  return s;\n}, sd = ee(\"HTMLFormElement\"), nd = (n) => n.toLowerCase().replace(\n  /[-_\\s]([a-z\\d])(\\w*)/g,\n  function(t, e, s) {\n    return e.toUpperCase() + s;\n  }\n), $o = (({ hasOwnProperty: n }) => (t, e) => n.call(t, e))(Object.prototype), id = ee(\"RegExp\"), _h = (n, t) => {\n  const e = Object.getOwnPropertyDescriptors(n), s = {};\n  Zs(e, (i, r) => {\n    let o;\n    (o = t(i, r, n)) !== !1 && (s[r] = o || i);\n  }), Object.defineProperties(n, s);\n}, rd = (n) => {\n  _h(n, (t, e) => {\n    if (zt(n) && [\"arguments\", \"caller\", \"callee\"].indexOf(e) !== -1)\n      return !1;\n    const s = n[e];\n    if (zt(s)) {\n      if (t.enumerable = !1, \"writable\" in t) {\n        t.writable = !1;\n        return;\n      }\n      t.set || (t.set = () => {\n        throw Error(\"Can not rewrite read-only method '\" + e + \"'\");\n      });\n    }\n  });\n}, od = (n, t) => {\n  const e = {}, s = (i) => {\n    i.forEach((r) => {\n      e[r] = !0;\n    });\n  };\n  return ms(n) ? s(n) : s(String(n).split(t)), e;\n}, ad = () => {\n}, hd = (n, t) => n != null && Number.isFinite(n = +n) ? n : t;\nfunction cd(n) {\n  return !!(n && zt(n.append) && n[Symbol.toStringTag] === \"FormData\" && n[Symbol.iterator]);\n}\nconst ld = (n) => {\n  const t = new Array(10), e = (s, i) => {\n    if (si(s)) {\n      if (t.indexOf(s) >= 0)\n        return;\n      if (!(\"toJSON\" in s)) {\n        t[i] = s;\n        const r = ms(s) ? [] : {};\n        return Zs(s, (o, a) => {\n          const h = e(o, i + 1);\n          !Fs(h) && (r[a] = h);\n        }), t[i] = void 0, r;\n      }\n    }\n    return s;\n  };\n  return e(n, 0);\n}, ud = ee(\"AsyncFunction\"), fd = (n) => n && (si(n) || zt(n)) && zt(n.then) && zt(n.catch), Sh = ((n, t) => n ? setImmediate : t ? ((e, s) => (Xe.addEventListener(\"message\", ({ source: i, data: r }) => {\n  i === Xe && r === e && s.length && s.shift()();\n}, !1), (i) => {\n  s.push(i), Xe.postMessage(e, \"*\");\n}))(`axios@${Math.random()}`, []) : (e) => setTimeout(e))(\n  typeof setImmediate == \"function\",\n  zt(Xe.postMessage)\n), dd = typeof queueMicrotask < \"u\" ? queueMicrotask.bind(Xe) : typeof process < \"u\" && process.nextTick || Sh, M = {\n  isArray: ms,\n  isArrayBuffer: xh,\n  isBuffer: kf,\n  isFormData: Xf,\n  isArrayBufferView: Df,\n  isString: Lf,\n  isNumber: wh,\n  isBoolean: Rf,\n  isObject: si,\n  isPlainObject: Dn,\n  isReadableStream: Uf,\n  isRequest: Gf,\n  isResponse: Vf,\n  isHeaders: $f,\n  isUndefined: Fs,\n  isDate: Of,\n  isFile: zf,\n  isBlob: Nf,\n  isRegExp: id,\n  isFunction: zt,\n  isStream: Bf,\n  isURLSearchParams: Ff,\n  isTypedArray: Qf,\n  isFileList: Yf,\n  forEach: Zs,\n  merge: Qi,\n  extend: jf,\n  trim: qf,\n  stripBOM: Hf,\n  inherits: Wf,\n  toFlatObject: Zf,\n  kindOf: ti,\n  kindOfTest: ee,\n  endsWith: Jf,\n  toArray: Kf,\n  forEachEntry: td,\n  matchAll: ed,\n  isHTMLForm: sd,\n  hasOwnProperty: $o,\n  hasOwnProp: $o,\n  // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors: _h,\n  freezeMethods: rd,\n  toObjectSet: od,\n  toCamelCase: nd,\n  noop: ad,\n  toFiniteNumber: hd,\n  findKey: bh,\n  global: Xe,\n  isContextDefined: vh,\n  isSpecCompliantForm: cd,\n  toJSONObject: ld,\n  isAsyncFn: ud,\n  isThenable: fd,\n  setImmediate: Sh,\n  asap: dd\n};\nfunction U(n, t, e, s, i) {\n  Error.call(this), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack, this.message = n, this.name = \"AxiosError\", t && (this.code = t), e && (this.config = e), s && (this.request = s), i && (this.response = i, this.status = i.status ? i.status : null);\n}\nM.inherits(U, Error, {\n  toJSON: function() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: M.toJSONObject(this.config),\n      code: this.code,\n      status: this.status\n    };\n  }\n});\nconst Ch = U.prototype, Eh = {};\n[\n  \"ERR_BAD_OPTION_VALUE\",\n  \"ERR_BAD_OPTION\",\n  \"ECONNABORTED\",\n  \"ETIMEDOUT\",\n  \"ERR_NETWORK\",\n  \"ERR_FR_TOO_MANY_REDIRECTS\",\n  \"ERR_DEPRECATED\",\n  \"ERR_BAD_RESPONSE\",\n  \"ERR_BAD_REQUEST\",\n  \"ERR_CANCELED\",\n  \"ERR_NOT_SUPPORT\",\n  \"ERR_INVALID_URL\"\n  // eslint-disable-next-line func-names\n].forEach((n) => {\n  Eh[n] = { value: n };\n});\nObject.defineProperties(U, Eh);\nObject.defineProperty(Ch, \"isAxiosError\", { value: !0 });\nU.from = (n, t, e, s, i, r) => {\n  const o = Object.create(Ch);\n  return M.toFlatObject(n, o, function(a) {\n    return a !== Error.prototype;\n  }, (a) => a !== \"isAxiosError\"), U.call(o, n.message, t, e, s, i), o.cause = n, o.name = n.name, r && Object.assign(o, r), o;\n};\nconst md = null;\nfunction tr(n) {\n  return M.isPlainObject(n) || M.isArray(n);\n}\nfunction Ph(n) {\n  return M.endsWith(n, \"[]\") ? n.slice(0, -2) : n;\n}\nfunction qo(n, t, e) {\n  return n ? n.concat(t).map(function(s, i) {\n    return s = Ph(s), !e && i ? \"[\" + s + \"]\" : s;\n  }).join(e ? \".\" : \"\") : t;\n}\nfunction pd(n) {\n  return M.isArray(n) && !n.some(tr);\n}\nconst gd = M.toFlatObject(M, {}, null, function(n) {\n  return /^is[A-Z]/.test(n);\n});\nfunction ni(n, t, e) {\n  if (!M.isObject(n))\n    throw new TypeError(\"target must be an object\");\n  t = t || new FormData(), e = M.toFlatObject(e, {\n    metaTokens: !0,\n    dots: !1,\n    indexes: !1\n  }, !1, function(f, m) {\n    return !M.isUndefined(m[f]);\n  });\n  const s = e.metaTokens, i = e.visitor || c, r = e.dots, o = e.indexes, a = (e.Blob || typeof Blob < \"u\" && Blob) && M.isSpecCompliantForm(t);\n  if (!M.isFunction(i))\n    throw new TypeError(\"visitor must be a function\");\n  function h(f) {\n    if (f === null)\n      return \"\";\n    if (M.isDate(f))\n      return f.toISOString();\n    if (!a && M.isBlob(f))\n      throw new U(\"Blob is not supported. Use a Buffer instead.\");\n    return M.isArrayBuffer(f) || M.isTypedArray(f) ? a && typeof Blob == \"function\" ? new Blob([f]) : Buffer.from(f) : f;\n  }\n  function c(f, m, p) {\n    let S = f;\n    if (f && !p && typeof f == \"object\") {\n      if (M.endsWith(m, \"{}\"))\n        m = s ? m : m.slice(0, -2), f = JSON.stringify(f);\n      else if (M.isArray(f) && pd(f) || (M.isFileList(f) || M.endsWith(m, \"[]\")) && (S = M.toArray(f)))\n        return m = Ph(m), S.forEach(function(g, b) {\n          !(M.isUndefined(g) || g === null) && t.append(\n            // eslint-disable-next-line no-nested-ternary\n            o === !0 ? qo([m], b, r) : o === null ? m : m + \"[]\",\n            h(g)\n          );\n        }), !1;\n    }\n    return tr(f) ? !0 : (t.append(qo(p, m, r), h(f)), !1);\n  }\n  const l = [], u = Object.assign(gd, {\n    defaultVisitor: c,\n    convertValue: h,\n    isVisitable: tr\n  });\n  function d(f, m) {\n    if (!M.isUndefined(f)) {\n      if (l.indexOf(f) !== -1)\n        throw Error(\"Circular reference detected in \" + m.join(\".\"));\n      l.push(f), M.forEach(f, function(p, S) {\n        (!(M.isUndefined(p) || p === null) && i.call(\n          t,\n          p,\n          M.isString(S) ? S.trim() : S,\n          m,\n          u\n        )) === !0 && d(p, m ? m.concat(S) : [S]);\n      }), l.pop();\n    }\n  }\n  if (!M.isObject(n))\n    throw new TypeError(\"data must be an object\");\n  return d(n), t;\n}\nfunction jo(n) {\n  const t = {\n    \"!\": \"%21\",\n    \"'\": \"%27\",\n    \"(\": \"%28\",\n    \")\": \"%29\",\n    \"~\": \"%7E\",\n    \"%20\": \"+\",\n    \"%00\": \"\\0\"\n  };\n  return encodeURIComponent(n).replace(/[!'()~]|%20|%00/g, function(e) {\n    return t[e];\n  });\n}\nfunction Xr(n, t) {\n  this._pairs = [], n && ni(n, this, t);\n}\nconst Th = Xr.prototype;\nTh.append = function(n, t) {\n  this._pairs.push([n, t]);\n};\nTh.toString = function(n) {\n  const t = n ? function(e) {\n    return n.call(this, e, jo);\n  } : jo;\n  return this._pairs.map(function(e) {\n    return t(e[0]) + \"=\" + t(e[1]);\n  }, \"\").join(\"&\");\n};\nfunction yd(n) {\n  return encodeURIComponent(n).replace(/%3A/gi, \":\").replace(/%24/g, \"$\").replace(/%2C/gi, \",\").replace(/%20/g, \"+\").replace(/%5B/gi, \"[\").replace(/%5D/gi, \"]\");\n}\nfunction Mh(n, t, e) {\n  if (!t)\n    return n;\n  const s = e && e.encode || yd;\n  M.isFunction(e) && (e = {\n    serialize: e\n  });\n  const i = e && e.serialize;\n  let r;\n  if (i ? r = i(t, e) : r = M.isURLSearchParams(t) ? t.toString() : new Xr(t, e).toString(s), r) {\n    const o = n.indexOf(\"#\");\n    o !== -1 && (n = n.slice(0, o)), n += (n.indexOf(\"?\") === -1 ? \"?\" : \"&\") + r;\n  }\n  return n;\n}\nclass xd {\n  constructor() {\n    this.handlers = [];\n  }\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(t, e, s) {\n    return this.handlers.push({\n      fulfilled: t,\n      rejected: e,\n      synchronous: s ? s.synchronous : !1,\n      runWhen: s ? s.runWhen : null\n    }), this.handlers.length - 1;\n  }\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(t) {\n    this.handlers[t] && (this.handlers[t] = null);\n  }\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    this.handlers && (this.handlers = []);\n  }\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(t) {\n    M.forEach(this.handlers, function(e) {\n      e !== null && t(e);\n    });\n  }\n}\nconst Ho = xd, Ah = {\n  silentJSONParsing: !0,\n  forcedJSONParsing: !0,\n  clarifyTimeoutError: !1\n}, wd = typeof URLSearchParams < \"u\" ? URLSearchParams : Xr, bd = typeof FormData < \"u\" ? FormData : null, vd = typeof Blob < \"u\" ? Blob : null, _d = {\n  isBrowser: !0,\n  classes: {\n    URLSearchParams: wd,\n    FormData: bd,\n    Blob: vd\n  },\n  protocols: [\"http\", \"https\", \"file\", \"blob\", \"url\", \"data\"]\n}, Fr = typeof window < \"u\" && typeof document < \"u\", er = typeof navigator == \"object\" && navigator || void 0, Sd = Fr && (!er || [\"ReactNative\", \"NativeScript\", \"NS\"].indexOf(er.product) < 0), Cd = (() => typeof WorkerGlobalScope < \"u\" && // eslint-disable-next-line no-undef\nself instanceof WorkerGlobalScope && typeof self.importScripts == \"function\")(), Ed = Fr && window.location.href || \"http://localhost\", Pd = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  hasBrowserEnv: Fr,\n  hasStandardBrowserEnv: Sd,\n  hasStandardBrowserWebWorkerEnv: Cd,\n  navigator: er,\n  origin: Ed\n}, Symbol.toStringTag, { value: \"Module\" })), St = {\n  ...Pd,\n  ..._d\n};\nfunction Td(n, t) {\n  return ni(n, new St.classes.URLSearchParams(), Object.assign({\n    visitor: function(e, s, i, r) {\n      return St.isNode && M.isBuffer(e) ? (this.append(s, e.toString(\"base64\")), !1) : r.defaultVisitor.apply(this, arguments);\n    }\n  }, t));\n}\nfunction Md(n) {\n  return M.matchAll(/\\w+|\\[(\\w*)]/g, n).map((t) => t[0] === \"[]\" ? \"\" : t[1] || t[0]);\n}\nfunction Ad(n) {\n  const t = {}, e = Object.keys(n);\n  let s;\n  const i = e.length;\n  let r;\n  for (s = 0; s < i; s++)\n    r = e[s], t[r] = n[r];\n  return t;\n}\nfunction Ih(n) {\n  function t(e, s, i, r) {\n    let o = e[r++];\n    if (o === \"__proto__\")\n      return !0;\n    const a = Number.isFinite(+o), h = r >= e.length;\n    return o = !o && M.isArray(i) ? i.length : o, h ? (M.hasOwnProp(i, o) ? i[o] = [i[o], s] : i[o] = s, !a) : ((!i[o] || !M.isObject(i[o])) && (i[o] = []), t(e, s, i[o], r) && M.isArray(i[o]) && (i[o] = Ad(i[o])), !a);\n  }\n  if (M.isFormData(n) && M.isFunction(n.entries)) {\n    const e = {};\n    return M.forEachEntry(n, (s, i) => {\n      t(Md(s), i, e, 0);\n    }), e;\n  }\n  return null;\n}\nfunction Id(n, t, e) {\n  if (M.isString(n))\n    try {\n      return (t || JSON.parse)(n), M.trim(n);\n    } catch (s) {\n      if (s.name !== \"SyntaxError\")\n        throw s;\n    }\n  return (e || JSON.stringify)(n);\n}\nconst Ur = {\n  transitional: Ah,\n  adapter: [\"xhr\", \"http\", \"fetch\"],\n  transformRequest: [function(n, t) {\n    const e = t.getContentType() || \"\", s = e.indexOf(\"application/json\") > -1, i = M.isObject(n);\n    if (i && M.isHTMLForm(n) && (n = new FormData(n)), M.isFormData(n))\n      return s ? JSON.stringify(Ih(n)) : n;\n    if (M.isArrayBuffer(n) || M.isBuffer(n) || M.isStream(n) || M.isFile(n) || M.isBlob(n) || M.isReadableStream(n))\n      return n;\n    if (M.isArrayBufferView(n))\n      return n.buffer;\n    if (M.isURLSearchParams(n))\n      return t.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\", !1), n.toString();\n    let r;\n    if (i) {\n      if (e.indexOf(\"application/x-www-form-urlencoded\") > -1)\n        return Td(n, this.formSerializer).toString();\n      if ((r = M.isFileList(n)) || e.indexOf(\"multipart/form-data\") > -1) {\n        const o = this.env && this.env.FormData;\n        return ni(\n          r ? { \"files[]\": n } : n,\n          o && new o(),\n          this.formSerializer\n        );\n      }\n    }\n    return i || s ? (t.setContentType(\"application/json\", !1), Id(n)) : n;\n  }],\n  transformResponse: [function(n) {\n    const t = this.transitional || Ur.transitional, e = t && t.forcedJSONParsing, s = this.responseType === \"json\";\n    if (M.isResponse(n) || M.isReadableStream(n))\n      return n;\n    if (n && M.isString(n) && (e && !this.responseType || s)) {\n      const i = !(t && t.silentJSONParsing) && s;\n      try {\n        return JSON.parse(n);\n      } catch (r) {\n        if (i)\n          throw r.name === \"SyntaxError\" ? U.from(r, U.ERR_BAD_RESPONSE, this, null, this.response) : r;\n      }\n    }\n    return n;\n  }],\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n  xsrfCookieName: \"XSRF-TOKEN\",\n  xsrfHeaderName: \"X-XSRF-TOKEN\",\n  maxContentLength: -1,\n  maxBodyLength: -1,\n  env: {\n    FormData: St.classes.FormData,\n    Blob: St.classes.Blob\n  },\n  validateStatus: function(n) {\n    return n >= 200 && n < 300;\n  },\n  headers: {\n    common: {\n      Accept: \"application/json, text/plain, */*\",\n      \"Content-Type\": void 0\n    }\n  }\n};\nM.forEach([\"delete\", \"get\", \"head\", \"post\", \"put\", \"patch\"], (n) => {\n  Ur.headers[n] = {};\n});\nconst Gr = Ur, kd = M.toObjectSet([\n  \"age\",\n  \"authorization\",\n  \"content-length\",\n  \"content-type\",\n  \"etag\",\n  \"expires\",\n  \"from\",\n  \"host\",\n  \"if-modified-since\",\n  \"if-unmodified-since\",\n  \"last-modified\",\n  \"location\",\n  \"max-forwards\",\n  \"proxy-authorization\",\n  \"referer\",\n  \"retry-after\",\n  \"user-agent\"\n]), Dd = (n) => {\n  const t = {};\n  let e, s, i;\n  return n && n.split(`\n`).forEach(function(r) {\n    i = r.indexOf(\":\"), e = r.substring(0, i).trim().toLowerCase(), s = r.substring(i + 1).trim(), !(!e || t[e] && kd[e]) && (e === \"set-cookie\" ? t[e] ? t[e].push(s) : t[e] = [s] : t[e] = t[e] ? t[e] + \", \" + s : s);\n  }), t;\n}, Wo = Symbol(\"internals\");\nfunction vs(n) {\n  return n && String(n).trim().toLowerCase();\n}\nfunction Ln(n) {\n  return n === !1 || n == null ? n : M.isArray(n) ? n.map(Ln) : String(n);\n}\nfunction Ld(n) {\n  const t = /* @__PURE__ */ Object.create(null), e = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let s;\n  for (; s = e.exec(n); )\n    t[s[1]] = s[2];\n  return t;\n}\nconst Rd = (n) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(n.trim());\nfunction Ti(n, t, e, s, i) {\n  if (M.isFunction(s))\n    return s.call(this, t, e);\n  if (i && (t = e), !!M.isString(t)) {\n    if (M.isString(s))\n      return t.indexOf(s) !== -1;\n    if (M.isRegExp(s))\n      return s.test(t);\n  }\n}\nfunction Od(n) {\n  return n.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g, (t, e, s) => e.toUpperCase() + s);\n}\nfunction zd(n, t) {\n  const e = M.toCamelCase(\" \" + t);\n  [\"get\", \"set\", \"has\"].forEach((s) => {\n    Object.defineProperty(n, s + e, {\n      value: function(i, r, o) {\n        return this[s].call(this, t, i, r, o);\n      },\n      configurable: !0\n    });\n  });\n}\nclass ii {\n  constructor(t) {\n    t && this.set(t);\n  }\n  set(t, e, s) {\n    const i = this;\n    function r(a, h, c) {\n      const l = vs(h);\n      if (!l)\n        throw new Error(\"header name must be a non-empty string\");\n      const u = M.findKey(i, l);\n      (!u || i[u] === void 0 || c === !0 || c === void 0 && i[u] !== !1) && (i[u || h] = Ln(a));\n    }\n    const o = (a, h) => M.forEach(a, (c, l) => r(c, l, h));\n    if (M.isPlainObject(t) || t instanceof this.constructor)\n      o(t, e);\n    else if (M.isString(t) && (t = t.trim()) && !Rd(t))\n      o(Dd(t), e);\n    else if (M.isHeaders(t))\n      for (const [a, h] of t.entries())\n        r(h, a, s);\n    else\n      t != null && r(e, t, s);\n    return this;\n  }\n  get(t, e) {\n    if (t = vs(t), t) {\n      const s = M.findKey(this, t);\n      if (s) {\n        const i = this[s];\n        if (!e)\n          return i;\n        if (e === !0)\n          return Ld(i);\n        if (M.isFunction(e))\n          return e.call(this, i, s);\n        if (M.isRegExp(e))\n          return e.exec(i);\n        throw new TypeError(\"parser must be boolean|regexp|function\");\n      }\n    }\n  }\n  has(t, e) {\n    if (t = vs(t), t) {\n      const s = M.findKey(this, t);\n      return !!(s && this[s] !== void 0 && (!e || Ti(this, this[s], s, e)));\n    }\n    return !1;\n  }\n  delete(t, e) {\n    const s = this;\n    let i = !1;\n    function r(o) {\n      if (o = vs(o), o) {\n        const a = M.findKey(s, o);\n        a && (!e || Ti(s, s[a], a, e)) && (delete s[a], i = !0);\n      }\n    }\n    return M.isArray(t) ? t.forEach(r) : r(t), i;\n  }\n  clear(t) {\n    const e = Object.keys(this);\n    let s = e.length, i = !1;\n    for (; s--; ) {\n      const r = e[s];\n      (!t || Ti(this, this[r], r, t, !0)) && (delete this[r], i = !0);\n    }\n    return i;\n  }\n  normalize(t) {\n    const e = this, s = {};\n    return M.forEach(this, (i, r) => {\n      const o = M.findKey(s, r);\n      if (o) {\n        e[o] = Ln(i), delete e[r];\n        return;\n      }\n      const a = t ? Od(r) : String(r).trim();\n      a !== r && delete e[r], e[a] = Ln(i), s[a] = !0;\n    }), this;\n  }\n  concat(...t) {\n    return this.constructor.concat(this, ...t);\n  }\n  toJSON(t) {\n    const e = /* @__PURE__ */ Object.create(null);\n    return M.forEach(this, (s, i) => {\n      s != null && s !== !1 && (e[i] = t && M.isArray(s) ? s.join(\", \") : s);\n    }), e;\n  }\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n  toString() {\n    return Object.entries(this.toJSON()).map(([t, e]) => t + \": \" + e).join(`\n`);\n  }\n  get [Symbol.toStringTag]() {\n    return \"AxiosHeaders\";\n  }\n  static from(t) {\n    return t instanceof this ? t : new this(t);\n  }\n  static concat(t, ...e) {\n    const s = new this(t);\n    return e.forEach((i) => s.set(i)), s;\n  }\n  static accessor(t) {\n    const e = (this[Wo] = this[Wo] = {\n      accessors: {}\n    }).accessors, s = this.prototype;\n    function i(r) {\n      const o = vs(r);\n      e[o] || (zd(s, r), e[o] = !0);\n    }\n    return M.isArray(t) ? t.forEach(i) : i(t), this;\n  }\n}\nii.accessor([\"Content-Type\", \"Content-Length\", \"Accept\", \"Accept-Encoding\", \"User-Agent\", \"Authorization\"]);\nM.reduceDescriptors(ii.prototype, ({ value: n }, t) => {\n  let e = t[0].toUpperCase() + t.slice(1);\n  return {\n    get: () => n,\n    set(s) {\n      this[e] = s;\n    }\n  };\n});\nM.freezeMethods(ii);\nconst te = ii;\nfunction Mi(n, t) {\n  const e = this || Gr, s = t || e, i = te.from(s.headers);\n  let r = s.data;\n  return M.forEach(n, function(o) {\n    r = o.call(e, r, i.normalize(), t ? t.status : void 0);\n  }), i.normalize(), r;\n}\nfunction kh(n) {\n  return !!(n && n.__CANCEL__);\n}\nfunction ps(n, t, e) {\n  U.call(this, n ?? \"canceled\", U.ERR_CANCELED, t, e), this.name = \"CanceledError\";\n}\nM.inherits(ps, U, {\n  __CANCEL__: !0\n});\nfunction Dh(n, t, e) {\n  const s = e.config.validateStatus;\n  !e.status || !s || s(e.status) ? n(e) : t(new U(\n    \"Request failed with status code \" + e.status,\n    [U.ERR_BAD_REQUEST, U.ERR_BAD_RESPONSE][Math.floor(e.status / 100) - 4],\n    e.config,\n    e.request,\n    e\n  ));\n}\nfunction Nd(n) {\n  const t = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(n);\n  return t && t[1] || \"\";\n}\nfunction Yd(n, t) {\n  n = n || 10;\n  const e = new Array(n), s = new Array(n);\n  let i = 0, r = 0, o;\n  return t = t !== void 0 ? t : 1e3, function(a) {\n    const h = Date.now(), c = s[r];\n    o || (o = h), e[i] = a, s[i] = h;\n    let l = r, u = 0;\n    for (; l !== i; )\n      u += e[l++], l = l % n;\n    if (i = (i + 1) % n, i === r && (r = (r + 1) % n), h - o < t)\n      return;\n    const d = c && h - c;\n    return d ? Math.round(u * 1e3 / d) : void 0;\n  };\n}\nfunction Bd(n, t) {\n  let e = 0, s = 1e3 / t, i, r;\n  const o = (a, h = Date.now()) => {\n    e = h, i = null, r && (clearTimeout(r), r = null), n.apply(null, a);\n  };\n  return [(...a) => {\n    const h = Date.now(), c = h - e;\n    c >= s ? o(a, h) : (i = a, r || (r = setTimeout(() => {\n      r = null, o(i);\n    }, s - c)));\n  }, () => i && o(i)];\n}\nconst Un = (n, t, e = 3) => {\n  let s = 0;\n  const i = Yd(50, 250);\n  return Bd((r) => {\n    const o = r.loaded, a = r.lengthComputable ? r.total : void 0, h = o - s, c = i(h), l = o <= a;\n    s = o;\n    const u = {\n      loaded: o,\n      total: a,\n      progress: a ? o / a : void 0,\n      bytes: h,\n      rate: c || void 0,\n      estimated: c && a && l ? (a - o) / c : void 0,\n      event: r,\n      lengthComputable: a != null,\n      [t ? \"download\" : \"upload\"]: !0\n    };\n    n(u);\n  }, e);\n}, Zo = (n, t) => {\n  const e = n != null;\n  return [(s) => t[0]({\n    lengthComputable: e,\n    total: n,\n    loaded: s\n  }), t[1]];\n}, Jo = (n) => (...t) => M.asap(() => n(...t)), Xd = St.hasStandardBrowserEnv ? ((n, t) => (e) => (e = new URL(e, St.origin), n.protocol === e.protocol && n.host === e.host && (t || n.port === e.port)))(\n  new URL(St.origin),\n  St.navigator && /(msie|trident)/i.test(St.navigator.userAgent)\n) : () => !0, Fd = St.hasStandardBrowserEnv ? (\n  // Standard browser envs support document.cookie\n  {\n    write(n, t, e, s, i, r) {\n      const o = [n + \"=\" + encodeURIComponent(t)];\n      M.isNumber(e) && o.push(\"expires=\" + new Date(e).toGMTString()), M.isString(s) && o.push(\"path=\" + s), M.isString(i) && o.push(\"domain=\" + i), r === !0 && o.push(\"secure\"), document.cookie = o.join(\"; \");\n    },\n    read(n) {\n      const t = document.cookie.match(new RegExp(\"(^|;\\\\s*)(\" + n + \")=([^;]*)\"));\n      return t ? decodeURIComponent(t[3]) : null;\n    },\n    remove(n) {\n      this.write(n, \"\", Date.now() - 864e5);\n    }\n  }\n) : (\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {\n    },\n    read() {\n      return null;\n    },\n    remove() {\n    }\n  }\n);\nfunction Ud(n) {\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(n);\n}\nfunction Gd(n, t) {\n  return t ? n.replace(/\\/?\\/$/, \"\") + \"/\" + t.replace(/^\\/+/, \"\") : n;\n}\nfunction Lh(n, t, e) {\n  let s = !Ud(t);\n  return n && (s || e == !1) ? Gd(n, t) : t;\n}\nconst Ko = (n) => n instanceof te ? { ...n } : n;\nfunction $e(n, t) {\n  t = t || {};\n  const e = {};\n  function s(c, l, u, d) {\n    return M.isPlainObject(c) && M.isPlainObject(l) ? M.merge.call({ caseless: d }, c, l) : M.isPlainObject(l) ? M.merge({}, l) : M.isArray(l) ? l.slice() : l;\n  }\n  function i(c, l, u, d) {\n    if (M.isUndefined(l)) {\n      if (!M.isUndefined(c))\n        return s(void 0, c, u, d);\n    } else\n      return s(c, l, u, d);\n  }\n  function r(c, l) {\n    if (!M.isUndefined(l))\n      return s(void 0, l);\n  }\n  function o(c, l) {\n    if (M.isUndefined(l)) {\n      if (!M.isUndefined(c))\n        return s(void 0, c);\n    } else\n      return s(void 0, l);\n  }\n  function a(c, l, u) {\n    if (u in t)\n      return s(c, l);\n    if (u in n)\n      return s(void 0, c);\n  }\n  const h = {\n    url: r,\n    method: r,\n    data: r,\n    baseURL: o,\n    transformRequest: o,\n    transformResponse: o,\n    paramsSerializer: o,\n    timeout: o,\n    timeoutMessage: o,\n    withCredentials: o,\n    withXSRFToken: o,\n    adapter: o,\n    responseType: o,\n    xsrfCookieName: o,\n    xsrfHeaderName: o,\n    onUploadProgress: o,\n    onDownloadProgress: o,\n    decompress: o,\n    maxContentLength: o,\n    maxBodyLength: o,\n    beforeRedirect: o,\n    transport: o,\n    httpAgent: o,\n    httpsAgent: o,\n    cancelToken: o,\n    socketPath: o,\n    responseEncoding: o,\n    validateStatus: a,\n    headers: (c, l, u) => i(Ko(c), Ko(l), u, !0)\n  };\n  return M.forEach(Object.keys(Object.assign({}, n, t)), function(c) {\n    const l = h[c] || i, u = l(n[c], t[c], c);\n    M.isUndefined(u) && l !== a || (e[c] = u);\n  }), e;\n}\nconst Rh = (n) => {\n  const t = $e({}, n);\n  let { data: e, withXSRFToken: s, xsrfHeaderName: i, xsrfCookieName: r, headers: o, auth: a } = t;\n  t.headers = o = te.from(o), t.url = Mh(Lh(t.baseURL, t.url, t.allowAbsoluteUrls), n.params, n.paramsSerializer), a && o.set(\n    \"Authorization\",\n    \"Basic \" + btoa((a.username || \"\") + \":\" + (a.password ? unescape(encodeURIComponent(a.password)) : \"\"))\n  );\n  let h;\n  if (M.isFormData(e)) {\n    if (St.hasStandardBrowserEnv || St.hasStandardBrowserWebWorkerEnv)\n      o.setContentType(void 0);\n    else if ((h = o.getContentType()) !== !1) {\n      const [c, ...l] = h ? h.split(\";\").map((u) => u.trim()).filter(Boolean) : [];\n      o.setContentType([c || \"multipart/form-data\", ...l].join(\"; \"));\n    }\n  }\n  if (St.hasStandardBrowserEnv && (s && M.isFunction(s) && (s = s(t)), s || s !== !1 && Xd(t.url))) {\n    const c = i && r && Fd.read(r);\n    c && o.set(i, c);\n  }\n  return t;\n}, Vd = typeof XMLHttpRequest < \"u\", $d = Vd && function(n) {\n  return new Promise(function(t, e) {\n    const s = Rh(n);\n    let i = s.data;\n    const r = te.from(s.headers).normalize();\n    let { responseType: o, onUploadProgress: a, onDownloadProgress: h } = s, c, l, u, d, f;\n    function m() {\n      d && d(), f && f(), s.cancelToken && s.cancelToken.unsubscribe(c), s.signal && s.signal.removeEventListener(\"abort\", c);\n    }\n    let p = new XMLHttpRequest();\n    p.open(s.method.toUpperCase(), s.url, !0), p.timeout = s.timeout;\n    function S() {\n      if (!p)\n        return;\n      const b = te.from(\n        \"getAllResponseHeaders\" in p && p.getAllResponseHeaders()\n      ), x = {\n        data: !o || o === \"text\" || o === \"json\" ? p.responseText : p.response,\n        status: p.status,\n        statusText: p.statusText,\n        headers: b,\n        config: n,\n        request: p\n      };\n      Dh(function(w) {\n        t(w), m();\n      }, function(w) {\n        e(w), m();\n      }, x), p = null;\n    }\n    \"onloadend\" in p ? p.onloadend = S : p.onreadystatechange = function() {\n      !p || p.readyState !== 4 || p.status === 0 && !(p.responseURL && p.responseURL.indexOf(\"file:\") === 0) || setTimeout(S);\n    }, p.onabort = function() {\n      p && (e(new U(\"Request aborted\", U.ECONNABORTED, n, p)), p = null);\n    }, p.onerror = function() {\n      e(new U(\"Network Error\", U.ERR_NETWORK, n, p)), p = null;\n    }, p.ontimeout = function() {\n      let b = s.timeout ? \"timeout of \" + s.timeout + \"ms exceeded\" : \"timeout exceeded\";\n      const x = s.transitional || Ah;\n      s.timeoutErrorMessage && (b = s.timeoutErrorMessage), e(new U(\n        b,\n        x.clarifyTimeoutError ? U.ETIMEDOUT : U.ECONNABORTED,\n        n,\n        p\n      )), p = null;\n    }, i === void 0 && r.setContentType(null), \"setRequestHeader\" in p && M.forEach(r.toJSON(), function(b, x) {\n      p.setRequestHeader(x, b);\n    }), M.isUndefined(s.withCredentials) || (p.withCredentials = !!s.withCredentials), o && o !== \"json\" && (p.responseType = s.responseType), h && ([u, f] = Un(h, !0), p.addEventListener(\"progress\", u)), a && p.upload && ([l, d] = Un(a), p.upload.addEventListener(\"progress\", l), p.upload.addEventListener(\"loadend\", d)), (s.cancelToken || s.signal) && (c = (b) => {\n      p && (e(!b || b.type ? new ps(null, n, p) : b), p.abort(), p = null);\n    }, s.cancelToken && s.cancelToken.subscribe(c), s.signal && (s.signal.aborted ? c() : s.signal.addEventListener(\"abort\", c)));\n    const g = Nd(s.url);\n    if (g && St.protocols.indexOf(g) === -1) {\n      e(new U(\"Unsupported protocol \" + g + \":\", U.ERR_BAD_REQUEST, n));\n      return;\n    }\n    p.send(i || null);\n  });\n}, qd = (n, t) => {\n  const { length: e } = n = n ? n.filter(Boolean) : [];\n  if (t || e) {\n    let s = new AbortController(), i;\n    const r = function(c) {\n      if (!i) {\n        i = !0, a();\n        const l = c instanceof Error ? c : this.reason;\n        s.abort(l instanceof U ? l : new ps(l instanceof Error ? l.message : l));\n      }\n    };\n    let o = t && setTimeout(() => {\n      o = null, r(new U(`timeout ${t} of ms exceeded`, U.ETIMEDOUT));\n    }, t);\n    const a = () => {\n      n && (o && clearTimeout(o), o = null, n.forEach((c) => {\n        c.unsubscribe ? c.unsubscribe(r) : c.removeEventListener(\"abort\", r);\n      }), n = null);\n    };\n    n.forEach((c) => c.addEventListener(\"abort\", r));\n    const { signal: h } = s;\n    return h.unsubscribe = () => M.asap(a), h;\n  }\n}, jd = qd, Hd = function* (n, t) {\n  let e = n.byteLength;\n  if (!t || e < t) {\n    yield n;\n    return;\n  }\n  let s = 0, i;\n  for (; s < e; )\n    i = s + t, yield n.slice(s, i), s = i;\n}, Wd = async function* (n, t) {\n  for await (const e of Zd(n))\n    yield* Hd(e, t);\n}, Zd = async function* (n) {\n  if (n[Symbol.asyncIterator]) {\n    yield* n;\n    return;\n  }\n  const t = n.getReader();\n  try {\n    for (; ; ) {\n      const { done: e, value: s } = await t.read();\n      if (e)\n        break;\n      yield s;\n    }\n  } finally {\n    await t.cancel();\n  }\n}, Qo = (n, t, e, s) => {\n  const i = Wd(n, t);\n  let r = 0, o, a = (h) => {\n    o || (o = !0, s && s(h));\n  };\n  return new ReadableStream({\n    async pull(h) {\n      try {\n        const { done: c, value: l } = await i.next();\n        if (c) {\n          a(), h.close();\n          return;\n        }\n        let u = l.byteLength;\n        if (e) {\n          let d = r += u;\n          e(d);\n        }\n        h.enqueue(new Uint8Array(l));\n      } catch (c) {\n        throw a(c), c;\n      }\n    },\n    cancel(h) {\n      return a(h), i.return();\n    }\n  }, {\n    highWaterMark: 2\n  });\n}, ri = typeof fetch == \"function\" && typeof Request == \"function\" && typeof Response == \"function\", Oh = ri && typeof ReadableStream == \"function\", Jd = ri && (typeof TextEncoder == \"function\" ? ((n) => (t) => n.encode(t))(new TextEncoder()) : async (n) => new Uint8Array(await new Response(n).arrayBuffer())), zh = (n, ...t) => {\n  try {\n    return !!n(...t);\n  } catch {\n    return !1;\n  }\n}, Kd = Oh && zh(() => {\n  let n = !1;\n  const t = new Request(St.origin, {\n    body: new ReadableStream(),\n    method: \"POST\",\n    get duplex() {\n      return n = !0, \"half\";\n    }\n  }).headers.has(\"Content-Type\");\n  return n && !t;\n}), ta = 64 * 1024, sr = Oh && zh(() => M.isReadableStream(new Response(\"\").body)), Gn = {\n  stream: sr && ((n) => n.body)\n};\nri && ((n) => {\n  [\"text\", \"arrayBuffer\", \"blob\", \"formData\", \"stream\"].forEach((t) => {\n    !Gn[t] && (Gn[t] = M.isFunction(n[t]) ? (e) => e[t]() : (e, s) => {\n      throw new U(`Response type '${t}' is not supported`, U.ERR_NOT_SUPPORT, s);\n    });\n  });\n})(new Response());\nconst Qd = async (n) => {\n  if (n == null)\n    return 0;\n  if (M.isBlob(n))\n    return n.size;\n  if (M.isSpecCompliantForm(n))\n    return (await new Request(St.origin, {\n      method: \"POST\",\n      body: n\n    }).arrayBuffer()).byteLength;\n  if (M.isArrayBufferView(n) || M.isArrayBuffer(n))\n    return n.byteLength;\n  if (M.isURLSearchParams(n) && (n = n + \"\"), M.isString(n))\n    return (await Jd(n)).byteLength;\n}, tm = async (n, t) => M.toFiniteNumber(n.getContentLength()) ?? Qd(t), em = ri && (async (n) => {\n  let {\n    url: t,\n    method: e,\n    data: s,\n    signal: i,\n    cancelToken: r,\n    timeout: o,\n    onDownloadProgress: a,\n    onUploadProgress: h,\n    responseType: c,\n    headers: l,\n    withCredentials: u = \"same-origin\",\n    fetchOptions: d\n  } = Rh(n);\n  c = c ? (c + \"\").toLowerCase() : \"text\";\n  let f = jd([i, r && r.toAbortSignal()], o), m;\n  const p = f && f.unsubscribe && (() => {\n    f.unsubscribe();\n  });\n  let S;\n  try {\n    if (h && Kd && e !== \"get\" && e !== \"head\" && (S = await tm(l, s)) !== 0) {\n      let C = new Request(t, {\n        method: \"POST\",\n        body: s,\n        duplex: \"half\"\n      }), _;\n      if (M.isFormData(s) && (_ = C.headers.get(\"content-type\")) && l.setContentType(_), C.body) {\n        const [D, z] = Zo(\n          S,\n          Un(Jo(h))\n        );\n        s = Qo(C.body, ta, D, z);\n      }\n    }\n    M.isString(u) || (u = u ? \"include\" : \"omit\");\n    const g = \"credentials\" in Request.prototype;\n    m = new Request(t, {\n      ...d,\n      signal: f,\n      method: e.toUpperCase(),\n      headers: l.normalize().toJSON(),\n      body: s,\n      duplex: \"half\",\n      credentials: g ? u : void 0\n    });\n    let b = await fetch(m);\n    const x = sr && (c === \"stream\" || c === \"response\");\n    if (sr && (a || x && p)) {\n      const C = {};\n      [\"status\", \"statusText\", \"headers\"].forEach((B) => {\n        C[B] = b[B];\n      });\n      const _ = M.toFiniteNumber(b.headers.get(\"content-length\")), [D, z] = a && Zo(\n        _,\n        Un(Jo(a), !0)\n      ) || [];\n      b = new Response(\n        Qo(b.body, ta, D, () => {\n          z && z(), p && p();\n        }),\n        C\n      );\n    }\n    c = c || \"text\";\n    let w = await Gn[M.findKey(Gn, c) || \"text\"](b, n);\n    return !x && p && p(), await new Promise((C, _) => {\n      Dh(C, _, {\n        data: w,\n        headers: te.from(b.headers),\n        status: b.status,\n        statusText: b.statusText,\n        config: n,\n        request: m\n      });\n    });\n  } catch (g) {\n    throw p && p(), g && g.name === \"TypeError\" && /fetch/i.test(g.message) ? Object.assign(\n      new U(\"Network Error\", U.ERR_NETWORK, n, m),\n      {\n        cause: g.cause || g\n      }\n    ) : U.from(g, g && g.code, n, m);\n  }\n}), nr = {\n  http: md,\n  xhr: $d,\n  fetch: em\n};\nM.forEach(nr, (n, t) => {\n  if (n) {\n    try {\n      Object.defineProperty(n, \"name\", { value: t });\n    } catch {\n    }\n    Object.defineProperty(n, \"adapterName\", { value: t });\n  }\n});\nconst ea = (n) => `- ${n}`, sm = (n) => M.isFunction(n) || n === null || n === !1, Nh = {\n  getAdapter: (n) => {\n    n = M.isArray(n) ? n : [n];\n    const { length: t } = n;\n    let e, s;\n    const i = {};\n    for (let r = 0; r < t; r++) {\n      e = n[r];\n      let o;\n      if (s = e, !sm(e) && (s = nr[(o = String(e)).toLowerCase()], s === void 0))\n        throw new U(`Unknown adapter '${o}'`);\n      if (s)\n        break;\n      i[o || \"#\" + r] = s;\n    }\n    if (!s) {\n      const r = Object.entries(i).map(\n        ([a, h]) => `adapter ${a} ` + (h === !1 ? \"is not supported by the environment\" : \"is not available in the build\")\n      );\n      let o = t ? r.length > 1 ? `since :\n` + r.map(ea).join(`\n`) : \" \" + ea(r[0]) : \"as no adapter specified\";\n      throw new U(\n        \"There is no suitable adapter to dispatch the request \" + o,\n        \"ERR_NOT_SUPPORT\"\n      );\n    }\n    return s;\n  },\n  adapters: nr\n};\nfunction Ai(n) {\n  if (n.cancelToken && n.cancelToken.throwIfRequested(), n.signal && n.signal.aborted)\n    throw new ps(null, n);\n}\nfunction sa(n) {\n  return Ai(n), n.headers = te.from(n.headers), n.data = Mi.call(\n    n,\n    n.transformRequest\n  ), [\"post\", \"put\", \"patch\"].indexOf(n.method) !== -1 && n.headers.setContentType(\"application/x-www-form-urlencoded\", !1), Nh.getAdapter(n.adapter || Gr.adapter)(n).then(function(t) {\n    return Ai(n), t.data = Mi.call(\n      n,\n      n.transformResponse,\n      t\n    ), t.headers = te.from(t.headers), t;\n  }, function(t) {\n    return kh(t) || (Ai(n), t && t.response && (t.response.data = Mi.call(\n      n,\n      n.transformResponse,\n      t.response\n    ), t.response.headers = te.from(t.response.headers))), Promise.reject(t);\n  });\n}\nconst Yh = \"1.8.4\", oi = {};\n[\"object\", \"boolean\", \"number\", \"function\", \"string\", \"symbol\"].forEach((n, t) => {\n  oi[n] = function(e) {\n    return typeof e === n || \"a\" + (t < 1 ? \"n \" : \" \") + n;\n  };\n});\nconst na = {};\noi.transitional = function(n, t, e) {\n  function s(i, r) {\n    return \"[Axios v\" + Yh + \"] Transitional option '\" + i + \"'\" + r + (e ? \". \" + e : \"\");\n  }\n  return (i, r, o) => {\n    if (n === !1)\n      throw new U(\n        s(r, \" has been removed\" + (t ? \" in \" + t : \"\")),\n        U.ERR_DEPRECATED\n      );\n    return t && !na[r] && (na[r] = !0, console.warn(\n      s(\n        r,\n        \" has been deprecated since v\" + t + \" and will be removed in the near future\"\n      )\n    )), n ? n(i, r, o) : !0;\n  };\n};\noi.spelling = function(n) {\n  return (t, e) => (console.warn(`${e} is likely a misspelling of ${n}`), !0);\n};\nfunction nm(n, t, e) {\n  if (typeof n != \"object\")\n    throw new U(\"options must be an object\", U.ERR_BAD_OPTION_VALUE);\n  const s = Object.keys(n);\n  let i = s.length;\n  for (; i-- > 0; ) {\n    const r = s[i], o = t[r];\n    if (o) {\n      const a = n[r], h = a === void 0 || o(a, r, n);\n      if (h !== !0)\n        throw new U(\"option \" + r + \" must be \" + h, U.ERR_BAD_OPTION_VALUE);\n      continue;\n    }\n    if (e !== !0)\n      throw new U(\"Unknown option \" + r, U.ERR_BAD_OPTION);\n  }\n}\nconst Rn = {\n  assertOptions: nm,\n  validators: oi\n}, re = Rn.validators;\nclass Vn {\n  constructor(t) {\n    this.defaults = t, this.interceptors = {\n      request: new Ho(),\n      response: new Ho()\n    };\n  }\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(t, e) {\n    try {\n      return await this._request(t, e);\n    } catch (s) {\n      if (s instanceof Error) {\n        let i = {};\n        Error.captureStackTrace ? Error.captureStackTrace(i) : i = new Error();\n        const r = i.stack ? i.stack.replace(/^.+\\n/, \"\") : \"\";\n        try {\n          s.stack ? r && !String(s.stack).endsWith(r.replace(/^.+\\n.+\\n/, \"\")) && (s.stack += `\n` + r) : s.stack = r;\n        } catch {\n        }\n      }\n      throw s;\n    }\n  }\n  _request(t, e) {\n    typeof t == \"string\" ? (e = e || {}, e.url = t) : e = t || {}, e = $e(this.defaults, e);\n    const { transitional: s, paramsSerializer: i, headers: r } = e;\n    s !== void 0 && Rn.assertOptions(s, {\n      silentJSONParsing: re.transitional(re.boolean),\n      forcedJSONParsing: re.transitional(re.boolean),\n      clarifyTimeoutError: re.transitional(re.boolean)\n    }, !1), i != null && (M.isFunction(i) ? e.paramsSerializer = {\n      serialize: i\n    } : Rn.assertOptions(i, {\n      encode: re.function,\n      serialize: re.function\n    }, !0)), e.allowAbsoluteUrls !== void 0 || (this.defaults.allowAbsoluteUrls !== void 0 ? e.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls : e.allowAbsoluteUrls = !0), Rn.assertOptions(e, {\n      baseUrl: re.spelling(\"baseURL\"),\n      withXsrfToken: re.spelling(\"withXSRFToken\")\n    }, !0), e.method = (e.method || this.defaults.method || \"get\").toLowerCase();\n    let o = r && M.merge(\n      r.common,\n      r[e.method]\n    );\n    r && M.forEach(\n      [\"delete\", \"get\", \"head\", \"post\", \"put\", \"patch\", \"common\"],\n      (m) => {\n        delete r[m];\n      }\n    ), e.headers = te.concat(o, r);\n    const a = [];\n    let h = !0;\n    this.interceptors.request.forEach(function(m) {\n      typeof m.runWhen == \"function\" && m.runWhen(e) === !1 || (h = h && m.synchronous, a.unshift(m.fulfilled, m.rejected));\n    });\n    const c = [];\n    this.interceptors.response.forEach(function(m) {\n      c.push(m.fulfilled, m.rejected);\n    });\n    let l, u = 0, d;\n    if (!h) {\n      const m = [sa.bind(this), void 0];\n      for (m.unshift.apply(m, a), m.push.apply(m, c), d = m.length, l = Promise.resolve(e); u < d; )\n        l = l.then(m[u++], m[u++]);\n      return l;\n    }\n    d = a.length;\n    let f = e;\n    for (u = 0; u < d; ) {\n      const m = a[u++], p = a[u++];\n      try {\n        f = m(f);\n      } catch (S) {\n        p.call(this, S);\n        break;\n      }\n    }\n    try {\n      l = sa.call(this, f);\n    } catch (m) {\n      return Promise.reject(m);\n    }\n    for (u = 0, d = c.length; u < d; )\n      l = l.then(c[u++], c[u++]);\n    return l;\n  }\n  getUri(t) {\n    t = $e(this.defaults, t);\n    const e = Lh(t.baseURL, t.url, t.allowAbsoluteUrls);\n    return Mh(e, t.params, t.paramsSerializer);\n  }\n}\nM.forEach([\"delete\", \"get\", \"head\", \"options\"], function(n) {\n  Vn.prototype[n] = function(t, e) {\n    return this.request($e(e || {}, {\n      method: n,\n      url: t,\n      data: (e || {}).data\n    }));\n  };\n});\nM.forEach([\"post\", \"put\", \"patch\"], function(n) {\n  function t(e) {\n    return function(s, i, r) {\n      return this.request($e(r || {}, {\n        method: n,\n        headers: e ? {\n          \"Content-Type\": \"multipart/form-data\"\n        } : {},\n        url: s,\n        data: i\n      }));\n    };\n  }\n  Vn.prototype[n] = t(), Vn.prototype[n + \"Form\"] = t(!0);\n});\nconst On = Vn;\nclass Vr {\n  constructor(t) {\n    if (typeof t != \"function\")\n      throw new TypeError(\"executor must be a function.\");\n    let e;\n    this.promise = new Promise(function(i) {\n      e = i;\n    });\n    const s = this;\n    this.promise.then((i) => {\n      if (!s._listeners)\n        return;\n      let r = s._listeners.length;\n      for (; r-- > 0; )\n        s._listeners[r](i);\n      s._listeners = null;\n    }), this.promise.then = (i) => {\n      let r;\n      const o = new Promise((a) => {\n        s.subscribe(a), r = a;\n      }).then(i);\n      return o.cancel = function() {\n        s.unsubscribe(r);\n      }, o;\n    }, t(function(i, r, o) {\n      s.reason || (s.reason = new ps(i, r, o), e(s.reason));\n    });\n  }\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason)\n      throw this.reason;\n  }\n  /**\n   * Subscribe to the cancel signal\n   */\n  subscribe(t) {\n    if (this.reason) {\n      t(this.reason);\n      return;\n    }\n    this._listeners ? this._listeners.push(t) : this._listeners = [t];\n  }\n  /**\n   * Unsubscribe from the cancel signal\n   */\n  unsubscribe(t) {\n    if (!this._listeners)\n      return;\n    const e = this._listeners.indexOf(t);\n    e !== -1 && this._listeners.splice(e, 1);\n  }\n  toAbortSignal() {\n    const t = new AbortController(), e = (s) => {\n      t.abort(s);\n    };\n    return this.subscribe(e), t.signal.unsubscribe = () => this.unsubscribe(e), t.signal;\n  }\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let t;\n    return {\n      token: new Vr(function(e) {\n        t = e;\n      }),\n      cancel: t\n    };\n  }\n}\nconst im = Vr;\nfunction rm(n) {\n  return function(t) {\n    return n.apply(null, t);\n  };\n}\nfunction om(n) {\n  return M.isObject(n) && n.isAxiosError === !0;\n}\nconst ir = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511\n};\nObject.entries(ir).forEach(([n, t]) => {\n  ir[t] = n;\n});\nconst am = ir;\nfunction Bh(n) {\n  const t = new On(n), e = yh(On.prototype.request, t);\n  return M.extend(e, On.prototype, t, { allOwnKeys: !0 }), M.extend(e, t, null, { allOwnKeys: !0 }), e.create = function(s) {\n    return Bh($e(n, s));\n  }, e;\n}\nconst ht = Bh(Gr);\nht.Axios = On;\nht.CanceledError = ps;\nht.CancelToken = im;\nht.isCancel = kh;\nht.VERSION = Yh;\nht.toFormData = ni;\nht.AxiosError = U;\nht.Cancel = ht.CanceledError;\nht.all = function(n) {\n  return Promise.all(n);\n};\nht.spread = rm;\nht.isAxiosError = om;\nht.mergeConfig = $e;\nht.AxiosHeaders = te;\nht.formToJSON = (n) => Ih(M.isHTMLForm(n) ? new FormData(n) : n);\nht.getAdapter = Nh.getAdapter;\nht.HttpStatusCode = am;\nht.default = ht;\nconst hm = ht;\nclass Xh {\n  instance;\n  canceler;\n  retryCount = 0;\n  cacheTime = 0;\n  caches = new Ws();\n  constructor(t) {\n    this.instance = hm.create(t), this.canceler = new cm(), this.retryCount = t?.retry || 0, this.cacheTime = t?.cache || 0, this.instance.interceptors.request.use(\n      (e) => (t?.interceptor?.start?.(), this.canceler.pendingRequest(e), t?.interceptor?.request?.(e), e),\n      (e) => (t?.interceptor?.end?.(), this.canceler.cancelRequest(e.config), t?.interceptor?.requestError?.(e), Promise.reject(e))\n    ), this.instance.interceptors.response.use(\n      (e) => (t?.interceptor?.end?.(), this.canceler.confirmRequest(e.config), t?.interceptor?.response?.(e), e.status == 200 ? Promise.resolve(e) : Promise.reject(e)),\n      (e) => (t?.interceptor?.end?.(), this.canceler.cancelRequest(e.config), t?.interceptor?.responseError?.(e), Promise.reject(e.response))\n    );\n  }\n  // @CacheDecorator(60)\n  // @RetryDecorator(3)\n  request(t) {\n    let e = this.instance.request;\n    const s = t.retry || this.retryCount;\n    s && (e = Lr(e, s));\n    const i = t.cache || this.cacheTime;\n    return i && (e = Rr(e, i, this.caches)), e(t);\n  }\n  // this.request() 请求后未返回前，可取消请求\n  cancel(t) {\n    this.canceler.cancelRequest(t);\n  }\n  get(t, e) {\n    return this.request({ ...e, method: \"get\", url: t });\n  }\n  delete(t, e) {\n    return this.request({ ...e, method: \"delete\", url: t });\n  }\n  head(t, e) {\n    return this.request({ ...e, method: \"head\", url: t });\n  }\n  options(t, e) {\n    return this.request({ ...e, method: \"options\", url: t });\n  }\n  post(t, e, s) {\n    return this.request({ ...s, method: \"post\", url: t, data: e });\n  }\n  postBlob(t, e, s) {\n    return s = {\n      ...s,\n      headers: {\n        ...s?.headers,\n        \"Content-Type\": \"multipart/form-data\"\n      }\n    }, this.request({ ...s, method: \"post\", url: t, data: e });\n  }\n  // UNDO : application/octet-stream\n  postForm(t, e, s) {\n    return this.instance.postForm(t, e, { ...s });\n  }\n  put(t, e, s) {\n    return this.request({ ...s, method: \"put\", url: t, data: e });\n  }\n  patch(t, e, s) {\n    return this.request({ ...s, method: \"patch\", url: t, data: e });\n  }\n  getUri(t) {\n    return this.instance.getUri(t);\n  }\n}\nclass cm {\n  pendingRequestMap;\n  constructor() {\n    this.pendingRequestMap = /* @__PURE__ */ new Map();\n  }\n  getRequestId(t) {\n    const { method: e, url: s, params: i, data: r } = t;\n    return Ar({ method: e, url: s, params: i, data: r });\n  }\n  pendingRequest(t) {\n    const e = this.getRequestId(t);\n    if (this.pendingRequestMap.has(e))\n      t.signal = this.pendingRequestMap.get(e)?.signal;\n    else {\n      const s = new AbortController();\n      t.signal = s.signal, this.pendingRequestMap.set(e, s);\n    }\n  }\n  confirmRequest(t) {\n    if (this.pendingRequestMap.size === 0)\n      return;\n    const e = this.getRequestId(t);\n    this.pendingRequestMap.has(e) && this.pendingRequestMap.delete(e);\n  }\n  cancelRequest(t) {\n    if (this.pendingRequestMap.size === 0)\n      return;\n    const e = this.getRequestId(t);\n    this.pendingRequestMap.has(e) && (this.pendingRequestMap.get(e)?.abort(), this.pendingRequestMap.delete(e));\n  }\n  cancelAllRequest() {\n    const t = this.pendingRequestMap.values();\n    for (const e of t)\n      e.abort();\n    this.pendingRequestMap.clear();\n  }\n}\nfunction Fh(n) {\n  return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar Uh = { exports: {} };\n(function(n, t) {\n  (function(e) {\n    n.exports = e();\n  })(function(e) {\n    var s = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n    function i(g, b) {\n      var x = g[0], w = g[1], C = g[2], _ = g[3];\n      x += (w & C | ~w & _) + b[0] - 680876936 | 0, x = (x << 7 | x >>> 25) + w | 0, _ += (x & w | ~x & C) + b[1] - 389564586 | 0, _ = (_ << 12 | _ >>> 20) + x | 0, C += (_ & x | ~_ & w) + b[2] + 606105819 | 0, C = (C << 17 | C >>> 15) + _ | 0, w += (C & _ | ~C & x) + b[3] - 1044525330 | 0, w = (w << 22 | w >>> 10) + C | 0, x += (w & C | ~w & _) + b[4] - 176418897 | 0, x = (x << 7 | x >>> 25) + w | 0, _ += (x & w | ~x & C) + b[5] + 1200080426 | 0, _ = (_ << 12 | _ >>> 20) + x | 0, C += (_ & x | ~_ & w) + b[6] - 1473231341 | 0, C = (C << 17 | C >>> 15) + _ | 0, w += (C & _ | ~C & x) + b[7] - 45705983 | 0, w = (w << 22 | w >>> 10) + C | 0, x += (w & C | ~w & _) + b[8] + 1770035416 | 0, x = (x << 7 | x >>> 25) + w | 0, _ += (x & w | ~x & C) + b[9] - 1958414417 | 0, _ = (_ << 12 | _ >>> 20) + x | 0, C += (_ & x | ~_ & w) + b[10] - 42063 | 0, C = (C << 17 | C >>> 15) + _ | 0, w += (C & _ | ~C & x) + b[11] - 1990404162 | 0, w = (w << 22 | w >>> 10) + C | 0, x += (w & C | ~w & _) + b[12] + 1804603682 | 0, x = (x << 7 | x >>> 25) + w | 0, _ += (x & w | ~x & C) + b[13] - 40341101 | 0, _ = (_ << 12 | _ >>> 20) + x | 0, C += (_ & x | ~_ & w) + b[14] - 1502002290 | 0, C = (C << 17 | C >>> 15) + _ | 0, w += (C & _ | ~C & x) + b[15] + 1236535329 | 0, w = (w << 22 | w >>> 10) + C | 0, x += (w & _ | C & ~_) + b[1] - 165796510 | 0, x = (x << 5 | x >>> 27) + w | 0, _ += (x & C | w & ~C) + b[6] - 1069501632 | 0, _ = (_ << 9 | _ >>> 23) + x | 0, C += (_ & w | x & ~w) + b[11] + 643717713 | 0, C = (C << 14 | C >>> 18) + _ | 0, w += (C & x | _ & ~x) + b[0] - 373897302 | 0, w = (w << 20 | w >>> 12) + C | 0, x += (w & _ | C & ~_) + b[5] - 701558691 | 0, x = (x << 5 | x >>> 27) + w | 0, _ += (x & C | w & ~C) + b[10] + 38016083 | 0, _ = (_ << 9 | _ >>> 23) + x | 0, C += (_ & w | x & ~w) + b[15] - 660478335 | 0, C = (C << 14 | C >>> 18) + _ | 0, w += (C & x | _ & ~x) + b[4] - 405537848 | 0, w = (w << 20 | w >>> 12) + C | 0, x += (w & _ | C & ~_) + b[9] + 568446438 | 0, x = (x << 5 | x >>> 27) + w | 0, _ += (x & C | w & ~C) + b[14] - 1019803690 | 0, _ = (_ << 9 | _ >>> 23) + x | 0, C += (_ & w | x & ~w) + b[3] - 187363961 | 0, C = (C << 14 | C >>> 18) + _ | 0, w += (C & x | _ & ~x) + b[8] + 1163531501 | 0, w = (w << 20 | w >>> 12) + C | 0, x += (w & _ | C & ~_) + b[13] - 1444681467 | 0, x = (x << 5 | x >>> 27) + w | 0, _ += (x & C | w & ~C) + b[2] - 51403784 | 0, _ = (_ << 9 | _ >>> 23) + x | 0, C += (_ & w | x & ~w) + b[7] + 1735328473 | 0, C = (C << 14 | C >>> 18) + _ | 0, w += (C & x | _ & ~x) + b[12] - 1926607734 | 0, w = (w << 20 | w >>> 12) + C | 0, x += (w ^ C ^ _) + b[5] - 378558 | 0, x = (x << 4 | x >>> 28) + w | 0, _ += (x ^ w ^ C) + b[8] - 2022574463 | 0, _ = (_ << 11 | _ >>> 21) + x | 0, C += (_ ^ x ^ w) + b[11] + 1839030562 | 0, C = (C << 16 | C >>> 16) + _ | 0, w += (C ^ _ ^ x) + b[14] - 35309556 | 0, w = (w << 23 | w >>> 9) + C | 0, x += (w ^ C ^ _) + b[1] - 1530992060 | 0, x = (x << 4 | x >>> 28) + w | 0, _ += (x ^ w ^ C) + b[4] + 1272893353 | 0, _ = (_ << 11 | _ >>> 21) + x | 0, C += (_ ^ x ^ w) + b[7] - 155497632 | 0, C = (C << 16 | C >>> 16) + _ | 0, w += (C ^ _ ^ x) + b[10] - 1094730640 | 0, w = (w << 23 | w >>> 9) + C | 0, x += (w ^ C ^ _) + b[13] + 681279174 | 0, x = (x << 4 | x >>> 28) + w | 0, _ += (x ^ w ^ C) + b[0] - 358537222 | 0, _ = (_ << 11 | _ >>> 21) + x | 0, C += (_ ^ x ^ w) + b[3] - 722521979 | 0, C = (C << 16 | C >>> 16) + _ | 0, w += (C ^ _ ^ x) + b[6] + 76029189 | 0, w = (w << 23 | w >>> 9) + C | 0, x += (w ^ C ^ _) + b[9] - 640364487 | 0, x = (x << 4 | x >>> 28) + w | 0, _ += (x ^ w ^ C) + b[12] - 421815835 | 0, _ = (_ << 11 | _ >>> 21) + x | 0, C += (_ ^ x ^ w) + b[15] + 530742520 | 0, C = (C << 16 | C >>> 16) + _ | 0, w += (C ^ _ ^ x) + b[2] - 995338651 | 0, w = (w << 23 | w >>> 9) + C | 0, x += (C ^ (w | ~_)) + b[0] - 198630844 | 0, x = (x << 6 | x >>> 26) + w | 0, _ += (w ^ (x | ~C)) + b[7] + 1126891415 | 0, _ = (_ << 10 | _ >>> 22) + x | 0, C += (x ^ (_ | ~w)) + b[14] - 1416354905 | 0, C = (C << 15 | C >>> 17) + _ | 0, w += (_ ^ (C | ~x)) + b[5] - 57434055 | 0, w = (w << 21 | w >>> 11) + C | 0, x += (C ^ (w | ~_)) + b[12] + 1700485571 | 0, x = (x << 6 | x >>> 26) + w | 0, _ += (w ^ (x | ~C)) + b[3] - 1894986606 | 0, _ = (_ << 10 | _ >>> 22) + x | 0, C += (x ^ (_ | ~w)) + b[10] - 1051523 | 0, C = (C << 15 | C >>> 17) + _ | 0, w += (_ ^ (C | ~x)) + b[1] - 2054922799 | 0, w = (w << 21 | w >>> 11) + C | 0, x += (C ^ (w | ~_)) + b[8] + 1873313359 | 0, x = (x << 6 | x >>> 26) + w | 0, _ += (w ^ (x | ~C)) + b[15] - 30611744 | 0, _ = (_ << 10 | _ >>> 22) + x | 0, C += (x ^ (_ | ~w)) + b[6] - 1560198380 | 0, C = (C << 15 | C >>> 17) + _ | 0, w += (_ ^ (C | ~x)) + b[13] + 1309151649 | 0, w = (w << 21 | w >>> 11) + C | 0, x += (C ^ (w | ~_)) + b[4] - 145523070 | 0, x = (x << 6 | x >>> 26) + w | 0, _ += (w ^ (x | ~C)) + b[11] - 1120210379 | 0, _ = (_ << 10 | _ >>> 22) + x | 0, C += (x ^ (_ | ~w)) + b[2] + 718787259 | 0, C = (C << 15 | C >>> 17) + _ | 0, w += (_ ^ (C | ~x)) + b[9] - 343485551 | 0, w = (w << 21 | w >>> 11) + C | 0, g[0] = x + g[0] | 0, g[1] = w + g[1] | 0, g[2] = C + g[2] | 0, g[3] = _ + g[3] | 0;\n    }\n    function r(g) {\n      var b = [], x;\n      for (x = 0; x < 64; x += 4)\n        b[x >> 2] = g.charCodeAt(x) + (g.charCodeAt(x + 1) << 8) + (g.charCodeAt(x + 2) << 16) + (g.charCodeAt(x + 3) << 24);\n      return b;\n    }\n    function o(g) {\n      var b = [], x;\n      for (x = 0; x < 64; x += 4)\n        b[x >> 2] = g[x] + (g[x + 1] << 8) + (g[x + 2] << 16) + (g[x + 3] << 24);\n      return b;\n    }\n    function a(g) {\n      var b = g.length, x = [1732584193, -271733879, -1732584194, 271733878], w, C, _, D, z, B;\n      for (w = 64; w <= b; w += 64)\n        i(x, r(g.substring(w - 64, w)));\n      for (g = g.substring(w - 64), C = g.length, _ = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], w = 0; w < C; w += 1)\n        _[w >> 2] |= g.charCodeAt(w) << (w % 4 << 3);\n      if (_[w >> 2] |= 128 << (w % 4 << 3), w > 55)\n        for (i(x, _), w = 0; w < 16; w += 1)\n          _[w] = 0;\n      return D = b * 8, D = D.toString(16).match(/(.*?)(.{0,8})$/), z = parseInt(D[2], 16), B = parseInt(D[1], 16) || 0, _[14] = z, _[15] = B, i(x, _), x;\n    }\n    function h(g) {\n      var b = g.length, x = [1732584193, -271733879, -1732584194, 271733878], w, C, _, D, z, B;\n      for (w = 64; w <= b; w += 64)\n        i(x, o(g.subarray(w - 64, w)));\n      for (g = w - 64 < b ? g.subarray(w - 64) : new Uint8Array(0), C = g.length, _ = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], w = 0; w < C; w += 1)\n        _[w >> 2] |= g[w] << (w % 4 << 3);\n      if (_[w >> 2] |= 128 << (w % 4 << 3), w > 55)\n        for (i(x, _), w = 0; w < 16; w += 1)\n          _[w] = 0;\n      return D = b * 8, D = D.toString(16).match(/(.*?)(.{0,8})$/), z = parseInt(D[2], 16), B = parseInt(D[1], 16) || 0, _[14] = z, _[15] = B, i(x, _), x;\n    }\n    function c(g) {\n      var b = \"\", x;\n      for (x = 0; x < 4; x += 1)\n        b += s[g >> x * 8 + 4 & 15] + s[g >> x * 8 & 15];\n      return b;\n    }\n    function l(g) {\n      var b;\n      for (b = 0; b < g.length; b += 1)\n        g[b] = c(g[b]);\n      return g.join(\"\");\n    }\n    l(a(\"hello\")), typeof ArrayBuffer < \"u\" && !ArrayBuffer.prototype.slice && function() {\n      function g(b, x) {\n        return b = b | 0 || 0, b < 0 ? Math.max(b + x, 0) : Math.min(b, x);\n      }\n      ArrayBuffer.prototype.slice = function(b, x) {\n        var w = this.byteLength, C = g(b, w), _ = w, D, z, B, G;\n        return x !== e && (_ = g(x, w)), C > _ ? new ArrayBuffer(0) : (D = _ - C, z = new ArrayBuffer(D), B = new Uint8Array(z), G = new Uint8Array(this, C, D), B.set(G), z);\n      };\n    }();\n    function u(g) {\n      return /[\\u0080-\\uFFFF]/.test(g) && (g = unescape(encodeURIComponent(g))), g;\n    }\n    function d(g, b) {\n      var x = g.length, w = new ArrayBuffer(x), C = new Uint8Array(w), _;\n      for (_ = 0; _ < x; _ += 1)\n        C[_] = g.charCodeAt(_);\n      return b ? C : w;\n    }\n    function f(g) {\n      return String.fromCharCode.apply(null, new Uint8Array(g));\n    }\n    function m(g, b, x) {\n      var w = new Uint8Array(g.byteLength + b.byteLength);\n      return w.set(new Uint8Array(g)), w.set(new Uint8Array(b), g.byteLength), x ? w : w.buffer;\n    }\n    function p(g) {\n      var b = [], x = g.length, w;\n      for (w = 0; w < x - 1; w += 2)\n        b.push(parseInt(g.substr(w, 2), 16));\n      return String.fromCharCode.apply(String, b);\n    }\n    function S() {\n      this.reset();\n    }\n    return S.prototype.append = function(g) {\n      return this.appendBinary(u(g)), this;\n    }, S.prototype.appendBinary = function(g) {\n      this._buff += g, this._length += g.length;\n      var b = this._buff.length, x;\n      for (x = 64; x <= b; x += 64)\n        i(this._hash, r(this._buff.substring(x - 64, x)));\n      return this._buff = this._buff.substring(x - 64), this;\n    }, S.prototype.end = function(g) {\n      var b = this._buff, x = b.length, w, C = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], _;\n      for (w = 0; w < x; w += 1)\n        C[w >> 2] |= b.charCodeAt(w) << (w % 4 << 3);\n      return this._finish(C, x), _ = l(this._hash), g && (_ = p(_)), this.reset(), _;\n    }, S.prototype.reset = function() {\n      return this._buff = \"\", this._length = 0, this._hash = [1732584193, -271733879, -1732584194, 271733878], this;\n    }, S.prototype.getState = function() {\n      return {\n        buff: this._buff,\n        length: this._length,\n        hash: this._hash.slice()\n      };\n    }, S.prototype.setState = function(g) {\n      return this._buff = g.buff, this._length = g.length, this._hash = g.hash, this;\n    }, S.prototype.destroy = function() {\n      delete this._hash, delete this._buff, delete this._length;\n    }, S.prototype._finish = function(g, b) {\n      var x = b, w, C, _;\n      if (g[x >> 2] |= 128 << (x % 4 << 3), x > 55)\n        for (i(this._hash, g), x = 0; x < 16; x += 1)\n          g[x] = 0;\n      w = this._length * 8, w = w.toString(16).match(/(.*?)(.{0,8})$/), C = parseInt(w[2], 16), _ = parseInt(w[1], 16) || 0, g[14] = C, g[15] = _, i(this._hash, g);\n    }, S.hash = function(g, b) {\n      return S.hashBinary(u(g), b);\n    }, S.hashBinary = function(g, b) {\n      var x = a(g), w = l(x);\n      return b ? p(w) : w;\n    }, S.ArrayBuffer = function() {\n      this.reset();\n    }, S.ArrayBuffer.prototype.append = function(g) {\n      var b = m(this._buff.buffer, g, !0), x = b.length, w;\n      for (this._length += g.byteLength, w = 64; w <= x; w += 64)\n        i(this._hash, o(b.subarray(w - 64, w)));\n      return this._buff = w - 64 < x ? new Uint8Array(b.buffer.slice(w - 64)) : new Uint8Array(0), this;\n    }, S.ArrayBuffer.prototype.end = function(g) {\n      var b = this._buff, x = b.length, w = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], C, _;\n      for (C = 0; C < x; C += 1)\n        w[C >> 2] |= b[C] << (C % 4 << 3);\n      return this._finish(w, x), _ = l(this._hash), g && (_ = p(_)), this.reset(), _;\n    }, S.ArrayBuffer.prototype.reset = function() {\n      return this._buff = new Uint8Array(0), this._length = 0, this._hash = [1732584193, -271733879, -1732584194, 271733878], this;\n    }, S.ArrayBuffer.prototype.getState = function() {\n      var g = S.prototype.getState.call(this);\n      return g.buff = f(g.buff), g;\n    }, S.ArrayBuffer.prototype.setState = function(g) {\n      return g.buff = d(g.buff, !0), S.prototype.setState.call(this, g);\n    }, S.ArrayBuffer.prototype.destroy = S.prototype.destroy, S.ArrayBuffer.prototype._finish = S.prototype._finish, S.ArrayBuffer.hash = function(g, b) {\n      var x = h(new Uint8Array(g)), w = l(x);\n      return b ? p(w) : w;\n    }, S;\n  });\n})(Uh);\nvar lm = Uh.exports;\nconst um = /* @__PURE__ */ Fh(lm), Zg = Ju && window.File && window.FileReader && window.FileList && window.Blob;\nfunction Jg(n = 'script[type=\"text/js-worker\"]') {\n  return Array.prototype.map.call(\n    document.querySelectorAll(n),\n    (t) => t.textContent\n  );\n}\nconst Gh = (n) => new XMLSerializer().serializeToString(n), Kg = (n, t = \"text/html\") => new DOMParser().parseFromString(n, t), Vh = (n, t = {\n  mime: Mt.SVG,\n  encode: Bn.utf8\n  // utf-8 base64\n}) => Dr(Gh(n), t);\nasync function $h(n = [\"*\"], t) {\n  let e = [];\n  const s = document.createElement(\"input\");\n  return s.setAttribute(\"type\", \"file\"), s.setAttribute(\"visibility\", \"hidden\"), s.setAttribute(\"accept\", n.join(\",\")), t && s.setAttribute(\"multiple\", \"true\"), s.addEventListener(\n    \"click\",\n    (i) => {\n      s.value = \"\";\n    },\n    !1\n  ), new Promise((i, r) => {\n    s.addEventListener(\n      \"change\",\n      (o) => {\n        e = Array.from(o.target.files || []), e.length === 0 ? r(new Error(\"Cancel\")) : i(e);\n      },\n      !1\n    ), window.addEventListener(\n      \"focus\",\n      () => {\n        setTimeout(() => {\n          e.length === 0 && r(new Error(\"Cancel\"));\n        }, 1e3);\n      },\n      { once: !0 }\n    ), s.click();\n  }).then((i) => (s.remove(), i)).catch((i) => {\n    throw s.remove(), i;\n  });\n}\nfunction ai(n, t = Ut.text, e) {\n  return new Promise((s, i) => {\n    const r = new FileReader();\n    switch (r.addEventListener(\"progress\", (o) => {\n      e?.(o.loaded, o.total);\n    }), r.addEventListener(\"load\", (o) => {\n      s(o.target?.result);\n    }), r.addEventListener(\"error\", (o) => {\n      i(o);\n    }), t) {\n      case Ut.dataURL:\n        r.readAsDataURL(n);\n        break;\n      case Ut.binaryString:\n        r.readAsBinaryString(n);\n        break;\n      case Ut.arraybuffer:\n        r.readAsArrayBuffer(n);\n        break;\n      case Ut.text:\n      default:\n        r.readAsText(n);\n    }\n  });\n}\nasync function Qg(n) {\n  const t = await ai(\n    n,\n    Ut.arraybuffer\n  );\n  return Qu(t);\n}\nconst ty = (n) => {\n  let t;\n  return n instanceof File ? t = n.name : t = n, t.match(/\\.([0-9a-z]+)(?:[\\\\?#]|$)/i)?.[1] || \"\";\n};\nfunction ey(n) {\n  switch (n.toLowerCase()) {\n    case \"jpg\":\n    case \"jpeg\":\n      return Mt.JPEG;\n    case \"gif\":\n      return Mt.GIF;\n    case \"svg\":\n      return Mt.SVG;\n    case \"pdf\":\n      return Mt.PDF;\n    case \"png\":\n    default:\n      return Mt.PNG;\n  }\n}\nfunction qh(n, t, e, s, i, r, o) {\n  const a = new FileReader();\n  a.addEventListener(\"load\", (h) => {\n    if (!h.target || !h.target.result)\n      return t(h);\n    if (e.append(h.target.result), o < s.size)\n      qh(\n        n,\n        t,\n        e,\n        s,\n        i,\n        o,\n        Math.min(o + i, s.size)\n      );\n    else\n      return n(e.end());\n  }), a.addEventListener(\"error\", (h) => t(h)), a.readAsArrayBuffer(s.slice(r, o));\n}\nasync function fm(n, t = 1 * 1024 * 1024) {\n  return await new Promise(\n    (e, s) => qh(\n      e,\n      s,\n      new um.ArrayBuffer(),\n      n,\n      t,\n      0,\n      Math.min(t, n.size)\n    )\n  );\n}\nclass sy {\n  axios;\n  // 获取服务器端 文件 MD5 hash 地址\n  checkURL;\n  // 文件上传地址\n  uploadURL;\n  // 要上传的文件\n  file;\n  // 本地文件 MD5 hash\n  fileHash;\n  // 文件切割块大小\n  chunkSize;\n  // 文件总切割数量\n  chunks;\n  // 当前块数\n  currentChunk = 0;\n  // 是否正在上传\n  isUploading = !1;\n  begin = 0;\n  end = 0;\n  timer;\n  time = [0, 0, 0, 0, 0, 0];\n  onExist;\n  onStart;\n  onProgress;\n  onComplete;\n  onTime;\n  constructor(t) {\n    this.axios = new Xh({\n      baseURL: t.baseURL,\n      interceptor: {\n        response: (e) => {\n          e.config.url == this.uploadURL && e.status == 200 && (this.onProgress?.(this.currentChunk++, this.chunks), this.end == this.file.size ? (this.isUploading = !1, this.stopTimeCount(), this.onComplete?.()) : this.isUploading && this.uploadChunk());\n        }\n      }\n    }), this.checkURL = t.checkURL, this.uploadURL = t.uploadURL, this.file = t.file, this.chunkSize = t.chunkSize || 1 * 1024 * 1024, this.chunks = Math.ceil(this.file.size / this.chunkSize), this.onExist = t.onExist, this.onStart = t.onStart, this.onProgress = t.onProgress, this.onComplete = t.onComplete, this.onTime = t.onTime;\n  }\n  async start() {\n    this.fileHash || (this.fileHash = await fm(this.file, this.chunkSize)), (await this.axios.post(this.checkURL, {\n      fileName: this.file.name,\n      fileHash: this.fileHash\n    })).data.isExist ? (this.isUploading = !1, this.onExist?.()) : this.isUploading || (this.onStart?.(), this.startTimeCount(), await this.uploadChunk());\n  }\n  pause() {\n    this.isUploading && (this.isUploading = !1, this.stopTimeCount());\n  }\n  async uploadChunk() {\n    this.isUploading = !0, this.begin = this.currentChunk * this.chunkSize, this.end = Math.min(this.begin + this.chunkSize, this.file.size);\n    const t = this.file.slice(this.begin, this.end), e = new FormData();\n    e.append(\"fileData\", t), e.append(\"fileName\", this.file.name), e.append(\"fileHash\", this.fileHash), e.append(\"chunkIndex\", String(this.currentChunk)), e.append(\"chunks\", String(this.chunks)), await this.axios.postBlob(this.uploadURL, e);\n  }\n  startTimeCount() {\n    this.stopTimeCount(), this.timer = setInterval(() => {\n      Wu(this.time, 1), this.onTime?.(qu(this.time));\n    }, 1e3);\n  }\n  stopTimeCount() {\n    this.timer && (clearInterval(this.timer), this.timer = void 0);\n  }\n}\nvar jh = { exports: {} };\n/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(n) {\n  (function(t, e, s, i) {\n    var r = [\"\", \"webkit\", \"Moz\", \"MS\", \"ms\", \"o\"], o = e.createElement(\"div\"), a = \"function\", h = Math.round, c = Math.abs, l = Date.now;\n    function u(y, v, E) {\n      return setTimeout(x(y, E), v);\n    }\n    function d(y, v, E) {\n      return Array.isArray(y) ? (f(y, E[v], E), !0) : !1;\n    }\n    function f(y, v, E) {\n      var P;\n      if (y)\n        if (y.forEach)\n          y.forEach(v, E);\n        else if (y.length !== i)\n          for (P = 0; P < y.length; )\n            v.call(E, y[P], P, y), P++;\n        else\n          for (P in y)\n            y.hasOwnProperty(P) && v.call(E, y[P], P, y);\n    }\n    function m(y, v, E) {\n      var P = \"DEPRECATED METHOD: \" + v + `\n` + E + ` AT \n`;\n      return function() {\n        var I = new Error(\"get-stack-trace\"), R = I && I.stack ? I.stack.replace(/^[^\\(]+?[\\n$]/gm, \"\").replace(/^\\s+at\\s+/gm, \"\").replace(/^Object.<anonymous>\\s*\\(/gm, \"{anonymous}()@\") : \"Unknown Stack Trace\", $ = t.console && (t.console.warn || t.console.log);\n        return $ && $.call(t.console, P, R), y.apply(this, arguments);\n      };\n    }\n    var p;\n    typeof Object.assign != \"function\" ? p = function(v) {\n      if (v === i || v === null)\n        throw new TypeError(\"Cannot convert undefined or null to object\");\n      for (var E = Object(v), P = 1; P < arguments.length; P++) {\n        var I = arguments[P];\n        if (I !== i && I !== null)\n          for (var R in I)\n            I.hasOwnProperty(R) && (E[R] = I[R]);\n      }\n      return E;\n    } : p = Object.assign;\n    var S = m(function(v, E, P) {\n      for (var I = Object.keys(E), R = 0; R < I.length; )\n        (!P || P && v[I[R]] === i) && (v[I[R]] = E[I[R]]), R++;\n      return v;\n    }, \"extend\", \"Use `assign`.\"), g = m(function(v, E) {\n      return S(v, E, !0);\n    }, \"merge\", \"Use `assign`.\");\n    function b(y, v, E) {\n      var P = v.prototype, I;\n      I = y.prototype = Object.create(P), I.constructor = y, I._super = P, E && p(I, E);\n    }\n    function x(y, v) {\n      return function() {\n        return y.apply(v, arguments);\n      };\n    }\n    function w(y, v) {\n      return typeof y == a ? y.apply(v && v[0] || i, v) : y;\n    }\n    function C(y, v) {\n      return y === i ? v : y;\n    }\n    function _(y, v, E) {\n      f(G(v), function(P) {\n        y.addEventListener(P, E, !1);\n      });\n    }\n    function D(y, v, E) {\n      f(G(v), function(P) {\n        y.removeEventListener(P, E, !1);\n      });\n    }\n    function z(y, v) {\n      for (; y; ) {\n        if (y == v)\n          return !0;\n        y = y.parentNode;\n      }\n      return !1;\n    }\n    function B(y, v) {\n      return y.indexOf(v) > -1;\n    }\n    function G(y) {\n      return y.trim().split(/\\s+/g);\n    }\n    function V(y, v, E) {\n      if (y.indexOf && !E)\n        return y.indexOf(v);\n      for (var P = 0; P < y.length; ) {\n        if (E && y[P][E] == v || !E && y[P] === v)\n          return P;\n        P++;\n      }\n      return -1;\n    }\n    function j(y) {\n      return Array.prototype.slice.call(y, 0);\n    }\n    function et(y, v, E) {\n      for (var P = [], I = [], R = 0; R < y.length; ) {\n        var $ = v ? y[R][v] : y[R];\n        V(I, $) < 0 && P.push(y[R]), I[R] = $, R++;\n      }\n      return E && (v ? P = P.sort(function(yt, Et) {\n        return yt[v] > Et[v];\n      }) : P = P.sort()), P;\n    }\n    function J(y, v) {\n      for (var E, P, I = v[0].toUpperCase() + v.slice(1), R = 0; R < r.length; ) {\n        if (E = r[R], P = E ? E + I : v, P in y)\n          return P;\n        R++;\n      }\n      return i;\n    }\n    var Ht = 1;\n    function Dt() {\n      return Ht++;\n    }\n    function Yt(y) {\n      var v = y.ownerDocument || y;\n      return v.defaultView || v.parentWindow || t;\n    }\n    var Wt = /mobile|tablet|ip(ad|hone|od)|android/i, L = \"ontouchstart\" in t, k = J(t, \"PointerEvent\") !== i, F = L && Wt.test(navigator.userAgent), H = \"touch\", Ct = \"pen\", Zt = \"mouse\", rn = \"kinect\", on = 25, ut = 1, se = 2, st = 4, bt = 8, Qe = 1, Re = 2, Oe = 4, be = 8, A = 16, ot = Re | Oe, ze = be | A, fo = ot | ze, mo = [\"x\", \"y\"], an = [\"clientX\", \"clientY\"];\n    function Bt(y, v) {\n      var E = this;\n      this.manager = y, this.callback = v, this.element = y.element, this.target = y.options.inputTarget, this.domHandler = function(P) {\n        w(y.options.enable, [y]) && E.handler(P);\n      }, this.init();\n    }\n    Bt.prototype = {\n      /**\n       * should handle the inputEvent data and trigger the callback\n       * @virtual\n       */\n      handler: function() {\n      },\n      /**\n       * bind the events\n       */\n      init: function() {\n        this.evEl && _(this.element, this.evEl, this.domHandler), this.evTarget && _(this.target, this.evTarget, this.domHandler), this.evWin && _(Yt(this.element), this.evWin, this.domHandler);\n      },\n      /**\n       * unbind the events\n       */\n      destroy: function() {\n        this.evEl && D(this.element, this.evEl, this.domHandler), this.evTarget && D(this.target, this.evTarget, this.domHandler), this.evWin && D(Yt(this.element), this.evWin, this.domHandler);\n      }\n    };\n    function Bl(y) {\n      var v, E = y.options.inputClass;\n      return E ? v = E : k ? v = pi : F ? v = ln : L ? v = gi : v = cn, new v(y, Xl);\n    }\n    function Xl(y, v, E) {\n      var P = E.pointers.length, I = E.changedPointers.length, R = v & ut && P - I === 0, $ = v & (st | bt) && P - I === 0;\n      E.isFirst = !!R, E.isFinal = !!$, R && (y.session = {}), E.eventType = v, Fl(y, E), y.emit(\"hammer.input\", E), y.recognize(E), y.session.prevInput = E;\n    }\n    function Fl(y, v) {\n      var E = y.session, P = v.pointers, I = P.length;\n      E.firstInput || (E.firstInput = po(v)), I > 1 && !E.firstMultiple ? E.firstMultiple = po(v) : I === 1 && (E.firstMultiple = !1);\n      var R = E.firstInput, $ = E.firstMultiple, ft = $ ? $.center : R.center, yt = v.center = go(P);\n      v.timeStamp = l(), v.deltaTime = v.timeStamp - R.timeStamp, v.angle = mi(ft, yt), v.distance = hn(ft, yt), Ul(E, v), v.offsetDirection = xo(v.deltaX, v.deltaY);\n      var Et = yo(v.deltaTime, v.deltaX, v.deltaY);\n      v.overallVelocityX = Et.x, v.overallVelocityY = Et.y, v.overallVelocity = c(Et.x) > c(Et.y) ? Et.x : Et.y, v.scale = $ ? $l($.pointers, P) : 1, v.rotation = $ ? Vl($.pointers, P) : 0, v.maxPointers = E.prevInput ? v.pointers.length > E.prevInput.maxPointers ? v.pointers.length : E.prevInput.maxPointers : v.pointers.length, Gl(E, v);\n      var ie = y.element;\n      z(v.srcEvent.target, ie) && (ie = v.srcEvent.target), v.target = ie;\n    }\n    function Ul(y, v) {\n      var E = v.center, P = y.offsetDelta || {}, I = y.prevDelta || {}, R = y.prevInput || {};\n      (v.eventType === ut || R.eventType === st) && (I = y.prevDelta = {\n        x: R.deltaX || 0,\n        y: R.deltaY || 0\n      }, P = y.offsetDelta = {\n        x: E.x,\n        y: E.y\n      }), v.deltaX = I.x + (E.x - P.x), v.deltaY = I.y + (E.y - P.y);\n    }\n    function Gl(y, v) {\n      var E = y.lastInterval || v, P = v.timeStamp - E.timeStamp, I, R, $, ft;\n      if (v.eventType != bt && (P > on || E.velocity === i)) {\n        var yt = v.deltaX - E.deltaX, Et = v.deltaY - E.deltaY, ie = yo(P, yt, Et);\n        R = ie.x, $ = ie.y, I = c(ie.x) > c(ie.y) ? ie.x : ie.y, ft = xo(yt, Et), y.lastInterval = v;\n      } else\n        I = E.velocity, R = E.velocityX, $ = E.velocityY, ft = E.direction;\n      v.velocity = I, v.velocityX = R, v.velocityY = $, v.direction = ft;\n    }\n    function po(y) {\n      for (var v = [], E = 0; E < y.pointers.length; )\n        v[E] = {\n          clientX: h(y.pointers[E].clientX),\n          clientY: h(y.pointers[E].clientY)\n        }, E++;\n      return {\n        timeStamp: l(),\n        pointers: v,\n        center: go(v),\n        deltaX: y.deltaX,\n        deltaY: y.deltaY\n      };\n    }\n    function go(y) {\n      var v = y.length;\n      if (v === 1)\n        return {\n          x: h(y[0].clientX),\n          y: h(y[0].clientY)\n        };\n      for (var E = 0, P = 0, I = 0; I < v; )\n        E += y[I].clientX, P += y[I].clientY, I++;\n      return {\n        x: h(E / v),\n        y: h(P / v)\n      };\n    }\n    function yo(y, v, E) {\n      return {\n        x: v / y || 0,\n        y: E / y || 0\n      };\n    }\n    function xo(y, v) {\n      return y === v ? Qe : c(y) >= c(v) ? y < 0 ? Re : Oe : v < 0 ? be : A;\n    }\n    function hn(y, v, E) {\n      E || (E = mo);\n      var P = v[E[0]] - y[E[0]], I = v[E[1]] - y[E[1]];\n      return Math.sqrt(P * P + I * I);\n    }\n    function mi(y, v, E) {\n      E || (E = mo);\n      var P = v[E[0]] - y[E[0]], I = v[E[1]] - y[E[1]];\n      return Math.atan2(I, P) * 180 / Math.PI;\n    }\n    function Vl(y, v) {\n      return mi(v[1], v[0], an) + mi(y[1], y[0], an);\n    }\n    function $l(y, v) {\n      return hn(v[0], v[1], an) / hn(y[0], y[1], an);\n    }\n    var ql = {\n      mousedown: ut,\n      mousemove: se,\n      mouseup: st\n    }, jl = \"mousedown\", Hl = \"mousemove mouseup\";\n    function cn() {\n      this.evEl = jl, this.evWin = Hl, this.pressed = !1, Bt.apply(this, arguments);\n    }\n    b(cn, Bt, {\n      /**\n       * handle mouse events\n       * @param {Object} ev\n       */\n      handler: function(v) {\n        var E = ql[v.type];\n        E & ut && v.button === 0 && (this.pressed = !0), E & se && v.which !== 1 && (E = st), this.pressed && (E & st && (this.pressed = !1), this.callback(this.manager, E, {\n          pointers: [v],\n          changedPointers: [v],\n          pointerType: Zt,\n          srcEvent: v\n        }));\n      }\n    });\n    var Wl = {\n      pointerdown: ut,\n      pointermove: se,\n      pointerup: st,\n      pointercancel: bt,\n      pointerout: bt\n    }, Zl = {\n      2: H,\n      3: Ct,\n      4: Zt,\n      5: rn\n      // see https://twitter.com/jacobrossi/status/480596438489890816\n    }, wo = \"pointerdown\", bo = \"pointermove pointerup pointercancel\";\n    t.MSPointerEvent && !t.PointerEvent && (wo = \"MSPointerDown\", bo = \"MSPointerMove MSPointerUp MSPointerCancel\");\n    function pi() {\n      this.evEl = wo, this.evWin = bo, Bt.apply(this, arguments), this.store = this.manager.session.pointerEvents = [];\n    }\n    b(pi, Bt, {\n      /**\n       * handle mouse events\n       * @param {Object} ev\n       */\n      handler: function(v) {\n        var E = this.store, P = !1, I = v.type.toLowerCase().replace(\"ms\", \"\"), R = Wl[I], $ = Zl[v.pointerType] || v.pointerType, ft = $ == H, yt = V(E, v.pointerId, \"pointerId\");\n        R & ut && (v.button === 0 || ft) ? yt < 0 && (E.push(v), yt = E.length - 1) : R & (st | bt) && (P = !0), !(yt < 0) && (E[yt] = v, this.callback(this.manager, R, {\n          pointers: E,\n          changedPointers: [v],\n          pointerType: $,\n          srcEvent: v\n        }), P && E.splice(yt, 1));\n      }\n    });\n    var Jl = {\n      touchstart: ut,\n      touchmove: se,\n      touchend: st,\n      touchcancel: bt\n    }, Kl = \"touchstart\", Ql = \"touchstart touchmove touchend touchcancel\";\n    function vo() {\n      this.evTarget = Kl, this.evWin = Ql, this.started = !1, Bt.apply(this, arguments);\n    }\n    b(vo, Bt, {\n      handler: function(v) {\n        var E = Jl[v.type];\n        if (E === ut && (this.started = !0), !!this.started) {\n          var P = tu.call(this, v, E);\n          E & (st | bt) && P[0].length - P[1].length === 0 && (this.started = !1), this.callback(this.manager, E, {\n            pointers: P[0],\n            changedPointers: P[1],\n            pointerType: H,\n            srcEvent: v\n          });\n        }\n      }\n    });\n    function tu(y, v) {\n      var E = j(y.touches), P = j(y.changedTouches);\n      return v & (st | bt) && (E = et(E.concat(P), \"identifier\", !0)), [E, P];\n    }\n    var eu = {\n      touchstart: ut,\n      touchmove: se,\n      touchend: st,\n      touchcancel: bt\n    }, su = \"touchstart touchmove touchend touchcancel\";\n    function ln() {\n      this.evTarget = su, this.targetIds = {}, Bt.apply(this, arguments);\n    }\n    b(ln, Bt, {\n      handler: function(v) {\n        var E = eu[v.type], P = nu.call(this, v, E);\n        P && this.callback(this.manager, E, {\n          pointers: P[0],\n          changedPointers: P[1],\n          pointerType: H,\n          srcEvent: v\n        });\n      }\n    });\n    function nu(y, v) {\n      var E = j(y.touches), P = this.targetIds;\n      if (v & (ut | se) && E.length === 1)\n        return P[E[0].identifier] = !0, [E, E];\n      var I, R, $ = j(y.changedTouches), ft = [], yt = this.target;\n      if (R = E.filter(function(Et) {\n        return z(Et.target, yt);\n      }), v === ut)\n        for (I = 0; I < R.length; )\n          P[R[I].identifier] = !0, I++;\n      for (I = 0; I < $.length; )\n        P[$[I].identifier] && ft.push($[I]), v & (st | bt) && delete P[$[I].identifier], I++;\n      if (ft.length)\n        return [\n          // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n          et(R.concat(ft), \"identifier\", !0),\n          ft\n        ];\n    }\n    var iu = 2500, _o = 25;\n    function gi() {\n      Bt.apply(this, arguments);\n      var y = x(this.handler, this);\n      this.touch = new ln(this.manager, y), this.mouse = new cn(this.manager, y), this.primaryTouch = null, this.lastTouches = [];\n    }\n    b(gi, Bt, {\n      /**\n       * handle mouse and touch events\n       * @param {Hammer} manager\n       * @param {String} inputEvent\n       * @param {Object} inputData\n       */\n      handler: function(v, E, P) {\n        var I = P.pointerType == H, R = P.pointerType == Zt;\n        if (!(R && P.sourceCapabilities && P.sourceCapabilities.firesTouchEvents)) {\n          if (I)\n            ru.call(this, E, P);\n          else if (R && ou.call(this, P))\n            return;\n          this.callback(v, E, P);\n        }\n      },\n      /**\n       * remove the event listeners\n       */\n      destroy: function() {\n        this.touch.destroy(), this.mouse.destroy();\n      }\n    });\n    function ru(y, v) {\n      y & ut ? (this.primaryTouch = v.changedPointers[0].identifier, So.call(this, v)) : y & (st | bt) && So.call(this, v);\n    }\n    function So(y) {\n      var v = y.changedPointers[0];\n      if (v.identifier === this.primaryTouch) {\n        var E = { x: v.clientX, y: v.clientY };\n        this.lastTouches.push(E);\n        var P = this.lastTouches, I = function() {\n          var R = P.indexOf(E);\n          R > -1 && P.splice(R, 1);\n        };\n        setTimeout(I, iu);\n      }\n    }\n    function ou(y) {\n      for (var v = y.srcEvent.clientX, E = y.srcEvent.clientY, P = 0; P < this.lastTouches.length; P++) {\n        var I = this.lastTouches[P], R = Math.abs(v - I.x), $ = Math.abs(E - I.y);\n        if (R <= _o && $ <= _o)\n          return !0;\n      }\n      return !1;\n    }\n    var Co = J(o.style, \"touchAction\"), Eo = Co !== i, Po = \"compute\", To = \"auto\", yi = \"manipulation\", Ne = \"none\", xs = \"pan-x\", ws = \"pan-y\", un = hu();\n    function xi(y, v) {\n      this.manager = y, this.set(v);\n    }\n    xi.prototype = {\n      /**\n       * set the touchAction value on the element or enable the polyfill\n       * @param {String} value\n       */\n      set: function(y) {\n        y == Po && (y = this.compute()), Eo && this.manager.element.style && un[y] && (this.manager.element.style[Co] = y), this.actions = y.toLowerCase().trim();\n      },\n      /**\n       * just re-set the touchAction value\n       */\n      update: function() {\n        this.set(this.manager.options.touchAction);\n      },\n      /**\n       * compute the value for the touchAction property based on the recognizer's settings\n       * @returns {String} value\n       */\n      compute: function() {\n        var y = [];\n        return f(this.manager.recognizers, function(v) {\n          w(v.options.enable, [v]) && (y = y.concat(v.getTouchAction()));\n        }), au(y.join(\" \"));\n      },\n      /**\n       * this method is called on each input cycle and provides the preventing of the browser behavior\n       * @param {Object} input\n       */\n      preventDefaults: function(y) {\n        var v = y.srcEvent, E = y.offsetDirection;\n        if (this.manager.session.prevented) {\n          v.preventDefault();\n          return;\n        }\n        var P = this.actions, I = B(P, Ne) && !un[Ne], R = B(P, ws) && !un[ws], $ = B(P, xs) && !un[xs];\n        if (I) {\n          var ft = y.pointers.length === 1, yt = y.distance < 2, Et = y.deltaTime < 250;\n          if (ft && yt && Et)\n            return;\n        }\n        if (!($ && R) && (I || R && E & ot || $ && E & ze))\n          return this.preventSrc(v);\n      },\n      /**\n       * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n       * @param {Object} srcEvent\n       */\n      preventSrc: function(y) {\n        this.manager.session.prevented = !0, y.preventDefault();\n      }\n    };\n    function au(y) {\n      if (B(y, Ne))\n        return Ne;\n      var v = B(y, xs), E = B(y, ws);\n      return v && E ? Ne : v || E ? v ? xs : ws : B(y, yi) ? yi : To;\n    }\n    function hu() {\n      if (!Eo)\n        return !1;\n      var y = {}, v = t.CSS && t.CSS.supports;\n      return [\"auto\", \"manipulation\", \"pan-y\", \"pan-x\", \"pan-x pan-y\", \"none\"].forEach(function(E) {\n        y[E] = v ? t.CSS.supports(\"touch-action\", E) : !0;\n      }), y;\n    }\n    var fn = 1, Xt = 2, ts = 4, ve = 8, ce = ve, bs = 16, ne = 32;\n    function le(y) {\n      this.options = p({}, this.defaults, y || {}), this.id = Dt(), this.manager = null, this.options.enable = C(this.options.enable, !0), this.state = fn, this.simultaneous = {}, this.requireFail = [];\n    }\n    le.prototype = {\n      /**\n       * @virtual\n       * @type {Object}\n       */\n      defaults: {},\n      /**\n       * set options\n       * @param {Object} options\n       * @return {Recognizer}\n       */\n      set: function(y) {\n        return p(this.options, y), this.manager && this.manager.touchAction.update(), this;\n      },\n      /**\n       * recognize simultaneous with an other recognizer.\n       * @param {Recognizer} otherRecognizer\n       * @returns {Recognizer} this\n       */\n      recognizeWith: function(y) {\n        if (d(y, \"recognizeWith\", this))\n          return this;\n        var v = this.simultaneous;\n        return y = dn(y, this), v[y.id] || (v[y.id] = y, y.recognizeWith(this)), this;\n      },\n      /**\n       * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n       * @param {Recognizer} otherRecognizer\n       * @returns {Recognizer} this\n       */\n      dropRecognizeWith: function(y) {\n        return d(y, \"dropRecognizeWith\", this) ? this : (y = dn(y, this), delete this.simultaneous[y.id], this);\n      },\n      /**\n       * recognizer can only run when an other is failing\n       * @param {Recognizer} otherRecognizer\n       * @returns {Recognizer} this\n       */\n      requireFailure: function(y) {\n        if (d(y, \"requireFailure\", this))\n          return this;\n        var v = this.requireFail;\n        return y = dn(y, this), V(v, y) === -1 && (v.push(y), y.requireFailure(this)), this;\n      },\n      /**\n       * drop the requireFailure link. it does not remove the link on the other recognizer.\n       * @param {Recognizer} otherRecognizer\n       * @returns {Recognizer} this\n       */\n      dropRequireFailure: function(y) {\n        if (d(y, \"dropRequireFailure\", this))\n          return this;\n        y = dn(y, this);\n        var v = V(this.requireFail, y);\n        return v > -1 && this.requireFail.splice(v, 1), this;\n      },\n      /**\n       * has require failures boolean\n       * @returns {boolean}\n       */\n      hasRequireFailures: function() {\n        return this.requireFail.length > 0;\n      },\n      /**\n       * if the recognizer can recognize simultaneous with an other recognizer\n       * @param {Recognizer} otherRecognizer\n       * @returns {Boolean}\n       */\n      canRecognizeWith: function(y) {\n        return !!this.simultaneous[y.id];\n      },\n      /**\n       * You should use `tryEmit` instead of `emit` directly to check\n       * that all the needed recognizers has failed before emitting.\n       * @param {Object} input\n       */\n      emit: function(y) {\n        var v = this, E = this.state;\n        function P(I) {\n          v.manager.emit(I, y);\n        }\n        E < ve && P(v.options.event + Mo(E)), P(v.options.event), y.additionalEvent && P(y.additionalEvent), E >= ve && P(v.options.event + Mo(E));\n      },\n      /**\n       * Check that all the require failure recognizers has failed,\n       * if true, it emits a gesture event,\n       * otherwise, setup the state to FAILED.\n       * @param {Object} input\n       */\n      tryEmit: function(y) {\n        if (this.canEmit())\n          return this.emit(y);\n        this.state = ne;\n      },\n      /**\n       * can we emit?\n       * @returns {boolean}\n       */\n      canEmit: function() {\n        for (var y = 0; y < this.requireFail.length; ) {\n          if (!(this.requireFail[y].state & (ne | fn)))\n            return !1;\n          y++;\n        }\n        return !0;\n      },\n      /**\n       * update the recognizer\n       * @param {Object} inputData\n       */\n      recognize: function(y) {\n        var v = p({}, y);\n        if (!w(this.options.enable, [this, v])) {\n          this.reset(), this.state = ne;\n          return;\n        }\n        this.state & (ce | bs | ne) && (this.state = fn), this.state = this.process(v), this.state & (Xt | ts | ve | bs) && this.tryEmit(v);\n      },\n      /**\n       * return the state of the recognizer\n       * the actual recognizing happens in this method\n       * @virtual\n       * @param {Object} inputData\n       * @returns {Const} STATE\n       */\n      process: function(y) {\n      },\n      // jshint ignore:line\n      /**\n       * return the preferred touch-action\n       * @virtual\n       * @returns {Array}\n       */\n      getTouchAction: function() {\n      },\n      /**\n       * called when the gesture isn't allowed to recognize\n       * like when another is being recognized or it is disabled\n       * @virtual\n       */\n      reset: function() {\n      }\n    };\n    function Mo(y) {\n      return y & bs ? \"cancel\" : y & ve ? \"end\" : y & ts ? \"move\" : y & Xt ? \"start\" : \"\";\n    }\n    function Ao(y) {\n      return y == A ? \"down\" : y == be ? \"up\" : y == Re ? \"left\" : y == Oe ? \"right\" : \"\";\n    }\n    function dn(y, v) {\n      var E = v.manager;\n      return E ? E.get(y) : y;\n    }\n    function Jt() {\n      le.apply(this, arguments);\n    }\n    b(Jt, le, {\n      /**\n       * @namespace\n       * @memberof AttrRecognizer\n       */\n      defaults: {\n        /**\n         * @type {Number}\n         * @default 1\n         */\n        pointers: 1\n      },\n      /**\n       * Used to check if it the recognizer receives valid input, like input.distance > 10.\n       * @memberof AttrRecognizer\n       * @param {Object} input\n       * @returns {Boolean} recognized\n       */\n      attrTest: function(y) {\n        var v = this.options.pointers;\n        return v === 0 || y.pointers.length === v;\n      },\n      /**\n       * Process the input and return the state for the recognizer\n       * @memberof AttrRecognizer\n       * @param {Object} input\n       * @returns {*} State\n       */\n      process: function(y) {\n        var v = this.state, E = y.eventType, P = v & (Xt | ts), I = this.attrTest(y);\n        return P && (E & bt || !I) ? v | bs : P || I ? E & st ? v | ve : v & Xt ? v | ts : Xt : ne;\n      }\n    });\n    function mn() {\n      Jt.apply(this, arguments), this.pX = null, this.pY = null;\n    }\n    b(mn, Jt, {\n      /**\n       * @namespace\n       * @memberof PanRecognizer\n       */\n      defaults: {\n        event: \"pan\",\n        threshold: 10,\n        pointers: 1,\n        direction: fo\n      },\n      getTouchAction: function() {\n        var y = this.options.direction, v = [];\n        return y & ot && v.push(ws), y & ze && v.push(xs), v;\n      },\n      directionTest: function(y) {\n        var v = this.options, E = !0, P = y.distance, I = y.direction, R = y.deltaX, $ = y.deltaY;\n        return I & v.direction || (v.direction & ot ? (I = R === 0 ? Qe : R < 0 ? Re : Oe, E = R != this.pX, P = Math.abs(y.deltaX)) : (I = $ === 0 ? Qe : $ < 0 ? be : A, E = $ != this.pY, P = Math.abs(y.deltaY))), y.direction = I, E && P > v.threshold && I & v.direction;\n      },\n      attrTest: function(y) {\n        return Jt.prototype.attrTest.call(this, y) && (this.state & Xt || !(this.state & Xt) && this.directionTest(y));\n      },\n      emit: function(y) {\n        this.pX = y.deltaX, this.pY = y.deltaY;\n        var v = Ao(y.direction);\n        v && (y.additionalEvent = this.options.event + v), this._super.emit.call(this, y);\n      }\n    });\n    function wi() {\n      Jt.apply(this, arguments);\n    }\n    b(wi, Jt, {\n      /**\n       * @namespace\n       * @memberof PinchRecognizer\n       */\n      defaults: {\n        event: \"pinch\",\n        threshold: 0,\n        pointers: 2\n      },\n      getTouchAction: function() {\n        return [Ne];\n      },\n      attrTest: function(y) {\n        return this._super.attrTest.call(this, y) && (Math.abs(y.scale - 1) > this.options.threshold || this.state & Xt);\n      },\n      emit: function(y) {\n        if (y.scale !== 1) {\n          var v = y.scale < 1 ? \"in\" : \"out\";\n          y.additionalEvent = this.options.event + v;\n        }\n        this._super.emit.call(this, y);\n      }\n    });\n    function bi() {\n      le.apply(this, arguments), this._timer = null, this._input = null;\n    }\n    b(bi, le, {\n      /**\n       * @namespace\n       * @memberof PressRecognizer\n       */\n      defaults: {\n        event: \"press\",\n        pointers: 1,\n        time: 251,\n        // minimal time of the pointer to be pressed\n        threshold: 9\n        // a minimal movement is ok, but keep it low\n      },\n      getTouchAction: function() {\n        return [To];\n      },\n      process: function(y) {\n        var v = this.options, E = y.pointers.length === v.pointers, P = y.distance < v.threshold, I = y.deltaTime > v.time;\n        if (this._input = y, !P || !E || y.eventType & (st | bt) && !I)\n          this.reset();\n        else if (y.eventType & ut)\n          this.reset(), this._timer = u(function() {\n            this.state = ce, this.tryEmit();\n          }, v.time, this);\n        else if (y.eventType & st)\n          return ce;\n        return ne;\n      },\n      reset: function() {\n        clearTimeout(this._timer);\n      },\n      emit: function(y) {\n        this.state === ce && (y && y.eventType & st ? this.manager.emit(this.options.event + \"up\", y) : (this._input.timeStamp = l(), this.manager.emit(this.options.event, this._input)));\n      }\n    });\n    function vi() {\n      Jt.apply(this, arguments);\n    }\n    b(vi, Jt, {\n      /**\n       * @namespace\n       * @memberof RotateRecognizer\n       */\n      defaults: {\n        event: \"rotate\",\n        threshold: 0,\n        pointers: 2\n      },\n      getTouchAction: function() {\n        return [Ne];\n      },\n      attrTest: function(y) {\n        return this._super.attrTest.call(this, y) && (Math.abs(y.rotation) > this.options.threshold || this.state & Xt);\n      }\n    });\n    function _i() {\n      Jt.apply(this, arguments);\n    }\n    b(_i, Jt, {\n      /**\n       * @namespace\n       * @memberof SwipeRecognizer\n       */\n      defaults: {\n        event: \"swipe\",\n        threshold: 10,\n        velocity: 0.3,\n        direction: ot | ze,\n        pointers: 1\n      },\n      getTouchAction: function() {\n        return mn.prototype.getTouchAction.call(this);\n      },\n      attrTest: function(y) {\n        var v = this.options.direction, E;\n        return v & (ot | ze) ? E = y.overallVelocity : v & ot ? E = y.overallVelocityX : v & ze && (E = y.overallVelocityY), this._super.attrTest.call(this, y) && v & y.offsetDirection && y.distance > this.options.threshold && y.maxPointers == this.options.pointers && c(E) > this.options.velocity && y.eventType & st;\n      },\n      emit: function(y) {\n        var v = Ao(y.offsetDirection);\n        v && this.manager.emit(this.options.event + v, y), this.manager.emit(this.options.event, y);\n      }\n    });\n    function pn() {\n      le.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0;\n    }\n    b(pn, le, {\n      /**\n       * @namespace\n       * @memberof PinchRecognizer\n       */\n      defaults: {\n        event: \"tap\",\n        pointers: 1,\n        taps: 1,\n        interval: 300,\n        // max time between the multi-tap taps\n        time: 250,\n        // max time of the pointer to be down (like finger on the screen)\n        threshold: 9,\n        // a minimal movement is ok, but keep it low\n        posThreshold: 10\n        // a multi-tap can be a bit off the initial position\n      },\n      getTouchAction: function() {\n        return [yi];\n      },\n      process: function(y) {\n        var v = this.options, E = y.pointers.length === v.pointers, P = y.distance < v.threshold, I = y.deltaTime < v.time;\n        if (this.reset(), y.eventType & ut && this.count === 0)\n          return this.failTimeout();\n        if (P && I && E) {\n          if (y.eventType != st)\n            return this.failTimeout();\n          var R = this.pTime ? y.timeStamp - this.pTime < v.interval : !0, $ = !this.pCenter || hn(this.pCenter, y.center) < v.posThreshold;\n          this.pTime = y.timeStamp, this.pCenter = y.center, !$ || !R ? this.count = 1 : this.count += 1, this._input = y;\n          var ft = this.count % v.taps;\n          if (ft === 0)\n            return this.hasRequireFailures() ? (this._timer = u(function() {\n              this.state = ce, this.tryEmit();\n            }, v.interval, this), Xt) : ce;\n        }\n        return ne;\n      },\n      failTimeout: function() {\n        return this._timer = u(function() {\n          this.state = ne;\n        }, this.options.interval, this), ne;\n      },\n      reset: function() {\n        clearTimeout(this._timer);\n      },\n      emit: function() {\n        this.state == ce && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input));\n      }\n    });\n    function ue(y, v) {\n      return v = v || {}, v.recognizers = C(v.recognizers, ue.defaults.preset), new Si(y, v);\n    }\n    ue.VERSION = \"2.0.7\", ue.defaults = {\n      /**\n       * set if DOM events are being triggered.\n       * But this is slower and unused by simple implementations, so disabled by default.\n       * @type {Boolean}\n       * @default false\n       */\n      domEvents: !1,\n      /**\n       * The value for the touchAction property/fallback.\n       * When set to `compute` it will magically set the correct value based on the added recognizers.\n       * @type {String}\n       * @default compute\n       */\n      touchAction: Po,\n      /**\n       * @type {Boolean}\n       * @default true\n       */\n      enable: !0,\n      /**\n       * EXPERIMENTAL FEATURE -- can be removed/changed\n       * Change the parent input target element.\n       * If Null, then it is being set the to main element.\n       * @type {Null|EventTarget}\n       * @default null\n       */\n      inputTarget: null,\n      /**\n       * force an input class\n       * @type {Null|Function}\n       * @default null\n       */\n      inputClass: null,\n      /**\n       * Default recognizer setup when calling `Hammer()`\n       * When creating a new Manager these will be skipped.\n       * @type {Array}\n       */\n      preset: [\n        // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n        [vi, { enable: !1 }],\n        [wi, { enable: !1 }, [\"rotate\"]],\n        [_i, { direction: ot }],\n        [mn, { direction: ot }, [\"swipe\"]],\n        [pn],\n        [pn, { event: \"doubletap\", taps: 2 }, [\"tap\"]],\n        [bi]\n      ],\n      /**\n       * Some CSS properties can be used to improve the working of Hammer.\n       * Add them to this method and they will be set when creating a new Manager.\n       * @namespace\n       */\n      cssProps: {\n        /**\n         * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n         * @type {String}\n         * @default 'none'\n         */\n        userSelect: \"none\",\n        /**\n         * Disable the Windows Phone grippers when pressing an element.\n         * @type {String}\n         * @default 'none'\n         */\n        touchSelect: \"none\",\n        /**\n         * Disables the default callout shown when you touch and hold a touch target.\n         * On iOS, when you touch and hold a touch target such as a link, Safari displays\n         * a callout containing information about the link. This property allows you to disable that callout.\n         * @type {String}\n         * @default 'none'\n         */\n        touchCallout: \"none\",\n        /**\n         * Specifies whether zooming is enabled. Used by IE10>\n         * @type {String}\n         * @default 'none'\n         */\n        contentZooming: \"none\",\n        /**\n         * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n         * @type {String}\n         * @default 'none'\n         */\n        userDrag: \"none\",\n        /**\n         * Overrides the highlight color shown when the user taps a link or a JavaScript\n         * clickable element in iOS. This property obeys the alpha value, if specified.\n         * @type {String}\n         * @default 'rgba(0,0,0,0)'\n         */\n        tapHighlightColor: \"rgba(0,0,0,0)\"\n      }\n    };\n    var cu = 1, Io = 2;\n    function Si(y, v) {\n      this.options = p({}, ue.defaults, v || {}), this.options.inputTarget = this.options.inputTarget || y, this.handlers = {}, this.session = {}, this.recognizers = [], this.oldCssProps = {}, this.element = y, this.input = Bl(this), this.touchAction = new xi(this, this.options.touchAction), ko(this, !0), f(this.options.recognizers, function(E) {\n        var P = this.add(new E[0](E[1]));\n        E[2] && P.recognizeWith(E[2]), E[3] && P.requireFailure(E[3]);\n      }, this);\n    }\n    Si.prototype = {\n      /**\n       * set options\n       * @param {Object} options\n       * @returns {Manager}\n       */\n      set: function(y) {\n        return p(this.options, y), y.touchAction && this.touchAction.update(), y.inputTarget && (this.input.destroy(), this.input.target = y.inputTarget, this.input.init()), this;\n      },\n      /**\n       * stop recognizing for this session.\n       * This session will be discarded, when a new [input]start event is fired.\n       * When forced, the recognizer cycle is stopped immediately.\n       * @param {Boolean} [force]\n       */\n      stop: function(y) {\n        this.session.stopped = y ? Io : cu;\n      },\n      /**\n       * run the recognizers!\n       * called by the inputHandler function on every movement of the pointers (touches)\n       * it walks through all the recognizers and tries to detect the gesture that is being made\n       * @param {Object} inputData\n       */\n      recognize: function(y) {\n        var v = this.session;\n        if (!v.stopped) {\n          this.touchAction.preventDefaults(y);\n          var E, P = this.recognizers, I = v.curRecognizer;\n          (!I || I && I.state & ce) && (I = v.curRecognizer = null);\n          for (var R = 0; R < P.length; )\n            E = P[R], v.stopped !== Io && // 1\n            (!I || E == I || // 2\n            E.canRecognizeWith(I)) ? E.recognize(y) : E.reset(), !I && E.state & (Xt | ts | ve) && (I = v.curRecognizer = E), R++;\n        }\n      },\n      /**\n       * get a recognizer by its event name.\n       * @param {Recognizer|String} recognizer\n       * @returns {Recognizer|Null}\n       */\n      get: function(y) {\n        if (y instanceof le)\n          return y;\n        for (var v = this.recognizers, E = 0; E < v.length; E++)\n          if (v[E].options.event == y)\n            return v[E];\n        return null;\n      },\n      /**\n       * add a recognizer to the manager\n       * existing recognizers with the same event name will be removed\n       * @param {Recognizer} recognizer\n       * @returns {Recognizer|Manager}\n       */\n      add: function(y) {\n        if (d(y, \"add\", this))\n          return this;\n        var v = this.get(y.options.event);\n        return v && this.remove(v), this.recognizers.push(y), y.manager = this, this.touchAction.update(), y;\n      },\n      /**\n       * remove a recognizer by name or instance\n       * @param {Recognizer|String} recognizer\n       * @returns {Manager}\n       */\n      remove: function(y) {\n        if (d(y, \"remove\", this))\n          return this;\n        if (y = this.get(y), y) {\n          var v = this.recognizers, E = V(v, y);\n          E !== -1 && (v.splice(E, 1), this.touchAction.update());\n        }\n        return this;\n      },\n      /**\n       * bind event\n       * @param {String} events\n       * @param {Function} handler\n       * @returns {EventEmitter} this\n       */\n      on: function(y, v) {\n        if (y !== i && v !== i) {\n          var E = this.handlers;\n          return f(G(y), function(P) {\n            E[P] = E[P] || [], E[P].push(v);\n          }), this;\n        }\n      },\n      /**\n       * unbind event, leave emit blank to remove all handlers\n       * @param {String} events\n       * @param {Function} [handler]\n       * @returns {EventEmitter} this\n       */\n      off: function(y, v) {\n        if (y !== i) {\n          var E = this.handlers;\n          return f(G(y), function(P) {\n            v ? E[P] && E[P].splice(V(E[P], v), 1) : delete E[P];\n          }), this;\n        }\n      },\n      /**\n       * emit event to the listeners\n       * @param {String} event\n       * @param {Object} data\n       */\n      emit: function(y, v) {\n        this.options.domEvents && lu(y, v);\n        var E = this.handlers[y] && this.handlers[y].slice();\n        if (!(!E || !E.length)) {\n          v.type = y, v.preventDefault = function() {\n            v.srcEvent.preventDefault();\n          };\n          for (var P = 0; P < E.length; )\n            E[P](v), P++;\n        }\n      },\n      /**\n       * destroy the manager and unbinds all events\n       * it doesn't unbind dom events, that is the user own responsibility\n       */\n      destroy: function() {\n        this.element && ko(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null;\n      }\n    };\n    function ko(y, v) {\n      var E = y.element;\n      if (E.style) {\n        var P;\n        f(y.options.cssProps, function(I, R) {\n          P = J(E.style, R), v ? (y.oldCssProps[P] = E.style[P], E.style[P] = I) : E.style[P] = y.oldCssProps[P] || \"\";\n        }), v || (y.oldCssProps = {});\n      }\n    }\n    function lu(y, v) {\n      var E = e.createEvent(\"Event\");\n      E.initEvent(y, !0, !0), E.gesture = v, v.target.dispatchEvent(E);\n    }\n    p(ue, {\n      INPUT_START: ut,\n      INPUT_MOVE: se,\n      INPUT_END: st,\n      INPUT_CANCEL: bt,\n      STATE_POSSIBLE: fn,\n      STATE_BEGAN: Xt,\n      STATE_CHANGED: ts,\n      STATE_ENDED: ve,\n      STATE_RECOGNIZED: ce,\n      STATE_CANCELLED: bs,\n      STATE_FAILED: ne,\n      DIRECTION_NONE: Qe,\n      DIRECTION_LEFT: Re,\n      DIRECTION_RIGHT: Oe,\n      DIRECTION_UP: be,\n      DIRECTION_DOWN: A,\n      DIRECTION_HORIZONTAL: ot,\n      DIRECTION_VERTICAL: ze,\n      DIRECTION_ALL: fo,\n      Manager: Si,\n      Input: Bt,\n      TouchAction: xi,\n      TouchInput: ln,\n      MouseInput: cn,\n      PointerEventInput: pi,\n      TouchMouseInput: gi,\n      SingleTouchInput: vo,\n      Recognizer: le,\n      AttrRecognizer: Jt,\n      Tap: pn,\n      Pan: mn,\n      Swipe: _i,\n      Pinch: wi,\n      Rotate: vi,\n      Press: bi,\n      on: _,\n      off: D,\n      each: f,\n      merge: g,\n      extend: S,\n      assign: p,\n      inherit: b,\n      bindFn: x,\n      prefixed: J\n    });\n    var uu = typeof t < \"u\" ? t : typeof self < \"u\" ? self : {};\n    uu.Hammer = ue, typeof i == \"function\" && i.amd ? i(function() {\n      return ue;\n    }) : n.exports ? n.exports = ue : t[s] = ue;\n  })(window, document, \"Hammer\");\n})(jh);\nvar dm = jh.exports;\nconst rt = /* @__PURE__ */ Fh(dm);\nvar rr = function(n, t) {\n  return rr = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, s) {\n    e.__proto__ = s;\n  } || function(e, s) {\n    for (var i in s)\n      Object.prototype.hasOwnProperty.call(s, i) && (e[i] = s[i]);\n  }, rr(n, t);\n};\nfunction he(n, t) {\n  if (typeof t != \"function\" && t !== null)\n    throw new TypeError(\"Class extends value \" + String(t) + \" is not a constructor or null\");\n  rr(n, t);\n  function e() {\n    this.constructor = n;\n  }\n  n.prototype = t === null ? Object.create(t) : (e.prototype = t.prototype, new e());\n}\nfunction mm(n, t, e, s) {\n  function i(r) {\n    return r instanceof e ? r : new e(function(o) {\n      o(r);\n    });\n  }\n  return new (e || (e = Promise))(function(r, o) {\n    function a(l) {\n      try {\n        c(s.next(l));\n      } catch (u) {\n        o(u);\n      }\n    }\n    function h(l) {\n      try {\n        c(s.throw(l));\n      } catch (u) {\n        o(u);\n      }\n    }\n    function c(l) {\n      l.done ? r(l.value) : i(l.value).then(a, h);\n    }\n    c((s = s.apply(n, t || [])).next());\n  });\n}\nfunction Hh(n, t) {\n  var e = { label: 0, sent: function() {\n    if (r[0] & 1)\n      throw r[1];\n    return r[1];\n  }, trys: [], ops: [] }, s, i, r, o = Object.create((typeof Iterator == \"function\" ? Iterator : Object).prototype);\n  return o.next = a(0), o.throw = a(1), o.return = a(2), typeof Symbol == \"function\" && (o[Symbol.iterator] = function() {\n    return this;\n  }), o;\n  function a(c) {\n    return function(l) {\n      return h([c, l]);\n    };\n  }\n  function h(c) {\n    if (s)\n      throw new TypeError(\"Generator is already executing.\");\n    for (; o && (o = 0, c[0] && (e = 0)), e; )\n      try {\n        if (s = 1, i && (r = c[0] & 2 ? i.return : c[0] ? i.throw || ((r = i.return) && r.call(i), 0) : i.next) && !(r = r.call(i, c[1])).done)\n          return r;\n        switch (i = 0, r && (c = [c[0] & 2, r.value]), c[0]) {\n          case 0:\n          case 1:\n            r = c;\n            break;\n          case 4:\n            return e.label++, { value: c[1], done: !1 };\n          case 5:\n            e.label++, i = c[1], c = [0];\n            continue;\n          case 7:\n            c = e.ops.pop(), e.trys.pop();\n            continue;\n          default:\n            if (r = e.trys, !(r = r.length > 0 && r[r.length - 1]) && (c[0] === 6 || c[0] === 2)) {\n              e = 0;\n              continue;\n            }\n            if (c[0] === 3 && (!r || c[1] > r[0] && c[1] < r[3])) {\n              e.label = c[1];\n              break;\n            }\n            if (c[0] === 6 && e.label < r[1]) {\n              e.label = r[1], r = c;\n              break;\n            }\n            if (r && e.label < r[2]) {\n              e.label = r[2], e.ops.push(c);\n              break;\n            }\n            r[2] && e.ops.pop(), e.trys.pop();\n            continue;\n        }\n        c = t.call(n, e);\n      } catch (l) {\n        c = [6, l], i = 0;\n      } finally {\n        s = r = 0;\n      }\n    if (c[0] & 5)\n      throw c[1];\n    return { value: c[0] ? c[1] : void 0, done: !0 };\n  }\n}\nfunction qe(n) {\n  var t = typeof Symbol == \"function\" && Symbol.iterator, e = t && n[t], s = 0;\n  if (e)\n    return e.call(n);\n  if (n && typeof n.length == \"number\")\n    return {\n      next: function() {\n        return n && s >= n.length && (n = void 0), { value: n && n[s++], done: !n };\n      }\n    };\n  throw new TypeError(t ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nfunction we(n, t) {\n  var e = typeof Symbol == \"function\" && n[Symbol.iterator];\n  if (!e)\n    return n;\n  var s = e.call(n), i, r = [], o;\n  try {\n    for (; (t === void 0 || t-- > 0) && !(i = s.next()).done; )\n      r.push(i.value);\n  } catch (a) {\n    o = { error: a };\n  } finally {\n    try {\n      i && !i.done && (e = s.return) && e.call(s);\n    } finally {\n      if (o)\n        throw o.error;\n    }\n  }\n  return r;\n}\nfunction Ie(n, t, e) {\n  if (e || arguments.length === 2)\n    for (var s = 0, i = t.length, r; s < i; s++)\n      (r || !(s in t)) && (r || (r = Array.prototype.slice.call(t, 0, s)), r[s] = t[s]);\n  return n.concat(r || Array.prototype.slice.call(t));\n}\nfunction as(n) {\n  return this instanceof as ? (this.v = n, this) : new as(n);\n}\nfunction pm(n, t, e) {\n  if (!Symbol.asyncIterator)\n    throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var s = e.apply(n, t || []), i, r = [];\n  return i = Object.create((typeof AsyncIterator == \"function\" ? AsyncIterator : Object).prototype), a(\"next\"), a(\"throw\"), a(\"return\", o), i[Symbol.asyncIterator] = function() {\n    return this;\n  }, i;\n  function o(f) {\n    return function(m) {\n      return Promise.resolve(m).then(f, u);\n    };\n  }\n  function a(f, m) {\n    s[f] && (i[f] = function(p) {\n      return new Promise(function(S, g) {\n        r.push([f, p, S, g]) > 1 || h(f, p);\n      });\n    }, m && (i[f] = m(i[f])));\n  }\n  function h(f, m) {\n    try {\n      c(s[f](m));\n    } catch (p) {\n      d(r[0][3], p);\n    }\n  }\n  function c(f) {\n    f.value instanceof as ? Promise.resolve(f.value.v).then(l, u) : d(r[0][2], f);\n  }\n  function l(f) {\n    h(\"next\", f);\n  }\n  function u(f) {\n    h(\"throw\", f);\n  }\n  function d(f, m) {\n    f(m), r.shift(), r.length && h(r[0][0], r[0][1]);\n  }\n}\nfunction gm(n) {\n  if (!Symbol.asyncIterator)\n    throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var t = n[Symbol.asyncIterator], e;\n  return t ? t.call(n) : (n = typeof qe == \"function\" ? qe(n) : n[Symbol.iterator](), e = {}, s(\"next\"), s(\"throw\"), s(\"return\"), e[Symbol.asyncIterator] = function() {\n    return this;\n  }, e);\n  function s(r) {\n    e[r] = n[r] && function(o) {\n      return new Promise(function(a, h) {\n        o = n[r](o), i(a, h, o.done, o.value);\n      });\n    };\n  }\n  function i(r, o, a, h) {\n    Promise.resolve(h).then(function(c) {\n      r({ value: c, done: a });\n    }, o);\n  }\n}\nfunction W(n) {\n  return typeof n == \"function\";\n}\nfunction $r(n) {\n  var t = function(s) {\n    Error.call(s), s.stack = new Error().stack;\n  }, e = n(t);\n  return e.prototype = Object.create(Error.prototype), e.prototype.constructor = e, e;\n}\nvar Ii = $r(function(n) {\n  return function(e) {\n    n(this), this.message = e ? e.length + ` errors occurred during unsubscription:\n` + e.map(function(s, i) {\n      return i + 1 + \") \" + s.toString();\n    }).join(`\n  `) : \"\", this.name = \"UnsubscriptionError\", this.errors = e;\n  };\n});\nfunction Us(n, t) {\n  if (n) {\n    var e = n.indexOf(t);\n    0 <= e && n.splice(e, 1);\n  }\n}\nvar gs = function() {\n  function n(t) {\n    this.initialTeardown = t, this.closed = !1, this._parentage = null, this._finalizers = null;\n  }\n  return n.prototype.unsubscribe = function() {\n    var t, e, s, i, r;\n    if (!this.closed) {\n      this.closed = !0;\n      var o = this._parentage;\n      if (o)\n        if (this._parentage = null, Array.isArray(o))\n          try {\n            for (var a = qe(o), h = a.next(); !h.done; h = a.next()) {\n              var c = h.value;\n              c.remove(this);\n            }\n          } catch (p) {\n            t = { error: p };\n          } finally {\n            try {\n              h && !h.done && (e = a.return) && e.call(a);\n            } finally {\n              if (t)\n                throw t.error;\n            }\n          }\n        else\n          o.remove(this);\n      var l = this.initialTeardown;\n      if (W(l))\n        try {\n          l();\n        } catch (p) {\n          r = p instanceof Ii ? p.errors : [p];\n        }\n      var u = this._finalizers;\n      if (u) {\n        this._finalizers = null;\n        try {\n          for (var d = qe(u), f = d.next(); !f.done; f = d.next()) {\n            var m = f.value;\n            try {\n              ia(m);\n            } catch (p) {\n              r = r ?? [], p instanceof Ii ? r = Ie(Ie([], we(r)), we(p.errors)) : r.push(p);\n            }\n          }\n        } catch (p) {\n          s = { error: p };\n        } finally {\n          try {\n            f && !f.done && (i = d.return) && i.call(d);\n          } finally {\n            if (s)\n              throw s.error;\n          }\n        }\n      }\n      if (r)\n        throw new Ii(r);\n    }\n  }, n.prototype.add = function(t) {\n    var e;\n    if (t && t !== this)\n      if (this.closed)\n        ia(t);\n      else {\n        if (t instanceof n) {\n          if (t.closed || t._hasParent(this))\n            return;\n          t._addParent(this);\n        }\n        (this._finalizers = (e = this._finalizers) !== null && e !== void 0 ? e : []).push(t);\n      }\n  }, n.prototype._hasParent = function(t) {\n    var e = this._parentage;\n    return e === t || Array.isArray(e) && e.includes(t);\n  }, n.prototype._addParent = function(t) {\n    var e = this._parentage;\n    this._parentage = Array.isArray(e) ? (e.push(t), e) : e ? [e, t] : t;\n  }, n.prototype._removeParent = function(t) {\n    var e = this._parentage;\n    e === t ? this._parentage = null : Array.isArray(e) && Us(e, t);\n  }, n.prototype.remove = function(t) {\n    var e = this._finalizers;\n    e && Us(e, t), t instanceof n && t._removeParent(this);\n  }, n.EMPTY = function() {\n    var t = new n();\n    return t.closed = !0, t;\n  }(), n;\n}(), Wh = gs.EMPTY;\nfunction Zh(n) {\n  return n instanceof gs || n && \"closed\" in n && W(n.remove) && W(n.add) && W(n.unsubscribe);\n}\nfunction ia(n) {\n  W(n) ? n() : n.unsubscribe();\n}\nvar Jh = {\n  onUnhandledError: null,\n  onStoppedNotification: null,\n  Promise: void 0,\n  useDeprecatedSynchronousErrorHandling: !1,\n  useDeprecatedNextContext: !1\n}, or = {\n  setTimeout: function(n, t) {\n    for (var e = [], s = 2; s < arguments.length; s++)\n      e[s - 2] = arguments[s];\n    var i = or.delegate;\n    return i?.setTimeout ? i.setTimeout.apply(i, Ie([n, t], we(e))) : setTimeout.apply(void 0, Ie([n, t], we(e)));\n  },\n  clearTimeout: function(n) {\n    var t = or.delegate;\n    return (t?.clearTimeout || clearTimeout)(n);\n  },\n  delegate: void 0\n};\nfunction Kh(n) {\n  or.setTimeout(function() {\n    throw n;\n  });\n}\nfunction Gs() {\n}\nfunction zn(n) {\n  n();\n}\nvar qr = function(n) {\n  he(t, n);\n  function t(e) {\n    var s = n.call(this) || this;\n    return s.isStopped = !1, e ? (s.destination = e, Zh(e) && e.add(s)) : s.destination = bm, s;\n  }\n  return t.create = function(e, s, i) {\n    return new us(e, s, i);\n  }, t.prototype.next = function(e) {\n    this.isStopped || this._next(e);\n  }, t.prototype.error = function(e) {\n    this.isStopped || (this.isStopped = !0, this._error(e));\n  }, t.prototype.complete = function() {\n    this.isStopped || (this.isStopped = !0, this._complete());\n  }, t.prototype.unsubscribe = function() {\n    this.closed || (this.isStopped = !0, n.prototype.unsubscribe.call(this), this.destination = null);\n  }, t.prototype._next = function(e) {\n    this.destination.next(e);\n  }, t.prototype._error = function(e) {\n    try {\n      this.destination.error(e);\n    } finally {\n      this.unsubscribe();\n    }\n  }, t.prototype._complete = function() {\n    try {\n      this.destination.complete();\n    } finally {\n      this.unsubscribe();\n    }\n  }, t;\n}(gs), ym = Function.prototype.bind;\nfunction ki(n, t) {\n  return ym.call(n, t);\n}\nvar xm = function() {\n  function n(t) {\n    this.partialObserver = t;\n  }\n  return n.prototype.next = function(t) {\n    var e = this.partialObserver;\n    if (e.next)\n      try {\n        e.next(t);\n      } catch (s) {\n        yn(s);\n      }\n  }, n.prototype.error = function(t) {\n    var e = this.partialObserver;\n    if (e.error)\n      try {\n        e.error(t);\n      } catch (s) {\n        yn(s);\n      }\n    else\n      yn(t);\n  }, n.prototype.complete = function() {\n    var t = this.partialObserver;\n    if (t.complete)\n      try {\n        t.complete();\n      } catch (e) {\n        yn(e);\n      }\n  }, n;\n}(), us = function(n) {\n  he(t, n);\n  function t(e, s, i) {\n    var r = n.call(this) || this, o;\n    if (W(e) || !e)\n      o = {\n        next: e ?? void 0,\n        error: s ?? void 0,\n        complete: i ?? void 0\n      };\n    else {\n      var a;\n      r && Jh.useDeprecatedNextContext ? (a = Object.create(e), a.unsubscribe = function() {\n        return r.unsubscribe();\n      }, o = {\n        next: e.next && ki(e.next, a),\n        error: e.error && ki(e.error, a),\n        complete: e.complete && ki(e.complete, a)\n      }) : o = e;\n    }\n    return r.destination = new xm(o), r;\n  }\n  return t;\n}(qr);\nfunction yn(n) {\n  Kh(n);\n}\nfunction wm(n) {\n  throw n;\n}\nvar bm = {\n  closed: !0,\n  next: Gs,\n  error: wm,\n  complete: Gs\n}, jr = function() {\n  return typeof Symbol == \"function\" && Symbol.observable || \"@@observable\";\n}();\nfunction Je(n) {\n  return n;\n}\nfunction vm(n) {\n  return n.length === 0 ? Je : n.length === 1 ? n[0] : function(e) {\n    return n.reduce(function(s, i) {\n      return i(s);\n    }, e);\n  };\n}\nvar nt = function() {\n  function n(t) {\n    t && (this._subscribe = t);\n  }\n  return n.prototype.lift = function(t) {\n    var e = new n();\n    return e.source = this, e.operator = t, e;\n  }, n.prototype.subscribe = function(t, e, s) {\n    var i = this, r = Sm(t) ? t : new us(t, e, s);\n    return zn(function() {\n      var o = i, a = o.operator, h = o.source;\n      r.add(a ? a.call(r, h) : h ? i._subscribe(r) : i._trySubscribe(r));\n    }), r;\n  }, n.prototype._trySubscribe = function(t) {\n    try {\n      return this._subscribe(t);\n    } catch (e) {\n      t.error(e);\n    }\n  }, n.prototype.forEach = function(t, e) {\n    var s = this;\n    return e = ra(e), new e(function(i, r) {\n      var o = new us({\n        next: function(a) {\n          try {\n            t(a);\n          } catch (h) {\n            r(h), o.unsubscribe();\n          }\n        },\n        error: r,\n        complete: i\n      });\n      s.subscribe(o);\n    });\n  }, n.prototype._subscribe = function(t) {\n    var e;\n    return (e = this.source) === null || e === void 0 ? void 0 : e.subscribe(t);\n  }, n.prototype[jr] = function() {\n    return this;\n  }, n.prototype.pipe = function() {\n    for (var t = [], e = 0; e < arguments.length; e++)\n      t[e] = arguments[e];\n    return vm(t)(this);\n  }, n.prototype.toPromise = function(t) {\n    var e = this;\n    return t = ra(t), new t(function(s, i) {\n      var r;\n      e.subscribe(function(o) {\n        return r = o;\n      }, function(o) {\n        return i(o);\n      }, function() {\n        return s(r);\n      });\n    });\n  }, n.create = function(t) {\n    return new n(t);\n  }, n;\n}();\nfunction ra(n) {\n  var t;\n  return (t = n ?? Jh.Promise) !== null && t !== void 0 ? t : Promise;\n}\nfunction _m(n) {\n  return n && W(n.next) && W(n.error) && W(n.complete);\n}\nfunction Sm(n) {\n  return n && n instanceof qr || _m(n) && Zh(n);\n}\nfunction Cm(n) {\n  return W(n?.lift);\n}\nfunction kt(n) {\n  return function(t) {\n    if (Cm(t))\n      return t.lift(function(e) {\n        try {\n          return n(e, this);\n        } catch (s) {\n          this.error(s);\n        }\n      });\n    throw new TypeError(\"Unable to lift unknown Observable type\");\n  };\n}\nfunction lt(n, t, e, s, i) {\n  return new Em(n, t, e, s, i);\n}\nvar Em = function(n) {\n  he(t, n);\n  function t(e, s, i, r, o, a) {\n    var h = n.call(this, e) || this;\n    return h.onFinalize = o, h.shouldUnsubscribe = a, h._next = s ? function(c) {\n      try {\n        s(c);\n      } catch (l) {\n        e.error(l);\n      }\n    } : n.prototype._next, h._error = r ? function(c) {\n      try {\n        r(c);\n      } catch (l) {\n        e.error(l);\n      } finally {\n        this.unsubscribe();\n      }\n    } : n.prototype._error, h._complete = i ? function() {\n      try {\n        i();\n      } catch (c) {\n        e.error(c);\n      } finally {\n        this.unsubscribe();\n      }\n    } : n.prototype._complete, h;\n  }\n  return t.prototype.unsubscribe = function() {\n    var e;\n    if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n      var s = this.closed;\n      n.prototype.unsubscribe.call(this), !s && ((e = this.onFinalize) === null || e === void 0 || e.call(this));\n    }\n  }, t;\n}(qr), Pm = $r(function(n) {\n  return function() {\n    n(this), this.name = \"ObjectUnsubscribedError\", this.message = \"object unsubscribed\";\n  };\n}), ke = function(n) {\n  he(t, n);\n  function t() {\n    var e = n.call(this) || this;\n    return e.closed = !1, e.currentObservers = null, e.observers = [], e.isStopped = !1, e.hasError = !1, e.thrownError = null, e;\n  }\n  return t.prototype.lift = function(e) {\n    var s = new oa(this, this);\n    return s.operator = e, s;\n  }, t.prototype._throwIfClosed = function() {\n    if (this.closed)\n      throw new Pm();\n  }, t.prototype.next = function(e) {\n    var s = this;\n    zn(function() {\n      var i, r;\n      if (s._throwIfClosed(), !s.isStopped) {\n        s.currentObservers || (s.currentObservers = Array.from(s.observers));\n        try {\n          for (var o = qe(s.currentObservers), a = o.next(); !a.done; a = o.next()) {\n            var h = a.value;\n            h.next(e);\n          }\n        } catch (c) {\n          i = { error: c };\n        } finally {\n          try {\n            a && !a.done && (r = o.return) && r.call(o);\n          } finally {\n            if (i)\n              throw i.error;\n          }\n        }\n      }\n    });\n  }, t.prototype.error = function(e) {\n    var s = this;\n    zn(function() {\n      if (s._throwIfClosed(), !s.isStopped) {\n        s.hasError = s.isStopped = !0, s.thrownError = e;\n        for (var i = s.observers; i.length; )\n          i.shift().error(e);\n      }\n    });\n  }, t.prototype.complete = function() {\n    var e = this;\n    zn(function() {\n      if (e._throwIfClosed(), !e.isStopped) {\n        e.isStopped = !0;\n        for (var s = e.observers; s.length; )\n          s.shift().complete();\n      }\n    });\n  }, t.prototype.unsubscribe = function() {\n    this.isStopped = this.closed = !0, this.observers = this.currentObservers = null;\n  }, Object.defineProperty(t.prototype, \"observed\", {\n    get: function() {\n      var e;\n      return ((e = this.observers) === null || e === void 0 ? void 0 : e.length) > 0;\n    },\n    enumerable: !1,\n    configurable: !0\n  }), t.prototype._trySubscribe = function(e) {\n    return this._throwIfClosed(), n.prototype._trySubscribe.call(this, e);\n  }, t.prototype._subscribe = function(e) {\n    return this._throwIfClosed(), this._checkFinalizedStatuses(e), this._innerSubscribe(e);\n  }, t.prototype._innerSubscribe = function(e) {\n    var s = this, i = this, r = i.hasError, o = i.isStopped, a = i.observers;\n    return r || o ? Wh : (this.currentObservers = null, a.push(e), new gs(function() {\n      s.currentObservers = null, Us(a, e);\n    }));\n  }, t.prototype._checkFinalizedStatuses = function(e) {\n    var s = this, i = s.hasError, r = s.thrownError, o = s.isStopped;\n    i ? e.error(r) : o && e.complete();\n  }, t.prototype.asObservable = function() {\n    var e = new nt();\n    return e.source = this, e;\n  }, t.create = function(e, s) {\n    return new oa(e, s);\n  }, t;\n}(nt), oa = function(n) {\n  he(t, n);\n  function t(e, s) {\n    var i = n.call(this) || this;\n    return i.destination = e, i.source = s, i;\n  }\n  return t.prototype.next = function(e) {\n    var s, i;\n    (i = (s = this.destination) === null || s === void 0 ? void 0 : s.next) === null || i === void 0 || i.call(s, e);\n  }, t.prototype.error = function(e) {\n    var s, i;\n    (i = (s = this.destination) === null || s === void 0 ? void 0 : s.error) === null || i === void 0 || i.call(s, e);\n  }, t.prototype.complete = function() {\n    var e, s;\n    (s = (e = this.destination) === null || e === void 0 ? void 0 : e.complete) === null || s === void 0 || s.call(e);\n  }, t.prototype._subscribe = function(e) {\n    var s, i;\n    return (i = (s = this.source) === null || s === void 0 ? void 0 : s.subscribe(e)) !== null && i !== void 0 ? i : Wh;\n  }, t;\n}(ke), aa = function(n) {\n  he(t, n);\n  function t(e) {\n    var s = n.call(this) || this;\n    return s._value = e, s;\n  }\n  return Object.defineProperty(t.prototype, \"value\", {\n    get: function() {\n      return this.getValue();\n    },\n    enumerable: !1,\n    configurable: !0\n  }), t.prototype._subscribe = function(e) {\n    var s = n.prototype._subscribe.call(this, e);\n    return !s.closed && e.next(this._value), s;\n  }, t.prototype.getValue = function() {\n    var e = this, s = e.hasError, i = e.thrownError, r = e._value;\n    if (s)\n      throw i;\n    return this._throwIfClosed(), r;\n  }, t.prototype.next = function(e) {\n    n.prototype.next.call(this, this._value = e);\n  }, t;\n}(ke), Hr = {\n  now: function() {\n    return (Hr.delegate || Date).now();\n  },\n  delegate: void 0\n}, Tm = function(n) {\n  he(t, n);\n  function t(e, s, i) {\n    e === void 0 && (e = 1 / 0), s === void 0 && (s = 1 / 0), i === void 0 && (i = Hr);\n    var r = n.call(this) || this;\n    return r._bufferSize = e, r._windowTime = s, r._timestampProvider = i, r._buffer = [], r._infiniteTimeWindow = !0, r._infiniteTimeWindow = s === 1 / 0, r._bufferSize = Math.max(1, e), r._windowTime = Math.max(1, s), r;\n  }\n  return t.prototype.next = function(e) {\n    var s = this, i = s.isStopped, r = s._buffer, o = s._infiniteTimeWindow, a = s._timestampProvider, h = s._windowTime;\n    i || (r.push(e), !o && r.push(a.now() + h)), this._trimBuffer(), n.prototype.next.call(this, e);\n  }, t.prototype._subscribe = function(e) {\n    this._throwIfClosed(), this._trimBuffer();\n    for (var s = this._innerSubscribe(e), i = this, r = i._infiniteTimeWindow, o = i._buffer, a = o.slice(), h = 0; h < a.length && !e.closed; h += r ? 1 : 2)\n      e.next(a[h]);\n    return this._checkFinalizedStatuses(e), s;\n  }, t.prototype._trimBuffer = function() {\n    var e = this, s = e._bufferSize, i = e._timestampProvider, r = e._buffer, o = e._infiniteTimeWindow, a = (o ? 1 : 2) * s;\n    if (s < 1 / 0 && a < r.length && r.splice(0, r.length - a), !o) {\n      for (var h = i.now(), c = 0, l = 1; l < r.length && r[l] <= h; l += 2)\n        c = l;\n      c && r.splice(0, c + 1);\n    }\n  }, t;\n}(ke), Mm = function(n) {\n  he(t, n);\n  function t(e, s) {\n    return n.call(this) || this;\n  }\n  return t.prototype.schedule = function(e, s) {\n    return this;\n  }, t;\n}(gs), $n = {\n  setInterval: function(n, t) {\n    for (var e = [], s = 2; s < arguments.length; s++)\n      e[s - 2] = arguments[s];\n    var i = $n.delegate;\n    return i?.setInterval ? i.setInterval.apply(i, Ie([n, t], we(e))) : setInterval.apply(void 0, Ie([n, t], we(e)));\n  },\n  clearInterval: function(n) {\n    var t = $n.delegate;\n    return (t?.clearInterval || clearInterval)(n);\n  },\n  delegate: void 0\n}, Am = function(n) {\n  he(t, n);\n  function t(e, s) {\n    var i = n.call(this, e, s) || this;\n    return i.scheduler = e, i.work = s, i.pending = !1, i;\n  }\n  return t.prototype.schedule = function(e, s) {\n    var i;\n    if (s === void 0 && (s = 0), this.closed)\n      return this;\n    this.state = e;\n    var r = this.id, o = this.scheduler;\n    return r != null && (this.id = this.recycleAsyncId(o, r, s)), this.pending = !0, this.delay = s, this.id = (i = this.id) !== null && i !== void 0 ? i : this.requestAsyncId(o, this.id, s), this;\n  }, t.prototype.requestAsyncId = function(e, s, i) {\n    return i === void 0 && (i = 0), $n.setInterval(e.flush.bind(e, this), i);\n  }, t.prototype.recycleAsyncId = function(e, s, i) {\n    if (i === void 0 && (i = 0), i != null && this.delay === i && this.pending === !1)\n      return s;\n    s != null && $n.clearInterval(s);\n  }, t.prototype.execute = function(e, s) {\n    if (this.closed)\n      return new Error(\"executing a cancelled action\");\n    this.pending = !1;\n    var i = this._execute(e, s);\n    if (i)\n      return i;\n    this.pending === !1 && this.id != null && (this.id = this.recycleAsyncId(this.scheduler, this.id, null));\n  }, t.prototype._execute = function(e, s) {\n    var i = !1, r;\n    try {\n      this.work(e);\n    } catch (o) {\n      i = !0, r = o || new Error(\"Scheduled action threw falsy error\");\n    }\n    if (i)\n      return this.unsubscribe(), r;\n  }, t.prototype.unsubscribe = function() {\n    if (!this.closed) {\n      var e = this, s = e.id, i = e.scheduler, r = i.actions;\n      this.work = this.state = this.scheduler = null, this.pending = !1, Us(r, this), s != null && (this.id = this.recycleAsyncId(i, s, null)), this.delay = null, n.prototype.unsubscribe.call(this);\n    }\n  }, t;\n}(Mm), ha = function() {\n  function n(t, e) {\n    e === void 0 && (e = n.now), this.schedulerActionCtor = t, this.now = e;\n  }\n  return n.prototype.schedule = function(t, e, s) {\n    return e === void 0 && (e = 0), new this.schedulerActionCtor(this, t).schedule(s, e);\n  }, n.now = Hr.now, n;\n}(), Im = function(n) {\n  he(t, n);\n  function t(e, s) {\n    s === void 0 && (s = ha.now);\n    var i = n.call(this, e, s) || this;\n    return i.actions = [], i._active = !1, i;\n  }\n  return t.prototype.flush = function(e) {\n    var s = this.actions;\n    if (this._active) {\n      s.push(e);\n      return;\n    }\n    var i;\n    this._active = !0;\n    do\n      if (i = e.execute(e.state, e.delay))\n        break;\n    while (e = s.shift());\n    if (this._active = !1, i) {\n      for (; e = s.shift(); )\n        e.unsubscribe();\n      throw i;\n    }\n  }, t;\n}(ha), Wr = new Im(Am), km = Wr, Qh = new nt(function(n) {\n  return n.complete();\n});\nfunction tc(n) {\n  return n && W(n.schedule);\n}\nfunction Zr(n) {\n  return n[n.length - 1];\n}\nfunction Dm(n) {\n  return W(Zr(n)) ? n.pop() : void 0;\n}\nfunction Js(n) {\n  return tc(Zr(n)) ? n.pop() : void 0;\n}\nfunction Lm(n, t) {\n  return typeof Zr(n) == \"number\" ? n.pop() : t;\n}\nvar Jr = function(n) {\n  return n && typeof n.length == \"number\" && typeof n != \"function\";\n};\nfunction ec(n) {\n  return W(n?.then);\n}\nfunction sc(n) {\n  return W(n[jr]);\n}\nfunction nc(n) {\n  return Symbol.asyncIterator && W(n?.[Symbol.asyncIterator]);\n}\nfunction ic(n) {\n  return new TypeError(\"You provided \" + (n !== null && typeof n == \"object\" ? \"an invalid object\" : \"'\" + n + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\nfunction Rm() {\n  return typeof Symbol != \"function\" || !Symbol.iterator ? \"@@iterator\" : Symbol.iterator;\n}\nvar rc = Rm();\nfunction oc(n) {\n  return W(n?.[rc]);\n}\nfunction ac(n) {\n  return pm(this, arguments, function() {\n    var e, s, i, r;\n    return Hh(this, function(o) {\n      switch (o.label) {\n        case 0:\n          e = n.getReader(), o.label = 1;\n        case 1:\n          o.trys.push([1, , 9, 10]), o.label = 2;\n        case 2:\n          return [4, as(e.read())];\n        case 3:\n          return s = o.sent(), i = s.value, r = s.done, r ? [4, as(void 0)] : [3, 5];\n        case 4:\n          return [2, o.sent()];\n        case 5:\n          return [4, as(i)];\n        case 6:\n          return [4, o.sent()];\n        case 7:\n          return o.sent(), [3, 2];\n        case 8:\n          return [3, 10];\n        case 9:\n          return e.releaseLock(), [7];\n        case 10:\n          return [2];\n      }\n    });\n  });\n}\nfunction hc(n) {\n  return W(n?.getReader);\n}\nfunction gt(n) {\n  if (n instanceof nt)\n    return n;\n  if (n != null) {\n    if (sc(n))\n      return Om(n);\n    if (Jr(n))\n      return zm(n);\n    if (ec(n))\n      return Nm(n);\n    if (nc(n))\n      return cc(n);\n    if (oc(n))\n      return Ym(n);\n    if (hc(n))\n      return Bm(n);\n  }\n  throw ic(n);\n}\nfunction Om(n) {\n  return new nt(function(t) {\n    var e = n[jr]();\n    if (W(e.subscribe))\n      return e.subscribe(t);\n    throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");\n  });\n}\nfunction zm(n) {\n  return new nt(function(t) {\n    for (var e = 0; e < n.length && !t.closed; e++)\n      t.next(n[e]);\n    t.complete();\n  });\n}\nfunction Nm(n) {\n  return new nt(function(t) {\n    n.then(function(e) {\n      t.closed || (t.next(e), t.complete());\n    }, function(e) {\n      return t.error(e);\n    }).then(null, Kh);\n  });\n}\nfunction Ym(n) {\n  return new nt(function(t) {\n    var e, s;\n    try {\n      for (var i = qe(n), r = i.next(); !r.done; r = i.next()) {\n        var o = r.value;\n        if (t.next(o), t.closed)\n          return;\n      }\n    } catch (a) {\n      e = { error: a };\n    } finally {\n      try {\n        r && !r.done && (s = i.return) && s.call(i);\n      } finally {\n        if (e)\n          throw e.error;\n      }\n    }\n    t.complete();\n  });\n}\nfunction cc(n) {\n  return new nt(function(t) {\n    Xm(n, t).catch(function(e) {\n      return t.error(e);\n    });\n  });\n}\nfunction Bm(n) {\n  return cc(ac(n));\n}\nfunction Xm(n, t) {\n  var e, s, i, r;\n  return mm(this, void 0, void 0, function() {\n    var o, a;\n    return Hh(this, function(h) {\n      switch (h.label) {\n        case 0:\n          h.trys.push([0, 5, 6, 11]), e = gm(n), h.label = 1;\n        case 1:\n          return [4, e.next()];\n        case 2:\n          if (s = h.sent(), !!s.done)\n            return [3, 4];\n          if (o = s.value, t.next(o), t.closed)\n            return [2];\n          h.label = 3;\n        case 3:\n          return [3, 1];\n        case 4:\n          return [3, 11];\n        case 5:\n          return a = h.sent(), i = { error: a }, [3, 11];\n        case 6:\n          return h.trys.push([6, , 9, 10]), s && !s.done && (r = e.return) ? [4, r.call(e)] : [3, 8];\n        case 7:\n          h.sent(), h.label = 8;\n        case 8:\n          return [3, 10];\n        case 9:\n          if (i)\n            throw i.error;\n          return [7];\n        case 10:\n          return [7];\n        case 11:\n          return t.complete(), [2];\n      }\n    });\n  });\n}\nfunction xe(n, t, e, s, i) {\n  s === void 0 && (s = 0), i === void 0 && (i = !1);\n  var r = t.schedule(function() {\n    e(), i ? n.add(this.schedule(null, s)) : this.unsubscribe();\n  }, s);\n  if (n.add(r), !i)\n    return r;\n}\nfunction lc(n, t) {\n  return t === void 0 && (t = 0), kt(function(e, s) {\n    e.subscribe(lt(s, function(i) {\n      return xe(s, n, function() {\n        return s.next(i);\n      }, t);\n    }, function() {\n      return xe(s, n, function() {\n        return s.complete();\n      }, t);\n    }, function(i) {\n      return xe(s, n, function() {\n        return s.error(i);\n      }, t);\n    }));\n  });\n}\nfunction Kr(n, t) {\n  return t === void 0 && (t = 0), kt(function(e, s) {\n    s.add(n.schedule(function() {\n      return e.subscribe(s);\n    }, t));\n  });\n}\nfunction Fm(n, t) {\n  return gt(n).pipe(Kr(t), lc(t));\n}\nfunction Um(n, t) {\n  return gt(n).pipe(Kr(t), lc(t));\n}\nfunction Gm(n, t) {\n  return new nt(function(e) {\n    var s = 0;\n    return t.schedule(function() {\n      s === n.length ? e.complete() : (e.next(n[s++]), e.closed || this.schedule());\n    });\n  });\n}\nfunction Vm(n, t) {\n  return new nt(function(e) {\n    var s;\n    return xe(e, t, function() {\n      s = n[rc](), xe(e, t, function() {\n        var i, r, o;\n        try {\n          i = s.next(), r = i.value, o = i.done;\n        } catch (a) {\n          e.error(a);\n          return;\n        }\n        o ? e.complete() : e.next(r);\n      }, 0, !0);\n    }), function() {\n      return W(s?.return) && s.return();\n    };\n  });\n}\nfunction uc(n, t) {\n  if (!n)\n    throw new Error(\"Iterable cannot be null\");\n  return new nt(function(e) {\n    xe(e, t, function() {\n      var s = n[Symbol.asyncIterator]();\n      xe(e, t, function() {\n        s.next().then(function(i) {\n          i.done ? e.complete() : e.next(i.value);\n        });\n      }, 0, !0);\n    });\n  });\n}\nfunction $m(n, t) {\n  return uc(ac(n), t);\n}\nfunction qm(n, t) {\n  if (n != null) {\n    if (sc(n))\n      return Fm(n, t);\n    if (Jr(n))\n      return Gm(n, t);\n    if (ec(n))\n      return Um(n, t);\n    if (nc(n))\n      return uc(n, t);\n    if (oc(n))\n      return Vm(n, t);\n    if (hc(n))\n      return $m(n, t);\n  }\n  throw ic(n);\n}\nfunction Ks(n, t) {\n  return t ? qm(n, t) : gt(n);\n}\nfunction jm() {\n  for (var n = [], t = 0; t < arguments.length; t++)\n    n[t] = arguments[t];\n  var e = Js(n);\n  return Ks(n, e);\n}\nvar Hm = $r(function(n) {\n  return function() {\n    n(this), this.name = \"EmptyError\", this.message = \"no elements in sequence\";\n  };\n});\nfunction Wm(n, t) {\n  var e = typeof t == \"object\";\n  return new Promise(function(s, i) {\n    var r = new us({\n      next: function(o) {\n        s(o), r.unsubscribe();\n      },\n      error: i,\n      complete: function() {\n        e ? s(t.defaultValue) : i(new Hm());\n      }\n    });\n    n.subscribe(r);\n  });\n}\nfunction Zm(n) {\n  return n instanceof Date && !isNaN(n);\n}\nfunction it(n, t) {\n  return kt(function(e, s) {\n    var i = 0;\n    e.subscribe(lt(s, function(r) {\n      s.next(n.call(t, r, i++));\n    }));\n  });\n}\nvar Jm = Array.isArray;\nfunction Km(n, t) {\n  return Jm(t) ? n.apply(void 0, Ie([], we(t))) : n(t);\n}\nfunction Qr(n) {\n  return it(function(t) {\n    return Km(n, t);\n  });\n}\nvar Qm = Array.isArray, tp = Object.getPrototypeOf, ep = Object.prototype, sp = Object.keys;\nfunction np(n) {\n  if (n.length === 1) {\n    var t = n[0];\n    if (Qm(t))\n      return { args: t, keys: null };\n    if (ip(t)) {\n      var e = sp(t);\n      return {\n        args: e.map(function(s) {\n          return t[s];\n        }),\n        keys: e\n      };\n    }\n  }\n  return { args: n, keys: null };\n}\nfunction ip(n) {\n  return n && typeof n == \"object\" && tp(n) === ep;\n}\nfunction rp(n, t) {\n  return n.reduce(function(e, s, i) {\n    return e[s] = t[i], e;\n  }, {});\n}\nfunction op() {\n  for (var n = [], t = 0; t < arguments.length; t++)\n    n[t] = arguments[t];\n  var e = Js(n), s = Dm(n), i = np(n), r = i.args, o = i.keys;\n  if (r.length === 0)\n    return Ks([], e);\n  var a = new nt(hp(r, e, o ? function(h) {\n    return rp(o, h);\n  } : Je));\n  return s ? a.pipe(Qr(s)) : a;\n}\nfunction hp(n, t, e) {\n  return e === void 0 && (e = Je), function(s) {\n    ca(t, function() {\n      for (var i = n.length, r = new Array(i), o = i, a = i, h = function(l) {\n        ca(t, function() {\n          var u = Ks(n[l], t), d = !1;\n          u.subscribe(lt(s, function(f) {\n            r[l] = f, d || (d = !0, a--), a || s.next(e(r.slice()));\n          }, function() {\n            --o || s.complete();\n          }));\n        }, s);\n      }, c = 0; c < i; c++)\n        h(c);\n    }, s);\n  };\n}\nfunction ca(n, t, e) {\n  n ? xe(e, n, t) : t();\n}\nfunction cp(n, t, e, s, i, r, o, a) {\n  var h = [], c = 0, l = 0, u = !1, d = function() {\n    u && !h.length && !c && t.complete();\n  }, f = function(p) {\n    return c < s ? m(p) : h.push(p);\n  }, m = function(p) {\n    r && t.next(p), c++;\n    var S = !1;\n    gt(e(p, l++)).subscribe(lt(t, function(g) {\n      i?.(g), r ? f(g) : t.next(g);\n    }, function() {\n      S = !0;\n    }, void 0, function() {\n      if (S)\n        try {\n          c--;\n          for (var g = function() {\n            var b = h.shift();\n            o ? xe(t, o, function() {\n              return m(b);\n            }) : m(b);\n          }; h.length && c < s; )\n            g();\n          d();\n        } catch (b) {\n          t.error(b);\n        }\n    }));\n  };\n  return n.subscribe(lt(t, f, function() {\n    u = !0, d();\n  })), function() {\n    a?.();\n  };\n}\nfunction to(n, t, e) {\n  return e === void 0 && (e = 1 / 0), W(t) ? to(function(s, i) {\n    return it(function(r, o) {\n      return t(s, r, i, o);\n    })(gt(n(s, i)));\n  }, e) : (typeof t == \"number\" && (e = t), kt(function(s, i) {\n    return cp(s, i, n, e);\n  }));\n}\nfunction fc(n) {\n  return n === void 0 && (n = 1 / 0), to(Je, n);\n}\nfunction lp() {\n  return fc(1);\n}\nfunction la() {\n  for (var n = [], t = 0; t < arguments.length; t++)\n    n[t] = arguments[t];\n  return lp()(Ks(n, Js(n)));\n}\nvar up = [\"addListener\", \"removeListener\"], fp = [\"addEventListener\", \"removeEventListener\"], dp = [\"on\", \"off\"];\nfunction ar(n, t, e, s) {\n  if (W(e) && (s = e, e = void 0), s)\n    return ar(n, t, e).pipe(Qr(s));\n  var i = we(gp(n) ? fp.map(function(a) {\n    return function(h) {\n      return n[a](t, h, e);\n    };\n  }) : mp(n) ? up.map(ua(n, t)) : pp(n) ? dp.map(ua(n, t)) : [], 2), r = i[0], o = i[1];\n  if (!r && Jr(n))\n    return to(function(a) {\n      return ar(a, t, e);\n    })(gt(n));\n  if (!r)\n    throw new TypeError(\"Invalid event target\");\n  return new nt(function(a) {\n    var h = function() {\n      for (var c = [], l = 0; l < arguments.length; l++)\n        c[l] = arguments[l];\n      return a.next(1 < c.length ? c : c[0]);\n    };\n    return r(h), function() {\n      return o(h);\n    };\n  });\n}\nfunction ua(n, t) {\n  return function(e) {\n    return function(s) {\n      return n[e](t, s);\n    };\n  };\n}\nfunction mp(n) {\n  return W(n.addListener) && W(n.removeListener);\n}\nfunction pp(n) {\n  return W(n.on) && W(n.off);\n}\nfunction gp(n) {\n  return W(n.addEventListener) && W(n.removeEventListener);\n}\nfunction tt(n, t, e) {\n  return e ? tt(n, t).pipe(Qr(e)) : new nt(function(s) {\n    var i = function() {\n      for (var o = [], a = 0; a < arguments.length; a++)\n        o[a] = arguments[a];\n      return s.next(o.length === 1 ? o[0] : o);\n    }, r = n(i);\n    return W(t) ? function() {\n      return t(i, r);\n    } : void 0;\n  });\n}\nfunction yp(n, t, e) {\n  n === void 0 && (n = 0), e === void 0 && (e = km);\n  var s = -1;\n  return t != null && (tc(t) ? e = t : s = t), new nt(function(i) {\n    var r = Zm(n) ? +n - e.now() : n;\n    r < 0 && (r = 0);\n    var o = 0;\n    return e.schedule(function() {\n      i.closed || (i.next(o++), 0 <= s ? this.schedule(void 0, s) : i.complete());\n    }, r);\n  });\n}\nfunction dc() {\n  for (var n = [], t = 0; t < arguments.length; t++)\n    n[t] = arguments[t];\n  var e = Js(n), s = Lm(n, 1 / 0), i = n;\n  return i.length ? i.length === 1 ? gt(i[0]) : fc(s)(Ks(i, e)) : Qh;\n}\nvar xp = Array.isArray;\nfunction wp(n) {\n  return n.length === 1 && xp(n[0]) ? n[0] : n;\n}\nfunction mc(n, t) {\n  return kt(function(e, s) {\n    var i = 0;\n    e.subscribe(lt(s, function(r) {\n      return n.call(t, r, i++) && s.next(r);\n    }));\n  });\n}\nfunction hi() {\n  for (var n = [], t = 0; t < arguments.length; t++)\n    n[t] = arguments[t];\n  return n = wp(n), n.length === 1 ? gt(n[0]) : new nt(bp(n));\n}\nfunction bp(n) {\n  return function(t) {\n    for (var e = [], s = function(r) {\n      e.push(gt(n[r]).subscribe(lt(t, function(o) {\n        if (e) {\n          for (var a = 0; a < e.length; a++)\n            a !== r && e[a].unsubscribe();\n          e = null;\n        }\n        t.next(o);\n      })));\n    }, i = 0; e && !t.closed && i < n.length; i++)\n      s(i);\n  };\n}\nfunction De(n, t) {\n  return t === void 0 && (t = Je), n = n ?? vp, kt(function(e, s) {\n    var i, r = !0;\n    e.subscribe(lt(s, function(o) {\n      var a = t(o);\n      (r || !n(i, a)) && (r = !1, i = a, s.next(o));\n    }));\n  });\n}\nfunction vp(n, t) {\n  return n === t;\n}\nfunction pc(n, t) {\n  return t ? function(e) {\n    return e.pipe(pc(function(s, i) {\n      return gt(n(s, i)).pipe(it(function(r, o) {\n        return t(s, r, i, o);\n      }));\n    }));\n  } : kt(function(e, s) {\n    var i = 0, r = null, o = !1;\n    e.subscribe(lt(s, function(a) {\n      r || (r = lt(s, void 0, function() {\n        r = null, o && s.complete();\n      }), gt(n(a, i++)).subscribe(r));\n    }, function() {\n      o = !0, !r && s.complete();\n    }));\n  });\n}\nfunction _p(n) {\n  n === void 0 && (n = {});\n  var t = n.connector, e = t === void 0 ? function() {\n    return new ke();\n  } : t, s = n.resetOnError, i = s === void 0 ? !0 : s, r = n.resetOnComplete, o = r === void 0 ? !0 : r, a = n.resetOnRefCountZero, h = a === void 0 ? !0 : a;\n  return function(c) {\n    var l, u, d, f = 0, m = !1, p = !1, S = function() {\n      u?.unsubscribe(), u = void 0;\n    }, g = function() {\n      S(), l = d = void 0, m = p = !1;\n    }, b = function() {\n      var x = l;\n      g(), x?.unsubscribe();\n    };\n    return kt(function(x, w) {\n      f++, !p && !m && S();\n      var C = d = d ?? e();\n      w.add(function() {\n        f--, f === 0 && !p && !m && (u = Di(b, h));\n      }), C.subscribe(w), !l && f > 0 && (l = new us({\n        next: function(_) {\n          return C.next(_);\n        },\n        error: function(_) {\n          p = !0, S(), u = Di(g, i, _), C.error(_);\n        },\n        complete: function() {\n          m = !0, S(), u = Di(g, o), C.complete();\n        }\n      }), gt(x).subscribe(l));\n    })(c);\n  };\n}\nfunction Di(n, t) {\n  for (var e = [], s = 2; s < arguments.length; s++)\n    e[s - 2] = arguments[s];\n  if (t === !0) {\n    n();\n    return;\n  }\n  if (t !== !1) {\n    var i = new us({\n      next: function() {\n        i.unsubscribe(), n();\n      }\n    });\n    return gt(t.apply(void 0, Ie([], we(e)))).subscribe(i);\n  }\n}\nfunction Sp(n, t, e) {\n  var s, i, r, o, a = !1;\n  return n && typeof n == \"object\" ? (s = n.bufferSize, o = s === void 0 ? 1 / 0 : s, i = n.windowTime, t = i === void 0 ? 1 / 0 : i, r = n.refCount, a = r === void 0 ? !1 : r, e = n.scheduler) : o = n ?? 1 / 0, _p({\n    connector: function() {\n      return new Tm(o, t, e);\n    },\n    resetOnError: !0,\n    resetOnComplete: !1,\n    resetOnRefCountZero: a\n  });\n}\nfunction Ke() {\n  for (var n = [], t = 0; t < arguments.length; t++)\n    n[t] = arguments[t];\n  var e = Js(n);\n  return kt(function(s, i) {\n    (e ? la(n, s, e) : la(n, s)).subscribe(i);\n  });\n}\nfunction ci(n, t) {\n  return kt(function(e, s) {\n    var i = null, r = 0, o = !1, a = function() {\n      return o && !i && s.complete();\n    };\n    e.subscribe(lt(s, function(h) {\n      i?.unsubscribe();\n      var c = 0, l = r++;\n      gt(n(h, l)).subscribe(i = lt(s, function(u) {\n        return s.next(t ? t(h, u, l, c++) : u);\n      }, function() {\n        i = null, a();\n      }));\n    }, function() {\n      o = !0, a();\n    }));\n  });\n}\nfunction Cp() {\n  return ci(Je);\n}\nfunction eo(n) {\n  return kt(function(t, e) {\n    gt(n).subscribe(lt(e, function() {\n      return e.complete();\n    }, Gs)), !e.closed && t.subscribe(e);\n  });\n}\nfunction je(n, t, e) {\n  var s = W(n) || t || e ? { next: n, error: t, complete: e } : n;\n  return s ? kt(function(i, r) {\n    var o;\n    (o = s.subscribe) === null || o === void 0 || o.call(s);\n    var a = !0;\n    i.subscribe(lt(r, function(h) {\n      var c;\n      (c = s.next) === null || c === void 0 || c.call(s, h), r.next(h);\n    }, function() {\n      var h;\n      a = !1, (h = s.complete) === null || h === void 0 || h.call(s), r.complete();\n    }, function(h) {\n      var c;\n      a = !1, (c = s.error) === null || c === void 0 || c.call(s, h), r.error(h);\n    }, function() {\n      var h, c;\n      a && ((h = s.unsubscribe) === null || h === void 0 || h.call(s)), (c = s.finalize) === null || c === void 0 || c.call(s);\n    }));\n  }) : Je;\n}\nfunction Ep(n, t) {\n  return kt(function(e, s) {\n    var i = t ?? {}, r = i.leading, o = r === void 0 ? !0 : r, a = i.trailing, h = a === void 0 ? !1 : a, c = !1, l = null, u = null, d = !1, f = function() {\n      u?.unsubscribe(), u = null, h && (S(), d && s.complete());\n    }, m = function() {\n      u = null, d && s.complete();\n    }, p = function(g) {\n      return u = gt(n(g)).subscribe(lt(s, f, m));\n    }, S = function() {\n      if (c) {\n        c = !1;\n        var g = l;\n        l = null, s.next(g), !d && p(g);\n      }\n    };\n    e.subscribe(lt(s, function(g) {\n      c = !0, l = g, !(u && !u.closed) && (o ? S() : p(g));\n    }, function() {\n      d = !0, !(h && c && u && !u.closed) && s.complete();\n    }));\n  });\n}\nfunction Pp(n, t, e) {\n  t === void 0 && (t = Wr);\n  var s = yp(n, t);\n  return Ep(function() {\n    return s;\n  }, e);\n}\nfunction Tp(n, t) {\n  return kt(function(e, s) {\n    var i = [], r = function(o) {\n      for (; 0 < i.length; )\n        i.shift().error(o);\n      s.error(o);\n    };\n    gt(n).subscribe(lt(s, function(o) {\n      var a = new ke();\n      i.push(a);\n      var h = new gs(), c = function() {\n        Us(i, a), a.complete(), h.unsubscribe();\n      }, l;\n      try {\n        l = gt(t(o));\n      } catch (u) {\n        r(u);\n        return;\n      }\n      s.next(a.asObservable()), h.add(l.subscribe(lt(s, c, Gs, r)));\n    }, Gs)), e.subscribe(lt(s, function(o) {\n      var a, h, c = i.slice();\n      try {\n        for (var l = qe(c), u = l.next(); !u.done; u = l.next()) {\n          var d = u.value;\n          d.next(o);\n        }\n      } catch (f) {\n        a = { error: f };\n      } finally {\n        try {\n          u && !u.done && (h = l.return) && h.call(l);\n        } finally {\n          if (a)\n            throw a.error;\n        }\n      }\n    }, function() {\n      for (; 0 < i.length; )\n        i.shift().complete();\n      s.complete();\n    }, r, function() {\n      for (; 0 < i.length; )\n        i.shift().unsubscribe();\n    }));\n  });\n}\nfunction ny(n) {\n  return n.toElement ? n.toElement : n.currentTarget ? n.currentTarget : n.srcElement ? n.srcElement : null;\n}\nfunction Z(n, t, e, s = !1) {\n  const i = async (r) => {\n    await e(r);\n  };\n  try {\n    n.addEventListener(t, i, s);\n  } catch {\n    n.attachEvent(\"on\" + t, i);\n  }\n  return () => {\n    try {\n      n.removeEventListener(t, i, s);\n    } catch {\n      n.detachEvent(\"on\" + t, i);\n    }\n  };\n}\nfunction iy(n, t, e, s, i = !1) {\n  return Z(\n    n || document.body,\n    e,\n    (r) => {\n      r.target === t && s(r);\n    },\n    i\n  );\n}\nfunction ry(n) {\n  n.replaceWith(n.cloneNode(!0));\n}\nfunction X(n, t, e = !1) {\n  return ar(n, t, { capture: e });\n}\nfunction oy(n) {\n  const t = tt(\n    (e) => n.register(e),\n    (e, s) => {\n      n.unregister?.(e, ...s || []);\n    },\n    // 参数转换函数\n    (...e) => [...e]\n  );\n  return n.share ? t.pipe(\n    Sp({\n      bufferSize: n.bufferSize || 1,\n      // 每个新订阅会收到最近一次事件\n      refCount: !0\n      // 最后一个订阅取消时会自动解绑事件\n    })\n  ) : t;\n}\nfunction Fe(n) {\n  if (n.preventDefault) {\n    n.preventDefault();\n    return;\n  }\n  try {\n    n.returnValue = !1;\n  } catch {\n  }\n}\nfunction gc(n) {\n  if (n.stopPropagation) {\n    n.stopPropagation();\n    return;\n  }\n  try {\n    n.cancelBubble = !0;\n  } catch {\n  }\n}\nconst Mp = [\n  \"click\",\n  \"dblclick\",\n  \"wheel\",\n  \"contextmenu\",\n  \"mousedown\",\n  \"mouseup\",\n  \"mousemove\",\n  \"mouseover\",\n  \"mouseout\",\n  \"mouseenter\",\n  \"mouseleave\"\n], Ap = [\"keydown\", \"keyup\", \"keypress\"], Ip = [\"touchstart\", \"touchend\", \"touchcancel\", \"touchmove\"], kp = [\n  \"pointerdown\",\n  \"pointerup\",\n  \"pointercancel\",\n  \"pointermove\"\n], Dp = [\n  \"dragstart\",\n  \"drag\",\n  \"dragend\",\n  \"dragenter\",\n  \"dragover\",\n  \"dragleave\",\n  \"drop\"\n], Lp = [\"change\"];\nfunction so(n, t = {\n  bubbles: !0,\n  detail: {}\n}) {\n  let e;\n  try {\n    const s = Object.assign(\n      {\n        bubbles: !0,\n        cancelable: !0,\n        view: window,\n        detail: 1,\n        // screenX: e.screenX,\n        // screenY: e.screenY,\n        // clientX: e.clientX,\n        // clientY: e.clientY,\n        ctrlKey: !1,\n        altKey: !1,\n        shiftKey: !1,\n        metaKey: !1,\n        button: 0,\n        relatedTarget: null\n      },\n      t\n    );\n    Mp.includes(n) ? e = new MouseEvent(n, s) : Ap.includes(n) ? e = new KeyboardEvent(n, s) : Ip.includes(n) ? e = new TouchEvent(n, s) : kp.includes(n) ? e = new PointerEvent(n, s) : Dp.includes(n) ? e = new DragEvent(n, s) : Lp.includes(n) ? e = new Event(n, s) : e = new CustomEvent(n, s);\n  } catch {\n    document.createEvent ? e = document.createEvent(\"Event\").initEvent(n, !0, !0) : document.createEventObject && (e = document.createEventObject());\n  }\n  return e;\n}\nfunction yc(n, t, e) {\n  if (n)\n    if (n.dispatchEvent)\n      n.dispatchEvent(e);\n    else if (n.fireEvent && document.createEventObject)\n      n.fireEvent(\"on\" + t, e);\n    else\n      throw new Error(`Can't dispatch event : ${t}`);\n}\nfunction ay(n, t) {\n  const e = n.target, s = so(t);\n  yc(e, t, s);\n}\nfunction hy(n) {\n  const t = n.target, e = \"click\";\n  if (!/(SELECT|INPUT|TEXTAREA)/i.test(t.tagName)) {\n    const s = so(e);\n    s.view = n.view || window, s.detail = 1, s.screenX = t.screenX || 0, s.screenY = t.screenY || 0, s.clientX = t.clientX || 0, s.clientY = t.clientY || 0, s.pageX = n.pageX, s.pageY = n.pageY, s.ctrlKey = !!n.ctrlKey, s.altKey = !!n.altKey, s.shiftKey = !!n.shiftKey, s.metaKey = !!n.metaKey, s.button = 0, s.relatedTarget = null, s._constructed = !0, yc(t, e, s);\n  }\n}\nfunction cy(n, t) {\n  const e = n.changedTouches[0];\n  return so(t, {\n    bubbles: !0,\n    cancelable: !0,\n    view: window,\n    detail: 1,\n    screenX: e.screenX,\n    screenY: e.screenY,\n    clientX: e.clientX,\n    clientY: e.clientY,\n    ctrlKey: !1,\n    altKey: !1,\n    shiftKey: !1,\n    metaKey: !1,\n    button: 0,\n    relatedTarget: null\n  });\n}\nlet Vs = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame, hr = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;\nif (!Vs) {\n  let n = ct();\n  Vs = (t) => {\n    const e = ct(), s = Math.max(0, 16 - (e - n)), i = window.setTimeout(() => {\n      t(e + s);\n    }, s);\n    return n = e + s, i;\n  };\n}\nhr || (hr = (n) => {\n  window.clearTimeout(n);\n});\nfunction xc(n) {\n  let t = !1, e = Vs(function s(i) {\n    !t && n(i) && (e = Vs(s));\n  });\n  return () => {\n    hr(e), t = !0;\n  };\n}\nfunction fa(n, t = 0) {\n  if (t == 0)\n    return n(ct()), () => {\n    };\n  {\n    const e = ct();\n    return xc((s) => s - e >= t ? (n(s), !1) : !0);\n  }\n}\nfunction ly(n, t = 0) {\n  let e = !1, s = 0;\n  const i = ct();\n  let r = fa(function o(a) {\n    if (e)\n      return;\n    s++;\n    const h = a - i - s * t;\n    n(a, s, t <= h), r = fa(o, Math.max(0, t - h));\n  }, t);\n  return () => {\n    r(), e = !0;\n  };\n}\nfunction uy(n, t = 20) {\n  const e = 1e3 / t;\n  let s = 0, i;\n  return () => (ct() - s >= e && (s = ct(), i = n()), i);\n}\nwindow.requestIdleCallback = window.requestIdleCallback || function(n, t) {\n  const e = ct();\n  return setTimeout(() => {\n    const s = ct() - e;\n    n({\n      didTimeout: !0,\n      // 是否已到设置的超时时间\n      timeRemaining: () => Math.max(0, 50 - s)\n      // 本帧剩余可执行时间，毫秒\n    });\n  }, t?.timeout);\n};\nwindow.cancelIdleCallback = window.cancelIdleCallback || function(n) {\n  clearTimeout(n);\n};\nfunction Rp(n, t) {\n  window.requestIdleCallback(\n    (e) => {\n      e.timeRemaining() > 0 || e.didTimeout ? n() : Rp(n, t);\n    },\n    { timeout: t?.timeout }\n  );\n}\nlet Nn = 0, cr = 0, Ye = 33, _e = 33, lr, ur = -1;\nconst wc = new MessageChannel(), Op = wc.port2;\nwc.port1.onmessage = (n) => {\n  lr && lr({\n    didTimeout: ur == -1 ? !1 : ct() - Nn > ur,\n    // currentCallback 执行时，是否已到设置的超时时间\n    timeRemaining: () => Math.max(0, cr - ct())\n    // 本帧剩余可执行时间，毫秒\n  });\n};\nfunction zp(n, t) {\n  return lr = n, ur = typeof t?.timeout == \"number\" ? t?.timeout : -1, requestAnimationFrame((e) => {\n    Nn = e;\n    let s = _e + Nn - cr;\n    s < _e && Ye < _e ? (s < 8 && (s = 8), _e = s < Ye ? Ye : s) : s > _e && Ye > _e ? _e = s < Ye ? Ye : s : Ye = s, cr = Nn + _e, Op.postMessage(null);\n  });\n}\nconst da = new ph({\n  concurrency: 1,\n  timeRemaining: 0\n});\nlet Li = !1;\nfunction Np(n, t) {\n  const e = mh({\n    fn: n,\n    name: t?.name,\n    deadline: typeof t?.timeout == \"number\" ? Gt() + t.timeout : void 0\n  });\n  da.addTask(e), !Li && (Li = !0, zp((s) => {\n    Li = !1, da.idleCallback(s);\n  }));\n}\nclass Qs {\n  static _nextId = 0;\n  static nextId() {\n    return Qs._nextId++;\n  }\n}\nconst O = {\n  // 线性\n  Linear: {\n    None: function(n) {\n      return n;\n    }\n  },\n  Ease: {\n    In: function(n) {\n      return Math.pow(n, 1.7);\n    }\n  },\n  // 二次\n  Quadratic: {\n    In: function(n) {\n      return n * n;\n    },\n    Out: function(n) {\n      return n * (2 - n);\n    },\n    InOut: function(n) {\n      return (n *= 2) < 1 ? 0.5 * n * n : -0.5 * (--n * (n - 2) - 1);\n    },\n    style: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\"\n  },\n  // 三次\n  Cubic: {\n    In: function(n) {\n      return n * n * n;\n    },\n    Out: function(n) {\n      return --n * n * n + 1;\n    },\n    InOut: function(n) {\n      return (n *= 2) < 1 ? 0.5 * n * n * n : 0.5 * ((n -= 2) * n * n + 2);\n    }\n  },\n  // 四次\n  Quartic: {\n    In: function(n) {\n      return n * n * n * n;\n    },\n    Out: function(n) {\n      return 1 - --n * n * n * n;\n    },\n    InOut: function(n) {\n      return (n *= 2) < 1 ? 0.5 * n * n * n * n : -0.5 * ((n -= 2) * n * n * n - 2);\n    }\n  },\n  // 五次\n  Quintic: {\n    In: function(n) {\n      return n * n * n * n * n;\n    },\n    Out: function(n) {\n      return --n * n * n * n * n + 1;\n    },\n    InOut: function(n) {\n      return (n *= 2) < 1 ? 0.5 * n * n * n * n * n : 0.5 * ((n -= 2) * n * n * n * n + 2);\n    }\n  },\n  // 正弦曲线\n  Sinusoidal: {\n    In: function(n) {\n      return 1 - Math.sin((1 - n) * Math.PI / 2);\n    },\n    Out: function(n) {\n      return Math.sin(n * Math.PI / 2);\n    },\n    InOut: function(n) {\n      return 0.5 * (1 - Math.sin(Math.PI * (0.5 - n)));\n    }\n  },\n  // 指数\n  Exponential: {\n    In: function(n) {\n      return n === 0 ? 0 : Math.pow(1024, n - 1);\n    },\n    Out: function(n) {\n      return n === 1 ? 1 : 1 - Math.pow(2, -10 * n);\n    },\n    InOut: function(n) {\n      return n === 0 ? 0 : n === 1 ? 1 : (n *= 2) < 1 ? 0.5 * Math.pow(1024, n - 1) : 0.5 * (-Math.pow(2, -10 * (n - 1)) + 2);\n    }\n  },\n  // 圆\n  Circular: {\n    In: function(n) {\n      return 1 - Math.sqrt(1 - n * n);\n    },\n    Out: function(n) {\n      return Math.sqrt(1 - --n * n);\n    },\n    InOut: function(n) {\n      return (n *= 2) < 1 ? -0.5 * (Math.sqrt(1 - n * n) - 1) : 0.5 * (Math.sqrt(1 - (n -= 2) * n) + 1);\n    },\n    style: \"cubic-bezier(0.1, 0.57, 0.1, 1)\"\n    // Not properly \"circular\" but this looks better, it should be (0.075, 0.82, 0.165, 1)\n  },\n  // 松紧带\n  Elastic: {\n    In: function(n) {\n      return n === 0 ? 0 : n === 1 ? 1 : -Math.pow(2, 10 * (n - 1)) * Math.sin((n - 1.1) * 5 * Math.PI);\n    },\n    Out: function(n) {\n      return n === 0 ? 0 : n === 1 ? 1 : Math.pow(2, -10 * n) * Math.sin((n - 0.1) * 5 * Math.PI) + 1;\n    },\n    InOut: function(n) {\n      return n === 0 ? 0 : n === 1 ? 1 : (n *= 2, n < 1 ? -0.5 * Math.pow(2, 10 * (n - 1)) * Math.sin((n - 1.1) * 5 * Math.PI) : 0.5 * Math.pow(2, -10 * (n - 1)) * Math.sin((n - 1.1) * 5 * Math.PI) + 1);\n    }\n  },\n  // 后退\n  Back: {\n    In: function(n) {\n      return n === 1 ? 1 : n * n * ((1.70158 + 1) * n - 1.70158);\n    },\n    Out: function(n) {\n      return n === 0 ? 0 : --n * n * ((1.70158 + 1) * n + 1.70158) + 1;\n    },\n    InOut: function(n) {\n      const t = 2.5949095;\n      return (n *= 2) < 1 ? 0.5 * (n * n * ((t + 1) * n - t)) : 0.5 * ((n -= 2) * n * ((t + 1) * n + t) + 2);\n    },\n    style: \"cubic-bezier(0.175, 0.885, 0.32, 1.275)\"\n  },\n  // 弹跳\n  Bounce: {\n    In: function(n) {\n      return 1 - O.Bounce.Out(1 - n);\n    },\n    Out: function(n) {\n      return n < 1 / 2.75 ? 7.5625 * n * n : n < 2 / 2.75 ? 7.5625 * (n -= 1.5 / 2.75) * n + 0.75 : n < 2.5 / 2.75 ? 7.5625 * (n -= 2.25 / 2.75) * n + 0.9375 : 7.5625 * (n -= 2.625 / 2.75) * n + 0.984375;\n    },\n    InOut: function(n) {\n      return n < 0.5 ? O.Bounce.In(n * 2) * 0.5 : O.Bounce.Out(n * 2 - 1) * 0.5 + 0.5;\n    }\n  },\n  // 生成指数\n  generatePow: function(n = 4) {\n    return n = n < Number.EPSILON ? Number.EPSILON : n, n = n > 1e4 ? 1e4 : n, {\n      In: function(t) {\n        return t ** n;\n      },\n      Out: function(t) {\n        return 1 - (1 - t) ** n;\n      },\n      InOut: function(t) {\n        return t < 0.5 ? (t * 2) ** n / 2 : (1 - (2 - t * 2) ** n) / 2 + 0.5;\n      }\n    };\n  },\n  // 随机\n  random: function(n) {\n    return Math.random();\n  },\n  // 步数\n  createStep: function(n) {\n    return function(t) {\n      return Math.floor(t * n) / n;\n    };\n  },\n  // 增加噪音\n  createNoisyEasing: function(n, t = 0.1) {\n    const e = 1 - t;\n    return function(s) {\n      return t * Math.random() + e * n(s);\n    };\n  },\n  swing: function(n) {\n    return n + Math.sin(n * Math.PI * 2) / 2;\n  },\n  causeSeizures: function(n) {\n    return n + 0.2 * Math.random() - 0.1;\n  }\n};\nfunction Yp(n) {\n  switch (n) {\n    case O.Quadratic.In:\n      return O.Quadratic.Out;\n    case O.Quadratic.Out:\n      return O.Quadratic.In;\n    case O.Quadratic.InOut:\n      return O.Quadratic.InOut;\n    case O.Cubic.In:\n      return O.Cubic.Out;\n    case O.Cubic.Out:\n      return O.Cubic.In;\n    case O.Cubic.InOut:\n      return O.Cubic.InOut;\n    case O.Quartic.In:\n      return O.Quartic.Out;\n    case O.Quartic.Out:\n      return O.Quartic.In;\n    case O.Quartic.InOut:\n      return O.Quartic.InOut;\n    case O.Quintic.In:\n      return O.Quintic.Out;\n    case O.Quintic.Out:\n      return O.Quintic.In;\n    case O.Quintic.InOut:\n      return O.Quintic.InOut;\n    case O.Sinusoidal.In:\n      return O.Sinusoidal.Out;\n    case O.Sinusoidal.Out:\n      return O.Sinusoidal.In;\n    case O.Sinusoidal.InOut:\n      return O.Sinusoidal.InOut;\n    case O.Exponential.In:\n      return O.Exponential.Out;\n    case O.Exponential.Out:\n      return O.Exponential.In;\n    case O.Exponential.InOut:\n      return O.Exponential.InOut;\n    case O.Circular.In:\n      return O.Circular.Out;\n    case O.Circular.Out:\n      return O.Circular.In;\n    case O.Circular.InOut:\n      return O.Circular.InOut;\n    case O.Elastic.In:\n      return O.Elastic.Out;\n    case O.Elastic.Out:\n      return O.Elastic.In;\n    case O.Elastic.InOut:\n      return O.Elastic.InOut;\n    case O.Back.In:\n      return O.Back.Out;\n    case O.Back.Out:\n      return O.Back.In;\n    case O.Back.InOut:\n      return O.Back.InOut;\n    case O.Bounce.In:\n      return O.Bounce.Out;\n    case O.Bounce.Out:\n      return O.Bounce.In;\n    case O.Bounce.InOut:\n      return O.Bounce.InOut;\n    default:\n      return n;\n  }\n}\nconst Bp = 4, Xp = 1e-3, Fp = 1e-7, Up = 10, Ms = 11, xn = 1 / (Ms - 1), Gp = typeof Float32Array == \"function\";\nfunction bc(n, t) {\n  return 1 - 3 * t + 3 * n;\n}\nfunction vc(n, t) {\n  return 3 * t - 6 * n;\n}\nfunction _c(n) {\n  return 3 * n;\n}\nfunction qn(n, t, e) {\n  return ((bc(t, e) * n + vc(t, e)) * n + _c(t)) * n;\n}\nfunction Sc(n, t, e) {\n  return 3 * bc(t, e) * n * n + 2 * vc(t, e) * n + _c(t);\n}\nfunction Vp(n, t, e, s, i) {\n  let r, o, a = 0;\n  do\n    o = t + (e - t) / 2, r = qn(o, s, i) - n, r > 0 ? e = o : t = o;\n  while (Math.abs(r) > Fp && ++a < Up);\n  return o;\n}\nfunction $p(n, t, e, s) {\n  for (let i = 0; i < Bp; ++i) {\n    const r = Sc(t, e, s);\n    if (r === 0)\n      return t;\n    const o = qn(t, e, s) - n;\n    t -= o / r;\n  }\n  return t;\n}\nfunction qp(n) {\n  return n;\n}\nfunction Cc(n, t, e, s) {\n  if (!(0 <= n && n <= 1 && 0 <= e && e <= 1))\n    throw new Error(\"bezier x values must be in [0, 1] range\");\n  if (n === t && e === s)\n    return qp;\n  const i = Gp ? new Float32Array(Ms) : new Array(Ms);\n  for (let o = 0; o < Ms; ++o)\n    i[o] = qn(o * xn, n, e);\n  function r(o) {\n    let a = 0, h = 1;\n    const c = Ms - 1;\n    for (; h !== c && i[h] <= o; ++h)\n      a += xn;\n    --h;\n    const l = (o - i[h]) / (i[h + 1] - i[h]), u = a + l * xn, d = Sc(u, n, e);\n    return d >= Xp ? $p(o, u, n, e) : d === 0 ? u : Vp(\n      o,\n      a,\n      a + xn,\n      n,\n      e\n    );\n  }\n  return (o) => o === 0 || o === 1 ? o : qn(r(o), t, s);\n}\nfunction Ec(n) {\n  switch (n) {\n    case \"linear\":\n      return [0, 0, 1, 1];\n    case \"ease\":\n      return [0.25, 0.1, 0.25, 1];\n    case \"ease-in\":\n      return [0.42, 0, 1, 1];\n    case \"ease-in-out\":\n      return [0.42, 0, 0.58, 1];\n    case \"ease-out\":\n      return [0, 0, 0.58, 1];\n  }\n}\nfunction jp(n) {\n  const [t, e, s, i] = Ec(n);\n  return [1 - s, 1 - i, 1 - t, 1 - e];\n}\nfunction fy(n) {\n  return Cc(...Ec(n));\n}\nfunction dy(n) {\n  return Cc(...jp(n));\n}\nconst Ae = {\n  Utils: {\n    Linear: function(n, t, e) {\n      return (t - n) * e + n;\n    },\n    Factorial: function() {\n      const n = [1];\n      return function(t) {\n        let e = 1;\n        if (n[t])\n          return n[t];\n        for (let s = t; s > 1; s--)\n          e *= s;\n        return n[t] = e, e;\n      };\n    }(),\n    Bernstein: function(n, t) {\n      const e = Ae.Utils.Factorial;\n      return e(n) / e(t) / e(n - t);\n    },\n    // 卡特穆尔·罗姆\n    CatmullRom: function(n, t, e, s, i) {\n      const r = (e - n) * 0.5, o = (s - t) * 0.5, a = i * i, h = i * a;\n      return (2 * t - 2 * e + r + o) * h + (-3 * t + 3 * e - 2 * r - o) * a + r * i + t;\n    },\n    QuadraticBezier: (n, t, e, s) => {\n      const i = 1 - s;\n      return i * i * n + 2 * i * s * t + s * s * e;\n    },\n    CubicBezier: (n, t, e, s, i) => {\n      const r = 1 - i;\n      return r * r * r * n + 3 * r * r * i * t + 3 * r * i * i * e + i * i * i * s;\n    }\n  },\n  // 线性\n  Linear: function(n, t) {\n    const e = n.length - 1, s = e * t, i = Math.floor(s), r = Ae.Utils.Linear;\n    return t < 0 ? r(n[0], n[1], s) : t > 1 ? r(n[e], n[e - 1], e - s) : r(n[i], n[i + 1 > e ? e : i + 1], s - i);\n  },\n  // 贝塞尔\n  Bezier: function(n, t) {\n    let e = 0;\n    const s = n.length - 1, i = Math.pow, r = Ae.Utils.Bernstein;\n    for (let o = 0; o <= s; o++)\n      e += i(1 - t, s - o) * i(t, o) * n[o] * r(s, o);\n    return e;\n  },\n  // 卡特穆尔·罗姆\n  CatmullRom: function(n, t) {\n    const e = n.length - 1;\n    let s = e * t, i = Math.floor(s);\n    const r = Ae.Utils.CatmullRom;\n    return n[0] === n[e] ? (t < 0 && (i = Math.floor(s = e * (1 + t))), r(\n      n[(i - 1 + e) % e],\n      n[i],\n      n[(i + 1) % e],\n      n[(i + 2) % e],\n      s - i\n    )) : t < 0 ? n[0] - (r(n[0], n[0], n[1], n[1], -s) - n[0]) : t > 1 ? n[e] - (r(n[e], n[e], n[e - 1], n[e - 1], s - e) - n[e]) : r(\n      n[i ? i - 1 : 0],\n      n[i],\n      n[e < i + 1 ? e : i + 1],\n      n[e < i + 2 ? e : i + 2],\n      s - i\n    );\n  }\n};\nclass Pc {\n  _tweens = {};\n  _tweensAddedDuringUpdate = {};\n  getAll() {\n    return Object.keys(this._tweens).map((t) => this._tweens[t]);\n  }\n  removeAll() {\n    this._tweens = {};\n  }\n  add(t) {\n    this._tweens[t.getId()] = t, this._tweensAddedDuringUpdate[t.getId()] = t;\n  }\n  remove(t) {\n    delete this._tweens[t.getId()], delete this._tweensAddedDuringUpdate[t.getId()];\n  }\n  update(t = ct(), e = !1) {\n    const s = Object.keys(this._tweens);\n    for (let i = 0; i < s.length; i++) {\n      const r = this._tweens[s[i]], o = !e;\n      r && r.update(t, o) === !1 && !e && delete this._tweens[s[i]];\n    }\n    return !!Object.keys(this._tweens).length;\n  }\n}\nconst $t = new Pc();\nclass Tc {\n  constructor(t, e = $t) {\n    this._object = t, this._group = e;\n  }\n  _id = Qs.nextId();\n  // 是否正在执行\n  _isPlaying = !1;\n  // 动画开始时间\n  _startTime = 0;\n  // 动画延迟时间\n  _delayTime = 0;\n  // 动画持续时间\n  _durationTime = 1e3;\n  // 是否暂停\n  _isPaused = !1;\n  // 暂停开始时间\n  _pauseStartTime = 0;\n  // 动画重复次数初始值\n  _initialRepeat = 0;\n  // 动画重复次数剩余值\n  _repeat = 0;\n  // 动画重复间隔\n  _repeatDelayTime;\n  // 动画重复时是否倒置\n  _yoyo = !1;\n  // 是否倒置运行\n  _reversed = !1;\n  // 初始值\n  _valuesStart = {};\n  // 结束值\n  _valuesEnd = {};\n  // reverse时的初始值\n  _valuesStartRepeat = {};\n  // 缓动函数\n  _easingFunction = O.Linear.None;\n  // 插值函数\n  _interpolationFunction = Ae.Linear;\n  // 链式动画数组\n  _chainedTweens = [];\n  // 链式动画是否已停止\n  _isChainStopped = !1;\n  // 动画开始hook\n  _onStartCallback;\n  // 动画开始hook是否已被执行\n  _onStartCallbackFired = !1;\n  // 动画每轮repeat开始hook\n  _onEveryStartCallback;\n  // 动画每轮repeat开始hook是否已被执行\n  _onEveryStartCallbackFired = !1;\n  // 动画更新hook\n  _onUpdateCallback;\n  // 动画repeat hook\n  _onRepeatCallback;\n  // 动画完成hook\n  _onCompleteCallback;\n  // 动画结束hook\n  _onStopCallback;\n  // 是否强制结束动画\n  _goToEnd = !1;\n  getId() {\n    return this._id;\n  }\n  isPlaying() {\n    return this._isPlaying;\n  }\n  isPaused() {\n    return this._isPaused;\n  }\n  to(t, e) {\n    return this._valuesEnd = Object.create(t), e !== void 0 && (this._durationTime = e), this;\n  }\n  duration(t = 1e3) {\n    return this._durationTime = t, this;\n  }\n  start(t = ct()) {\n    if (this._isPlaying)\n      return this;\n    if (this._group && this._group.add(this), this._repeat = this._initialRepeat, this._reversed) {\n      this._reversed = !1;\n      for (const e in this._valuesStartRepeat)\n        this._swapEndStartRepeatValues(e), this._valuesStart[e] = this._valuesStartRepeat[e];\n    }\n    return this._isPlaying = !0, this._isPaused = !1, this._onStartCallbackFired = !1, this._onEveryStartCallbackFired = !1, this._isChainStopped = !1, this._startTime = t, this._startTime += this._delayTime, this._setupProperties(\n      this._object,\n      this._valuesStart,\n      this._valuesEnd,\n      this._valuesStartRepeat\n    ), this;\n  }\n  _setupProperties(t, e, s, i) {\n    for (const r in s) {\n      const o = t[r], a = Array.isArray(o), h = a ? \"array\" : typeof o, c = !a && Array.isArray(s[r]);\n      if (!(h === \"undefined\" || h === \"function\")) {\n        if (c) {\n          let l = s[r];\n          if (l.length === 0)\n            continue;\n          l = l.map(\n            this._handleRelativeValue.bind(this, o)\n          ), s[r] = [o].concat(l);\n        }\n        if ((h === \"object\" || a) && o && !c) {\n          e[r] = a ? [] : {};\n          for (const l in o)\n            e[r][l] = o[l];\n          i[r] = a ? [] : {}, this._setupProperties(\n            o,\n            e[r],\n            s[r],\n            i[r]\n          );\n        } else\n          typeof e[r] > \"u\" && (e[r] = o), a || (e[r] *= 1), c ? i[r] = s[r].slice().reverse() : i[r] = e[r] || 0;\n      }\n    }\n  }\n  stop() {\n    return this._isChainStopped || (this._isChainStopped = !0, this.stopChainedTweens()), this._isPlaying ? (this._group && this._group.remove(this), this._isPlaying = !1, this._isPaused = !1, this._onStopCallback && this._onStopCallback(this._object), this) : this;\n  }\n  end() {\n    return this._goToEnd = !0, this.update(1 / 0), this;\n  }\n  pause(t = ct()) {\n    return this._isPaused || !this._isPlaying ? this : (this._isPaused = !0, this._pauseStartTime = t, this._group && this._group.remove(this), this);\n  }\n  resume(t = ct()) {\n    return !this._isPaused || !this._isPlaying ? this : (this._isPaused = !1, this._startTime += t - this._pauseStartTime, this._pauseStartTime = 0, this._group && this._group.add(this), this);\n  }\n  stopChainedTweens() {\n    for (let t = 0, e = this._chainedTweens.length; t < e; t++)\n      this._chainedTweens[t].stop();\n    return this;\n  }\n  group(t = $t) {\n    return this._group = t, this;\n  }\n  delay(t = 0) {\n    return this._delayTime = t, this;\n  }\n  repeat(t = 0) {\n    return this._initialRepeat = t, this._repeat = t, this;\n  }\n  repeatDelay(t) {\n    return this._repeatDelayTime = t, this;\n  }\n  yoyo(t = !1) {\n    return this._yoyo = t, this;\n  }\n  easing(t = O.Linear.None) {\n    return this._easingFunction = t, this;\n  }\n  interpolation(t = Ae.Linear) {\n    return this._interpolationFunction = t, this;\n  }\n  chain(...t) {\n    return this._chainedTweens = t, this;\n  }\n  onStart(t) {\n    return this._onStartCallback = t, this;\n  }\n  onEveryStart(t) {\n    return this._onEveryStartCallback = t, this;\n  }\n  onUpdate(t) {\n    return this._onUpdateCallback = t, this;\n  }\n  onRepeat(t) {\n    return this._onRepeatCallback = t, this;\n  }\n  onComplete(t) {\n    return this._onCompleteCallback = t, this;\n  }\n  onStop(t) {\n    return this._onStopCallback = t, this;\n  }\n  /**\n   * @returns true if the tween is still playing after the update, false otherwise\n   */\n  update(t = ct(), e = !0) {\n    if (this._isPaused)\n      return !0;\n    let s, i;\n    const r = this._startTime + this._durationTime;\n    if (!this._goToEnd && !this._isPlaying) {\n      if (t > r)\n        return !1;\n      e && this.start(t);\n    }\n    if (this._goToEnd = !1, t < this._startTime)\n      return !0;\n    this._onStartCallbackFired === !1 && (this._onStartCallback && this._onStartCallback(this._object), this._onStartCallbackFired = !0), this._onEveryStartCallbackFired === !1 && (this._onEveryStartCallback && this._onEveryStartCallback(this._object), this._onEveryStartCallbackFired = !0), i = (t - this._startTime) / this._durationTime, i = this._durationTime === 0 || i > 1 ? 1 : i;\n    const o = this._easingFunction(i);\n    if (this._updateProperties(\n      this._object,\n      this._valuesStart,\n      this._valuesEnd,\n      o\n    ), this._onUpdateCallback && this._onUpdateCallback(this._object, i), i === 1)\n      if (this._repeat > 0) {\n        isFinite(this._repeat) && this._repeat--;\n        for (s in this._valuesStartRepeat)\n          !this._yoyo && typeof this._valuesEnd[s] == \"string\" && (this._valuesStartRepeat[s] = this._valuesStartRepeat[s] + parseFloat(this._valuesEnd[s])), this._yoyo && this._swapEndStartRepeatValues(s), this._valuesStart[s] = this._valuesStartRepeat[s];\n        return this._yoyo && (this._reversed = !this._reversed), this._repeatDelayTime !== void 0 ? this._startTime = t + this._repeatDelayTime : this._startTime = t + this._delayTime, this._onRepeatCallback && this._onRepeatCallback(this._object), this._onEveryStartCallbackFired = !1, !0;\n      } else {\n        this._onCompleteCallback && this._onCompleteCallback(this._object);\n        for (let a = 0, h = this._chainedTweens.length; a < h; a++)\n          this._chainedTweens[a].start(this._startTime + this._durationTime);\n        return this._isPlaying = !1, !1;\n      }\n    return !0;\n  }\n  _updateProperties(t, e, s, i) {\n    for (const r in s) {\n      if (e[r] === void 0)\n        continue;\n      const o = e[r] || 0;\n      let a = s[r];\n      const h = Array.isArray(t[r]), c = Array.isArray(a);\n      !h && c ? t[r] = this._interpolationFunction(\n        a,\n        i\n      ) : typeof a == \"object\" && a ? this._updateProperties(t[r], o, a, i) : (a = this._handleRelativeValue(\n        o,\n        a\n      ), typeof a == \"number\" && (t[r] = o + (a - o) * i));\n    }\n  }\n  // Parses relative end values with start as base (e.g.: +10, -3)\n  _handleRelativeValue(t, e) {\n    return typeof e != \"string\" ? e : e.charAt(0) === \"+\" || e.charAt(0) === \"-\" ? t + parseFloat(e) : parseFloat(e);\n  }\n  _swapEndStartRepeatValues(t) {\n    const e = this._valuesStartRepeat[t], s = this._valuesEnd[t];\n    typeof s == \"string\" ? this._valuesStartRepeat[t] = this._valuesStartRepeat[t] + parseFloat(s) : this._valuesStartRepeat[t] = s, this._valuesEnd[t] = e;\n  }\n}\nconst Hp = Qs.nextId, Wp = $t.getAll.bind($t), Zp = $t.removeAll.bind($t), Jp = $t.add.bind($t), Kp = $t.remove.bind($t), Qp = $t.update.bind($t), my = {\n  now: ct,\n  Sequence: Qs,\n  Easing: O,\n  Interpolation: Ae,\n  Group: Pc,\n  Tween: Tc,\n  nextId: Hp,\n  getAll: Wp,\n  removeAll: Zp,\n  add: Jp,\n  remove: Kp,\n  update: Qp\n};\nclass ma {\n  autoStart;\n  startTime;\n  oldTime;\n  elapsedTime;\n  running;\n  constructor(t = !0) {\n    this.autoStart = t, this.startTime = 0, this.oldTime = 0, this.elapsedTime = 0, this.running = !1;\n  }\n  start() {\n    this.startTime = ct(), this.oldTime = this.startTime, this.elapsedTime = 0, this.running = !0;\n  }\n  stop() {\n    this.getElapsedTime(), this.running = !1, this.autoStart = !1;\n  }\n  // 毫秒\n  getElapsedTime() {\n    return this.getDelta(), this.elapsedTime;\n  }\n  // 毫秒\n  getDelta() {\n    let t = 0;\n    if (this.autoStart && !this.running)\n      return this.start(), 0;\n    if (this.running) {\n      const e = ct();\n      t = e - this.oldTime, this.oldTime = e, this.elapsedTime += t;\n    }\n    return t;\n  }\n}\nclass li {\n  tweens = [];\n  /// 每帧时间\n  frameDuration;\n  onGroupStart;\n  onGroupComplete;\n  constructor(t) {\n    this.frameDuration = t?.frameDuration || 1e3, this.onGroupStart = t?.onGroupStart, this.onGroupComplete = t?.onGroupComplete;\n  }\n  get count() {\n    return this.tweens.length;\n  }\n  clear() {\n    this.tweens = [];\n  }\n  sort(t = !1) {\n    bf(\n      this.tweens,\n      (e, s) => t ? e.delay > s.delay : e.delay <= s.delay\n    );\n  }\n  cloneTweens(t = this.tweens) {\n    const e = [];\n    return t.forEach((s) => {\n      const i = { ...s };\n      delete i.tween, i.fromValues = { ...i.fromValues }, i.toValues = { ...i.toValues }, e.push(i);\n    }), e;\n  }\n  addTween(t, e, s) {\n    const i = {\n      fromValues: t,\n      toValues: e,\n      frames: typeof s?.frames == \"number\" ? s.frames : 1,\n      /// 默认顺序执行\n      delay: typeof s?.delay == \"number\" ? s.delay : this.tweens.length,\n      easeFunction: s?.easeFunction || O.Linear.None,\n      interpolationFunction: s?.interpolationFunction || Ae.Linear,\n      repeat: typeof s?.repeat == \"number\" ? s.repeat : 0,\n      yoyo: s?.yoyo || !1,\n      onStart: s?.onStart || (() => {\n      }),\n      onUpdate: s?.onUpdate || (() => {\n      }),\n      onComplete: s?.onComplete || (() => {\n      })\n    };\n    return this.tweens.push(i), this;\n  }\n  cancelRequestAnimationCycle = () => {\n  };\n  runTweens(t) {\n    this.cancelRequestAnimationCycle();\n    const e = new ma(), s = this.frameDuration;\n    return new Promise((i) => {\n      this.onGroupStart?.(), this.cancelRequestAnimationCycle = xc(\n        (r) => {\n          if (!this.isPaused) {\n            const a = Math.max(0, r - this.pausedDuration), h = Math.max(\n              0,\n              e.getElapsedTime() - this.pausedDuration\n            );\n            t.filter((c) => c.delay * s <= h).forEach((c) => {\n              c.tween || (c.tween = new Tc({ ...c.fromValues }).to({ ...c.toValues }, c.frames * s).easing(c.easeFunction).interpolation(c.interpolationFunction).repeat(c.repeat).yoyo(c.yoyo).onStart(c.onStart).onUpdate(c.onUpdate).onComplete(c.onComplete), c.tween.start(a)), /// 进行中的tween\n              (c.delay + c.frames * (c.repeat + 1)) * s > h ? c.tween.update(a) : (c.tween.isPlaying() && c.tween.end(), rh(t, c));\n            });\n          }\n          const o = !!t.length;\n          return o || (this.onGroupComplete?.(), i()), o;\n        }\n      );\n    });\n  }\n  isPaused = !1;\n  pausedClock = new ma();\n  pausedDuration = 0;\n  /// 注意传入的 tweens 为深拷贝新数据\n  play(t = this.cloneTweens(this.tweens)) {\n    this.isPaused = !1, this.pausedDuration = 0, this.runTweens(t);\n  }\n  reverse() {\n    const t = this.cloneTweens(this.tweens);\n    let e = 0;\n    t.forEach((s) => {\n      e = Math.max(e, s.delay + s.frames), s.easeFunction = Yp(s.easeFunction);\n      const i = { ...s.toValues };\n      s.toValues = { ...s.fromValues }, s.fromValues = { ...i };\n    }), t.forEach((s) => {\n      s.delay = e - s.frames;\n    }), this.play(t);\n  }\n  pause() {\n    this.pausedClock.start(), this.isPaused = !0;\n  }\n  resume() {\n    this.pausedDuration += this.pausedClock.getElapsedTime(), this.pausedClock.stop(), this.isPaused = !1;\n  }\n}\nconst tn = new nf({\n  objectSignature: (n) => n.name\n  // size: getNextPrime(500),\n  // overflow: HashTableOverflow.SLIDE\n});\nfunction Mc(n, t = tn) {\n  let e = t?.find((s) => s.el == n);\n  return e || (e = ho(n), t.put(e), e);\n}\nfunction fr(n, t, e = tn) {\n  const s = Mc(n, e);\n  s.alternate || (s.alternate = ho(n), is(s.alternate.props, s.props, !0)), t(s.alternate);\n}\nfunction Ac(n = tn) {\n  n.update((t) => {\n    const e = t.alternate;\n    return e && (co(t, e), t.props = e.props, t.alternate = void 0), !0;\n  });\n}\nfunction py(n = tn) {\n  Ac(n);\n}\nfunction Ic(n = tn) {\n  Np(() => Ac(n), {\n    name: \"PATCH_VNODES\",\n    timeout: 50\n  });\n}\nfunction gy(n, t, e, s, i) {\n  const r = t / e;\n  let o = 0, a = 0;\n  switch (n) {\n    case \"aspectFit\":\n      r >= 1 ? (o = s, a = o / r, a > i && (a = i, o = a * r)) : (a = i, o = a * r, o > s && (o = s, a = o / r));\n      break;\n    case \"aspectFill\":\n      r >= 1 ? (a = i, o = a * r) : (o = s, a = o / r);\n      break;\n    case \"widthFix\":\n      o = s, a = o / r;\n      break;\n    case \"heightFix\":\n      a = i, o = a * r;\n      break;\n    case \"scaleToFill\":\n    default:\n      o = s, a = i;\n      break;\n  }\n  return { width: o, height: a };\n}\nfunction t0(n) {\n  try {\n    const t = document.createElement(\"canvas\"), e = t.getContext(\"2d\");\n    return t.width = n.width, t.height = n.height, e.drawImage(n, 0, 0, t.width, t.height), e.getImageData(0, 0, t.width, t.height);\n  } catch {\n    return new ImageData(n.width, n.height);\n  }\n}\nconst yy = (n) => {\n  const t = n.width, e = n.height, s = t * e * 3, i = s + 54, r = [\n    // WORD bfType -- The file type signature; must be \"BM\"\n    66,\n    77,\n    // DWORD bfSize -- The size, in bytes, of the bitmap file\n    i & 255,\n    i >> 8 & 255,\n    i >> 16 & 255,\n    i >> 24 & 255,\n    // WORD bfReserved1 -- Reserved; must be zero\n    0,\n    0,\n    // WORD bfReserved2 -- Reserved; must be zero\n    0,\n    0,\n    // DWORD bfOffBits -- The offset, in bytes, from the beginning of the BITMAPFILEHEADER structure to the bitmap bits.\n    54,\n    0,\n    0,\n    0\n  ], o = [\n    // DWORD biSize -- The number of bytes required by the structure\n    40,\n    0,\n    0,\n    0,\n    // LONG biWidth -- The width of the bitmap, in pixels\n    t & 255,\n    t >> 8 & 255,\n    t >> 16 & 255,\n    t >> 24 & 255,\n    // LONG biHeight -- The height of the bitmap, in pixels\n    e & 255,\n    e >> 8 & 255,\n    e >> 16 & 255,\n    e >> 24 & 255,\n    // WORD biPlanes -- The number of planes for the target device. This value must be set to 1\n    1,\n    0,\n    // WORD biBitCount -- The number of bits-per-pixel, 24 bits-per-pixel -- the bitmap\n    // has a maximum of 2^24 colors (16777216, Truecolor)\n    24,\n    0,\n    // DWORD biCompression -- The type of compression, BI_RGB (code 0) -- uncompressed\n    0,\n    0,\n    0,\n    0,\n    // DWORD biSizeImage -- The size, in bytes, of the image. This may be set to zero for BI_RGB bitmaps\n    s & 255,\n    s >> 8 & 255,\n    s >> 16 & 255,\n    s >> 24 & 255,\n    // LONG biXPelsPerMeter, unused\n    0,\n    0,\n    0,\n    0,\n    // LONG biYPelsPerMeter, unused\n    0,\n    0,\n    0,\n    0,\n    // DWORD biClrUsed, the number of color indexes of palette, unused\n    0,\n    0,\n    0,\n    0,\n    // DWORD biClrImportant, unused\n    0,\n    0,\n    0,\n    0\n  ], a = (4 - t * 3 % 4) % 4, h = n.data;\n  let c = \"\";\n  const l = t << 2;\n  let u = e;\n  const d = String.fromCharCode;\n  do {\n    const m = l * (u - 1);\n    let p = \"\";\n    for (let S = 0; S < t; S++) {\n      const g = S << 2;\n      p += d(h[m + g + 2]) + d(h[m + g + 1]) + d(h[m + g]);\n    }\n    for (let S = 0; S < a; S++)\n      p += String.fromCharCode(0);\n    c += p;\n  } while (--u);\n  function f(m) {\n    if (!window.btoa)\n      throw \"btoa undefined\";\n    let p = \"\";\n    if (typeof m == \"string\")\n      p = m;\n    else\n      for (let S = 0; S < m.length; S++)\n        p += String.fromCharCode(m[S]);\n    return btoa(p);\n  }\n  return f(r.concat(o)) + f(c);\n};\nfunction xy(n) {\n  const { width: t, height: e } = n, s = document.createElement(\"canvas\"), i = s.getContext(\"2d\");\n  return s.width = t, s.height = e, i.putImageData(n, 0, 0, 0, 0, t, e), s.toDataURL(\"image/png\");\n}\nconst wy = (n, t, e) => {\n  const { width: s, height: i } = n, r = document.createElement(\"canvas\"), o = r.getContext(\"2d\");\n  r.width = s, r.height = i, o.putImageData(n, 0, 0, 0, 0, s, i);\n  const a = `image/${t ? t.toLowerCase() : \"png\"}`;\n  r.toBlob(\n    (h) => {\n      e?.(null, h);\n    },\n    a,\n    1\n  );\n};\nfunction by(n, t) {\n  return createImageBitmap(n, t);\n}\nfunction vy(n) {\n  const t = [], e = [], s = [];\n  let i = 0;\n  for (let h = 0, c = n.data.length; h < c; h += 4)\n    t[i] = n.data[h], e[i] = n.data[h + 1], s[i] = n.data[h + 2], i += 1;\n  const r = Ri(t), o = Ri(e), a = Ri(s);\n  return \"rgb(\" + r + \",\" + o + \",\" + a + \")\";\n}\nfunction Ri(n) {\n  const t = {}, e = [], s = [];\n  for (let a = 0; a < n.length; a++)\n    t[n[a]] ? e.push(n[a]) : t[n[a]] = 1;\n  let i = 0;\n  for (let a = 0; a < e.length; a++) {\n    i = 0;\n    for (let h = 0; h < e.length; h++)\n      e[a] === e[h] && (i += 1), s[a] = i;\n  }\n  const r = Math.max.apply(null, s);\n  let o = 0;\n  for (; o < s.length; o++)\n    if (s[o] === r)\n      return;\n  return e[o];\n}\nconst _y = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = t[(o * e + e - a - 1) * 4], i[h + 1] = t[(o * e + e - a - 1) * 4 + 1], i[h + 2] = t[(o * e + e - a - 1) * 4 + 2], i[h + 3] = t[(o * e + e - a - 1) * 4 + 3];\n    }\n  return new ImageData(i, e, s);\n}, Sy = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = t[((s - o - 1) * e + a) * 4], i[h + 1] = t[((s - o - 1) * e + a) * 4 + 1], i[h + 2] = t[((s - o - 1) * e + a) * 4 + 2], i[h + 3] = t[((s - o - 1) * e + a) * 4 + 3];\n    }\n  return new ImageData(i, e, s);\n}, Cy = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < e; o++)\n    for (let a = 0; a < s; a++) {\n      const h = (o * s + a) * 4;\n      i[h] = t[(a * e + e - o - 1) * 4], i[h + 1] = t[(a * e + e - o - 1) * 4 + 1], i[h + 2] = t[(a * e + e - o - 1) * 4 + 2], i[h + 3] = t[(a * e + e - o - 1) * 4 + 3];\n    }\n  return new ImageData(i, s, e);\n}, Ey = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < e; o++)\n    for (let a = 0; a < s; a++) {\n      const h = (o * s + a) * 4;\n      i[h] = t[((s - a - 1) * e + o) * 4], i[h + 1] = t[((s - a - 1) * e + o) * 4 + 1], i[h + 2] = t[((s - a - 1) * e + o) * 4 + 2], i[h + 3] = t[((s - a - 1) * e + o) * 4 + 3];\n    }\n  return new ImageData(i, s, e);\n}, Py = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4, c = (t[h] + t[h + 1] + t[h + 2]) / 3;\n      i[h] = c, i[h + 1] = c, i[h + 2] = c, i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, Ty = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4, c = 0.2126 * t[h] + 0.7152 * t[h + 1] + 0.0722 * t[h + 2];\n      i[h] = c, i[h + 1] = c, i[h + 2] = c, i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, My = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4, l = (t[h] + t[h + 1] + t[h + 2]) / 3 > 127 ? 255 : 0;\n      i[h] = l, i[h + 1] = l, i[h + 2] = l, i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, Ay = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = 255 - t[h], i[h + 1] = 255 - t[h + 1], i[h + 2] = 255 - t[h + 2], i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, Iy = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = t[h], i[h + 1] = 0, i[h + 2] = 0, i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, ky = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = 0, i[h + 1] = t[h + 1], i[h + 2] = 0, i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, Dy = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = 0, i[h + 1] = 0, i[h + 2] = t[h + 2], i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, Ly = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = t[h], i[h + 1] = t[h + 1], i[h + 2] = 0, i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, Ry = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = t[h], i[h + 1] = 0, i[h + 2] = t[h + 1], i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, Oy = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = 0, i[h + 1] = t[h + 1], i[h + 2] = t[h + 1], i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, zy = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4, c = (t[h + 1] + t[h + 2]) / 2;\n      i[h] = t[h], i[h + 1] = c, i[h + 2] = c, i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, Ny = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4, c = (t[h] + t[h + 2]) / 2;\n      i[h] = c, i[h + 1] = t[h + 1], i[h + 2] = c, i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, Yy = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4, c = (t[h] + t[h + 1]) / 2;\n      i[h] = c, i[h + 1] = c, i[h + 2] = t[h + 2], i[h + 3] = t[h + 3];\n    }\n  return new ImageData(i, e, s);\n}, By = (n) => kc(n, [-1, -1, -1, -1, 9, -1, -1, -1, -1]), Xy = (n) => kc(n, [-1, -1, -1, -1, 8, -1, -1, -1, -1]), Fy = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      i[h] = t[h], i[h + 1] = t[h + 1], i[h + 2] = t[h + 2], i[h + 3] = 255;\n    }\n  return new ImageData(i, e, s);\n}, Uy = (n) => {\n  const { data: t, width: e, height: s } = n, i = new Uint8ClampedArray(t.length);\n  for (let o = 0; o < s; o++)\n    for (let a = 0; a < e; a++) {\n      const h = (o * e + a) * 4;\n      if (t[h + 3] === 0)\n        i[h] = 255, i[h + 1] = 255, i[h + 2] = 255, i[h + 3] = 255;\n      else {\n        const c = Dc(\n          [\n            t[h],\n            t[h + 1],\n            t[h + 2],\n            t[h + 3]\n          ],\n          [255, 255, 255, 255]\n        );\n        i[h] = c[0], i[h + 1] = c[1], i[h + 2] = c[2], i[h + 3] = c[3];\n      }\n    }\n  return new ImageData(i, e, s);\n};\nfunction Gy(n, t, e, s, i, r = !1, o) {\n  const { data: a, width: h, height: c } = n;\n  let l = i, u = s, d = t, f = e;\n  if (l < 0 ? l = 0 : l > h && (l = h), u < 0 ? u = 0 : u > c && (u = c), d < 1 ? d = 1 : d > h && (d = h), f < 1 ? f = 1 : f > c && (f = c), l + d > h && (d = h - l), u + f > c && (f = c - u), r) {\n    const m = new Uint8ClampedArray(a.length);\n    for (let S = 0; S < c; S++)\n      for (let g = 0; g < h; g++) {\n        const b = (S * h + g) * 4;\n        g >= l && g <= l + d && S >= u && S <= u + f ? (m[b] = a[b], m[b + 1] = a[b + 1], m[b + 2] = a[b + 2], m[b + 3] = a[b + 3]) : (m[b] = 255, m[b + 1] = 255, m[b + 2] = 255, m[b + 3] = o && [\"JPG\", \"JPEG\"].includes(o.toUpperCase()) ? 255 : 0);\n      }\n    return new ImageData(m, h, c);\n  } else {\n    const m = new Uint8ClampedArray(d * f * 4);\n    for (let S = u; S <= u + f; S++)\n      for (let g = l; g <= l + d; g++) {\n        const b = ((S - u) * d + g - l) * 4, x = (S * h + g) * 4;\n        m[b] = a[x], m[b + 1] = a[x + 1], m[b + 2] = a[x + 2], m[b + 3] = a[x + 3];\n      }\n    return new ImageData(m, d, f);\n  }\n}\nfunction Vy(n, t, e, s) {\n  const { data: i, width: r, height: o } = n;\n  let a = t;\n  a > Math.floor(r / 2) && (a = Math.floor(r / 2)), a > Math.floor(o / 2) && (a = Math.floor(o / 2)), a < 0 && (a = 0);\n  const h = new Uint8ClampedArray(i.length);\n  for (let l = 0; l < o; l++)\n    for (let u = 0; u < r; u++) {\n      const d = (l * r + u) * 4;\n      let f = -1;\n      u < a ? l < a ? f = Math.sqrt(\n        Math.pow(a - u - 1, 2) + Math.pow(a - l - 1, 2)\n      ) : l > o - a - 1 && (f = Math.sqrt(\n        Math.pow(a - u - 1, 2) + Math.pow(l - (o - a), 2)\n      )) : u > r - a - 1 && (l < a ? f = Math.sqrt(\n        Math.pow(u - (r - a), 2) + Math.pow(a - l - 1, 2)\n      ) : l > o - a - 1 && (f = Math.sqrt(\n        Math.pow(u - (r - a), 2) + Math.pow(l - (o - a), 2)\n      ))), Math.round(f) > a ? (h[d] = 255, h[d + 1] = 255, h[d + 2] = 255, h[d + 3] = s || e.toUpperCase() === \"PNG\" ? 0 : 255) : (h[d] = i[d], h[d + 1] = i[d + 1], h[d + 2] = i[d + 2], h[d + 3] = s || e.toUpperCase() === \"PNG\" ? i[d + 3] : 255);\n    }\n  return new ImageData(h, r, o);\n}\nfunction $y(n, t, e, s, i, r = 1e4) {\n  const o = new Image();\n  o.src = n;\n  const a = document.createElement(\"canvas\"), h = a.getContext(\"2d\");\n  return a.width = r, a.height = r, h.drawImage(o, 0, 0, t, e, 0, 0, s, i), h.getImageData(0, 0, s, i);\n}\nfunction qy(n, t) {\n  const { data: e, width: s, height: i } = n, r = new Uint8ClampedArray(e.length);\n  for (let a = 0; a < i; a++)\n    for (let h = 0; h < s; h++) {\n      const c = (a * s + h) * 4;\n      r[c] = Math.max(\n        Math.min(e[c] + t, 255),\n        0\n      ), r[c + 1] = Math.max(\n        Math.min(e[c + 1] + t, 255),\n        0\n      ), r[c + 2] = Math.max(\n        Math.min(e[c + 2] + t, 255),\n        0\n      ), r[c + 3] = e[c + 3];\n    }\n  return new ImageData(r, s, i);\n}\nfunction jy(n, t, e = !1) {\n  const { data: s, width: i, height: r } = n, o = new Uint8ClampedArray(s.length);\n  for (let h = 0; h < r; h++)\n    for (let c = 0; c < i; c++) {\n      const l = (h * i + c) * 4;\n      s[l + 3] === 0 ? (o[l] = 255, o[l + 1] = 255, o[l + 2] = 255) : (o[l] = s[l], o[l + 1] = s[l + 1], o[l + 2] = s[l + 2]);\n      let u = s[l + 3];\n      e ? u = Math.max(Math.min(Math.floor(255 * t), 255), 0) : u = Math.max(Math.min(Math.floor(u + 255 * t), 255), 0), o[l + 3] = u;\n    }\n  return new ImageData(o, i, r);\n}\nfunction Hy(n, t, e, s) {\n  const { data: i, width: r, height: o } = n, {\n    data: a,\n    width: h,\n    height: c\n  } = t;\n  let l = e, u = s;\n  e + c > o && (l = o - c), s + h > r && (u = r - h);\n  const d = new Uint8ClampedArray(i.length);\n  for (let m = 0; m < o; m++)\n    for (let p = 0; p < r; p++) {\n      const S = (m * r + p) * 4;\n      if (p < u || p > u + h || m <= l || m >= l + c)\n        d[S] = i[S], d[S + 1] = i[S + 1], d[S + 2] = i[S + 2], d[S + 3] = i[S + 3];\n      else {\n        const g = (m * r + p - ((l + 1) * r + (m - (l + 1)) * (r - h)) + h - u - 1) * 4, b = [\n          a[g],\n          a[g + 1],\n          a[g + 2],\n          a[g + 3]\n        ], x = [\n          i[S],\n          i[S + 1],\n          i[S + 2],\n          i[S + 3]\n        ], w = Dc(b, x);\n        d[S] = w[0], d[S + 1] = w[1], d[S + 2] = w[2], d[S + 3] = w[3];\n      }\n    }\n  return new ImageData(d, r, o);\n}\nfunction Wy(n, t, e, s, i, r = 10) {\n  const { data: o, width: a, height: h } = n;\n  let c = i, l = s, u = t, d = e;\n  c < 0 ? c = 0 : c > a && (c = a), l < 0 ? l = 0 : l > h && (l = h), u < 1 ? u = 1 : u > a && (u = a), d < 1 ? d = 1 : d > h && (d = h), c + u > a && (u = a - c), l + d > h && (d = h - l);\n  const f = new Uint8ClampedArray(o.length);\n  for (let p = 0; p < h; p++)\n    for (let S = 0; S < a; S++) {\n      const g = (p * a + S) * 4;\n      if (S >= c && S <= c + u && p >= l && p <= l + d) {\n        const b = Math.floor((S - c) / r), x = Math.floor((p - l) / r);\n        let w = Math.floor(\n          r * (b + 1) - r / 2 + c\n        ), C = Math.floor(\n          r * (x + 1) - r / 2 + l\n        );\n        w > a - 1 && (w = a - 1), C > h - 1 && (C = h - 1);\n        const _ = (C * a + w) * 4;\n        f[g] = o[_], f[g + 1] = o[_ + 1], f[g + 2] = o[_ + 2], f[g + 3] = o[_ + 3];\n      } else\n        f[g] = o[g], f[g + 1] = o[g + 1], f[g + 2] = o[g + 2], f[g + 3] = o[g + 3];\n    }\n  return new ImageData(f, a, h);\n}\nfunction Zy(n, t, e = {\n  backgroundColor: { r: 0, g: 0, b: 0, a: 255 },\n  changeIntoColor: { r: 0, g: 0, b: 0, a: 0 }\n}) {\n  if (t && e) {\n    const { data: s, width: i, height: r } = n, { data: o } = t, a = new Uint8ClampedArray(s.length), { backgroundColor: h, changeIntoColor: c } = e;\n    for (let u = 0; u < r; u++)\n      for (let d = 0; d < i; d++) {\n        const f = (u * i + d) * 4, m = o[f], p = o[f + 1], S = o[f + 2], g = o[f + 3];\n        m === h.r && p === h.g && S === h.b && g === h.a && c.a !== 0 ? (a[f] = c.r, a[f + 1] = c.g, a[f + 2] = c.b, a[f + 3] = c.a) : (a[f] = s[f], a[f + 1] = s[f + 1], a[f + 2] = s[f + 2], a[f + 3] = s[f + 3]);\n      }\n    return new ImageData(a, i, r);\n  }\n  return n;\n}\nfunction kc(n, t) {\n  const { data: e, width: s, height: i } = n, r = new Uint8ClampedArray(e.length);\n  for (let a = 0; a < i; a++)\n    for (let h = 0; h < s; h++) {\n      const c = (a * s + h) * 4;\n      for (let l = 0; l < 3; l++) {\n        const u = c + l;\n        h === 0 || h === s - 1 || a === 0 || a === i - 1 ? r[u] = e[u] : r[u] = t[0] * e[u - s * 4 - 4] + t[1] * e[u - s * 4] + t[2] * e[u - s * 4 + 4] + t[3] * e[u - 4] + t[4] * e[u] + t[5] * e[u + 4] + t[6] * e[u + s * 4 - 4] + t[7] * e[u + s * 4] + t[8] * e[u + s * 4 + 4];\n      }\n      r[c + 3] = e[c + 3];\n    }\n  return new ImageData(r, s, i);\n}\nfunction Dc(n, t) {\n  if (n && n.length === 4 && t && t.length === 4) {\n    const e = n[3], s = t[3];\n    if (e === 255 || s === 0)\n      return n;\n    if (e === 0)\n      return t;\n    {\n      const i = e / 255, r = s / 255, o = Math.max(\n        Math.min(\n          Math.floor(\n            n[0] * i + t[0] * r * (1 - i)\n          ),\n          255\n        ),\n        0\n      ), a = Math.max(\n        Math.min(\n          Math.floor(\n            n[1] * i + t[1] * r * (1 - i)\n          ),\n          255\n        ),\n        0\n      ), h = Math.max(\n        Math.min(\n          Math.floor(\n            n[2] * i + t[2] * r * (1 - i)\n          ),\n          255\n        ),\n        0\n      ), c = Math.max(\n        Math.min(\n          Math.floor(\n            (i + r * (1 - i)) * 255\n          ),\n          255\n        ),\n        0\n      );\n      return [o, a, h, c];\n    }\n  }\n  return [255, 255, 255, 255];\n}\nconst Lc = function() {\n  const n = [];\n  return {\n    writeByte(t) {\n      n.push(t & 255);\n    },\n    writeShort(t) {\n      this.writeByte(t), this.writeByte(t >>> 8);\n    },\n    writeBytes(t, e = 0, s = t.length) {\n      for (let i = 0; i < s; i++)\n        this.writeByte(t[i + e]);\n    },\n    writeString(t) {\n      for (let e = 0, s = t.length; e < s; e++)\n        this.writeByte(t.charCodeAt(e));\n    },\n    toByteArray() {\n      return n;\n    },\n    toString() {\n      let t = \"[\";\n      for (let e = 0, s = n.length; e < s; e++)\n        e > 0 && (t += \",\"), t += n[e];\n      return t += \"]\", t;\n    }\n  };\n}, e0 = function() {\n  let n = 0, t = 0, e = 0, s = \"\";\n  const i = function(o) {\n    if (!(o < 0)) {\n      if (o < 26)\n        return 65 + o;\n      if (o < 52)\n        return 97 + (o - 26);\n      if (o < 62)\n        return 48 + (o - 52);\n      if (o == 62)\n        return 43;\n      if (o == 63)\n        return 47;\n    }\n    throw new Error(\"n:\" + o);\n  }, r = function(o) {\n    s += String.fromCharCode(i(o & 63));\n  };\n  return {\n    writeByte(o) {\n      for (n = n << 8 | o & 255, t += 8, e += 1; t >= 6; )\n        r(n >>> t - 6), t -= 6;\n    },\n    flush() {\n      if (t > 0 && (r(n << 6 - t), n = 0, t = 0), e % 3 != 0) {\n        const o = 3 - e % 3;\n        for (let a = 0; a < o; a++)\n          s += \"=\";\n      }\n    },\n    toString() {\n      return s;\n    }\n  };\n}, s0 = function(n, t, e) {\n  const s = new Array(n * n), i = function(a) {\n    const h = a;\n    let c = 0, l = 0;\n    return {\n      write(u, d) {\n        if (u >>> d)\n          throw new Error(\"length over\");\n        for (; c + d >= 8; )\n          h.writeByte(255 & (u << c | l)), d -= 8 - c, u >>>= 8 - c, l = 0, c = 0;\n        l = u << c | l, c = c + d;\n      },\n      flush() {\n        c > 0 && h.writeByte(l);\n      }\n    };\n  }, r = function(a) {\n    const h = 1 << a, c = (1 << a) + 1;\n    let l = a + 1;\n    const u = o();\n    for (let S = 0; S < h; S++)\n      u.add(String.fromCharCode(S));\n    u.add(String.fromCharCode(h)), u.add(String.fromCharCode(c));\n    const d = Lc(), f = i(d);\n    f.write(h, l);\n    let m = 0, p = String.fromCharCode(s[m]);\n    for (m += 1; m < s.length; ) {\n      const S = String.fromCharCode(s[m]);\n      m += 1, u.contains(p + S) ? p = p + S : (f.write(u.indexOf(p), l), u.size() < 4095 && (u.size() == 1 << l && (l += 1), u.add(p + S)), p = S);\n    }\n    return f.write(u.indexOf(p), l), f.write(c, l), f.flush(), d.toByteArray();\n  }, o = function() {\n    const a = {};\n    let h = 0;\n    return {\n      add(c) {\n        if (this.contains(c))\n          throw new Error(\"dup key:\" + c);\n        a[c] = h, h += 1;\n      },\n      size() {\n        return h;\n      },\n      indexOf(c) {\n        return a[c];\n      },\n      contains(c) {\n        return typeof a[c] < \"u\";\n      }\n    };\n  };\n  return {\n    setPixel(a, h, c) {\n      s[h * n + a] = c;\n    },\n    write(a) {\n      a.writeString(\"GIF87a\"), a.writeShort(n), a.writeShort(n), a.writeByte(128), a.writeByte(0), a.writeByte(0), a.writeByte(es(\"0x\" + t[1] + t[2])), a.writeByte(es(\"0x\" + t[3] + t[4])), a.writeByte(es(\"0x\" + t[5] + t[6])), a.writeByte(es(\"0x\" + e[1] + e[2])), a.writeByte(es(\"0x\" + e[3] + e[4])), a.writeByte(es(\"0x\" + e[5] + e[6])), a.writeString(\",\"), a.writeShort(0), a.writeShort(0), a.writeShort(n), a.writeShort(n), a.writeByte(0);\n      const h = 2, c = r(h);\n      a.writeByte(h);\n      let l = 0;\n      for (; c.length - l > 255; )\n        a.writeByte(255), a.writeBytes(c, l, 255), l += 255;\n      a.writeByte(c.length - l), a.writeBytes(c, l, c.length - l), a.writeByte(0), a.writeString(\";\");\n    }\n  };\n}, n0 = function(n, t, e, s) {\n  const i = s0(n, t, e);\n  for (let c = 0; c < n; c++)\n    for (let l = 0; l < n; l++)\n      i.setPixel(l, c, s(l, c));\n  const r = Lc();\n  i.write(r);\n  const o = e0(), a = r.toByteArray();\n  for (let c = 0, l = a.length; c < l; c++)\n    o.writeByte(a[c]);\n  o.flush();\n  let h = \"\";\n  return h += \"data:image/gif;base64,\", h += o, h;\n}, Rt = {\n  MODE_NUMBER: 1,\n  MODE_ALPHA_NUM: 2,\n  MODE_8BIT_BYTE: 4,\n  MODE_KANJI: 8\n}, As = {\n  M: 0,\n  L: 1,\n  H: 2,\n  Q: 3\n}, Se = {\n  PATTERN000: 0,\n  PATTERN001: 1,\n  PATTERN010: 2,\n  PATTERN011: 3,\n  PATTERN100: 4,\n  PATTERN101: 5,\n  PATTERN110: 6,\n  PATTERN111: 7\n}, dt = {\n  glog: function(n) {\n    if (n < 1)\n      throw new Error(\"glog(\" + n + \")\");\n    return dt.LOG_TABLE[n];\n  },\n  gexp: function(n) {\n    for (; n < 0; )\n      n += 255;\n    for (; n >= 256; )\n      n -= 255;\n    return dt.EXP_TABLE[n];\n  },\n  EXP_TABLE: new Array(256),\n  LOG_TABLE: new Array(256)\n};\nfor (let n = 0; n < 8; n++)\n  dt.EXP_TABLE[n] = 1 << n;\nfor (let n = 8; n < 256; n++)\n  dt.EXP_TABLE[n] = dt.EXP_TABLE[n - 4] ^ dt.EXP_TABLE[n - 5] ^ dt.EXP_TABLE[n - 6] ^ dt.EXP_TABLE[n - 8];\nfor (let n = 0; n < 255; n++)\n  dt.LOG_TABLE[dt.EXP_TABLE[n]] = n;\nconst K = {\n  PATTERN_POSITION_TABLE: [\n    [],\n    [6, 18],\n    [6, 22],\n    [6, 26],\n    [6, 30],\n    [6, 34],\n    [6, 22, 38],\n    [6, 24, 42],\n    [6, 26, 46],\n    [6, 28, 50],\n    [6, 30, 54],\n    [6, 32, 58],\n    [6, 34, 62],\n    [6, 26, 46, 66],\n    [6, 26, 48, 70],\n    [6, 26, 50, 74],\n    [6, 30, 54, 78],\n    [6, 30, 56, 82],\n    [6, 30, 58, 86],\n    [6, 34, 62, 90],\n    [6, 28, 50, 72, 94],\n    [6, 26, 50, 74, 98],\n    [6, 30, 54, 78, 102],\n    [6, 28, 54, 80, 106],\n    [6, 32, 58, 84, 110],\n    [6, 30, 58, 86, 114],\n    [6, 34, 62, 90, 118],\n    [6, 26, 50, 74, 98, 122],\n    [6, 30, 54, 78, 102, 126],\n    [6, 26, 52, 78, 104, 130],\n    [6, 30, 56, 82, 108, 134],\n    [6, 34, 60, 86, 112, 138],\n    [6, 30, 58, 86, 114, 142],\n    [6, 34, 62, 90, 118, 146],\n    [6, 30, 54, 78, 102, 126, 150],\n    [6, 24, 50, 76, 102, 128, 154],\n    [6, 28, 54, 80, 106, 132, 158],\n    [6, 32, 58, 84, 110, 136, 162],\n    [6, 26, 54, 82, 110, 138, 166],\n    [6, 30, 58, 86, 114, 142, 170]\n  ],\n  G15: 1335,\n  G18: 7973,\n  G15_MASK: 21522,\n  getBCHTypeInfo: function(n) {\n    let t = n << 10;\n    for (; K.getBCHDigit(t) - K.getBCHDigit(K.G15) >= 0; )\n      t ^= K.G15 << K.getBCHDigit(t) - K.getBCHDigit(K.G15);\n    return (n << 10 | t) ^ K.G15_MASK;\n  },\n  getBCHTypeNumber: function(n) {\n    let t = n << 12;\n    for (; K.getBCHDigit(t) - K.getBCHDigit(K.G18) >= 0; )\n      t ^= K.G18 << K.getBCHDigit(t) - K.getBCHDigit(K.G18);\n    return n << 12 | t;\n  },\n  getBCHDigit: function(n) {\n    let t = 0;\n    for (; n != 0; )\n      t++, n >>>= 1;\n    return t;\n  },\n  getPatternPosition: function(n) {\n    return K.PATTERN_POSITION_TABLE[n - 1];\n  },\n  getMask: function(n, t, e) {\n    switch (n) {\n      case Se.PATTERN000:\n        return (t + e) % 2 == 0;\n      case Se.PATTERN001:\n        return t % 2 == 0;\n      case Se.PATTERN010:\n        return e % 3 == 0;\n      case Se.PATTERN011:\n        return (t + e) % 3 == 0;\n      case Se.PATTERN100:\n        return (Math.floor(t / 2) + Math.floor(e / 3)) % 2 == 0;\n      case Se.PATTERN101:\n        return t * e % 2 + t * e % 3 == 0;\n      case Se.PATTERN110:\n        return (t * e % 2 + t * e % 3) % 2 == 0;\n      case Se.PATTERN111:\n        return (t * e % 3 + (t + e) % 2) % 2 == 0;\n      default:\n        throw new Error(\"bad maskPattern:\" + n);\n    }\n  },\n  getErrorCorrectPolynomial: function(n) {\n    let t = new fs([1], 0);\n    for (let e = 0; e < n; e++)\n      t = t.multiply(new fs([1, dt.gexp(e)], 0));\n    return t;\n  },\n  getLengthInBits: function(n, t) {\n    if (1 <= t && t < 10)\n      switch (n) {\n        case Rt.MODE_NUMBER:\n          return 10;\n        case Rt.MODE_ALPHA_NUM:\n          return 9;\n        case Rt.MODE_8BIT_BYTE:\n          return 8;\n        case Rt.MODE_KANJI:\n          return 8;\n        default:\n          throw new Error(\"mode:\" + n);\n      }\n    else if (t < 27)\n      switch (n) {\n        case Rt.MODE_NUMBER:\n          return 12;\n        case Rt.MODE_ALPHA_NUM:\n          return 11;\n        case Rt.MODE_8BIT_BYTE:\n          return 16;\n        case Rt.MODE_KANJI:\n          return 10;\n        default:\n          throw new Error(\"mode:\" + n);\n      }\n    else if (t < 41)\n      switch (n) {\n        case Rt.MODE_NUMBER:\n          return 14;\n        case Rt.MODE_ALPHA_NUM:\n          return 13;\n        case Rt.MODE_8BIT_BYTE:\n          return 16;\n        case Rt.MODE_KANJI:\n          return 12;\n        default:\n          throw new Error(\"mode:\" + n);\n      }\n    else\n      throw new Error(\"type:\" + t);\n  },\n  getLostPoint: function(n) {\n    const t = n.getModuleCount();\n    let e = 0;\n    for (let r = 0; r < t; r++)\n      for (let o = 0; o < t; o++) {\n        let a = 0;\n        const h = n.isDark(r, o);\n        for (let c = -1; c <= 1; c++)\n          if (!(r + c < 0 || t <= r + c))\n            for (let l = -1; l <= 1; l++)\n              o + l < 0 || t <= o + l || c == 0 && l == 0 || h == n.isDark(r + c, o + l) && a++;\n        a > 5 && (e += 3 + a - 5);\n      }\n    for (let r = 0; r < t - 1; r++)\n      for (let o = 0; o < t - 1; o++) {\n        let a = 0;\n        n.isDark(r, o) && a++, n.isDark(r + 1, o) && a++, n.isDark(r, o + 1) && a++, n.isDark(r + 1, o + 1) && a++, (a == 0 || a == 4) && (e += 3);\n      }\n    for (let r = 0; r < t; r++)\n      for (let o = 0; o < t - 6; o++)\n        n.isDark(r, o) && !n.isDark(r, o + 1) && n.isDark(r, o + 2) && n.isDark(r, o + 3) && n.isDark(r, o + 4) && !n.isDark(r, o + 5) && n.isDark(r, o + 6) && (e += 40);\n    for (let r = 0; r < t; r++)\n      for (let o = 0; o < t - 6; o++)\n        n.isDark(o, r) && !n.isDark(o + 1, r) && n.isDark(o + 2, r) && n.isDark(o + 3, r) && n.isDark(o + 4, r) && !n.isDark(o + 5, r) && n.isDark(o + 6, r) && (e += 40);\n    let s = 0;\n    for (let r = 0; r < t; r++)\n      for (let o = 0; o < t; o++)\n        n.isDark(o, r) && s++;\n    const i = Math.abs(100 * s / t / t - 50) / 5;\n    return e += i * 10, e;\n  }\n};\nclass fs {\n  num;\n  constructor(t, e) {\n    if (t.length == null)\n      throw new Error(t.length + \"/\" + e);\n    let s = 0;\n    for (; s < t.length && t[s] == 0; )\n      s++;\n    this.num = new Array(t.length - s + e);\n    for (let i = 0; i < t.length - s; i++)\n      this.num[i] = t[i + s];\n  }\n  get(t) {\n    return this.num[t];\n  }\n  getLength() {\n    return this.num.length;\n  }\n  multiply(t) {\n    const e = new Array(this.getLength() + t.getLength() - 1);\n    for (let s = 0; s < this.getLength(); s++)\n      for (let i = 0; i < t.getLength(); i++)\n        e[s + i] ^= dt.gexp(\n          dt.glog(this.get(s)) + dt.glog(t.get(i))\n        );\n    return new fs(e, 0);\n  }\n  mod(t) {\n    if (this.getLength() - t.getLength() < 0)\n      return this;\n    const e = dt.glog(this.get(0)) - dt.glog(t.get(0)), s = new Array(this.getLength());\n    for (let i = 0; i < this.getLength(); i++)\n      s[i] = this.get(i);\n    for (let i = 0; i < t.getLength(); i++)\n      s[i] ^= dt.gexp(dt.glog(t.get(i)) + e);\n    return new fs(s, 0).mod(t);\n  }\n}\nclass ge {\n  totalCount;\n  dataCount;\n  constructor(t, e) {\n    this.totalCount = t, this.dataCount = e;\n  }\n  static RS_BLOCK_TABLE = [\n    // L\n    // M\n    // Q\n    // H\n    // 1\n    [1, 26, 19],\n    [1, 26, 16],\n    [1, 26, 13],\n    [1, 26, 9],\n    // 2\n    [1, 44, 34],\n    [1, 44, 28],\n    [1, 44, 22],\n    [1, 44, 16],\n    // 3\n    [1, 70, 55],\n    [1, 70, 44],\n    [2, 35, 17],\n    [2, 35, 13],\n    // 4\n    [1, 100, 80],\n    [2, 50, 32],\n    [2, 50, 24],\n    [4, 25, 9],\n    // 5\n    [1, 134, 108],\n    [2, 67, 43],\n    [2, 33, 15, 2, 34, 16],\n    [2, 33, 11, 2, 34, 12],\n    // 6\n    [2, 86, 68],\n    [4, 43, 27],\n    [4, 43, 19],\n    [4, 43, 15],\n    // 7\n    [2, 98, 78],\n    [4, 49, 31],\n    [2, 32, 14, 4, 33, 15],\n    [4, 39, 13, 1, 40, 14],\n    // 8\n    [2, 121, 97],\n    [2, 60, 38, 2, 61, 39],\n    [4, 40, 18, 2, 41, 19],\n    [4, 40, 14, 2, 41, 15],\n    // 9\n    [2, 146, 116],\n    [3, 58, 36, 2, 59, 37],\n    [4, 36, 16, 4, 37, 17],\n    [4, 36, 12, 4, 37, 13],\n    // 10\n    [2, 86, 68, 2, 87, 69],\n    [4, 69, 43, 1, 70, 44],\n    [6, 43, 19, 2, 44, 20],\n    [6, 43, 15, 2, 44, 16],\n    // 11\n    [4, 101, 81],\n    [1, 80, 50, 4, 81, 51],\n    [4, 50, 22, 4, 51, 23],\n    [3, 36, 12, 8, 37, 13],\n    // 12\n    [2, 116, 92, 2, 117, 93],\n    [6, 58, 36, 2, 59, 37],\n    [4, 46, 20, 6, 47, 21],\n    [7, 42, 14, 4, 43, 15],\n    // 13\n    [4, 133, 107],\n    [8, 59, 37, 1, 60, 38],\n    [8, 44, 20, 4, 45, 21],\n    [12, 33, 11, 4, 34, 12],\n    // 14\n    [3, 145, 115, 1, 146, 116],\n    [4, 64, 40, 5, 65, 41],\n    [11, 36, 16, 5, 37, 17],\n    [11, 36, 12, 5, 37, 13],\n    // 15\n    [5, 109, 87, 1, 110, 88],\n    [5, 65, 41, 5, 66, 42],\n    [5, 54, 24, 7, 55, 25],\n    [11, 36, 12],\n    // 16\n    [5, 122, 98, 1, 123, 99],\n    [7, 73, 45, 3, 74, 46],\n    [15, 43, 19, 2, 44, 20],\n    [3, 45, 15, 13, 46, 16],\n    // 17\n    [1, 135, 107, 5, 136, 108],\n    [10, 74, 46, 1, 75, 47],\n    [1, 50, 22, 15, 51, 23],\n    [2, 42, 14, 17, 43, 15],\n    // 18\n    [5, 150, 120, 1, 151, 121],\n    [9, 69, 43, 4, 70, 44],\n    [17, 50, 22, 1, 51, 23],\n    [2, 42, 14, 19, 43, 15],\n    // 19\n    [3, 141, 113, 4, 142, 114],\n    [3, 70, 44, 11, 71, 45],\n    [17, 47, 21, 4, 48, 22],\n    [9, 39, 13, 16, 40, 14],\n    // 20\n    [3, 135, 107, 5, 136, 108],\n    [3, 67, 41, 13, 68, 42],\n    [15, 54, 24, 5, 55, 25],\n    [15, 43, 15, 10, 44, 16],\n    // 21\n    [4, 144, 116, 4, 145, 117],\n    [17, 68, 42],\n    [17, 50, 22, 6, 51, 23],\n    [19, 46, 16, 6, 47, 17],\n    // 22\n    [2, 139, 111, 7, 140, 112],\n    [17, 74, 46],\n    [7, 54, 24, 16, 55, 25],\n    [34, 37, 13],\n    // 23\n    [4, 151, 121, 5, 152, 122],\n    [4, 75, 47, 14, 76, 48],\n    [11, 54, 24, 14, 55, 25],\n    [16, 45, 15, 14, 46, 16],\n    // 24\n    [6, 147, 117, 4, 148, 118],\n    [6, 73, 45, 14, 74, 46],\n    [11, 54, 24, 16, 55, 25],\n    [30, 46, 16, 2, 47, 17],\n    // 25\n    [8, 132, 106, 4, 133, 107],\n    [8, 75, 47, 13, 76, 48],\n    [7, 54, 24, 22, 55, 25],\n    [22, 45, 15, 13, 46, 16],\n    // 26\n    [10, 142, 114, 2, 143, 115],\n    [19, 74, 46, 4, 75, 47],\n    [28, 50, 22, 6, 51, 23],\n    [33, 46, 16, 4, 47, 17],\n    // 27\n    [8, 152, 122, 4, 153, 123],\n    [22, 73, 45, 3, 74, 46],\n    [8, 53, 23, 26, 54, 24],\n    [12, 45, 15, 28, 46, 16],\n    // 28\n    [3, 147, 117, 10, 148, 118],\n    [3, 73, 45, 23, 74, 46],\n    [4, 54, 24, 31, 55, 25],\n    [11, 45, 15, 31, 46, 16],\n    // 29\n    [7, 146, 116, 7, 147, 117],\n    [21, 73, 45, 7, 74, 46],\n    [1, 53, 23, 37, 54, 24],\n    [19, 45, 15, 26, 46, 16],\n    // 30\n    [5, 145, 115, 10, 146, 116],\n    [19, 75, 47, 10, 76, 48],\n    [15, 54, 24, 25, 55, 25],\n    [23, 45, 15, 25, 46, 16],\n    // 31\n    [13, 145, 115, 3, 146, 116],\n    [2, 74, 46, 29, 75, 47],\n    [42, 54, 24, 1, 55, 25],\n    [23, 45, 15, 28, 46, 16],\n    // 32\n    [17, 145, 115],\n    [10, 74, 46, 23, 75, 47],\n    [10, 54, 24, 35, 55, 25],\n    [19, 45, 15, 35, 46, 16],\n    // 33\n    [17, 145, 115, 1, 146, 116],\n    [14, 74, 46, 21, 75, 47],\n    [29, 54, 24, 19, 55, 25],\n    [11, 45, 15, 46, 46, 16],\n    // 34\n    [13, 145, 115, 6, 146, 116],\n    [14, 74, 46, 23, 75, 47],\n    [44, 54, 24, 7, 55, 25],\n    [59, 46, 16, 1, 47, 17],\n    // 35\n    [12, 151, 121, 7, 152, 122],\n    [12, 75, 47, 26, 76, 48],\n    [39, 54, 24, 14, 55, 25],\n    [22, 45, 15, 41, 46, 16],\n    // 36\n    [6, 151, 121, 14, 152, 122],\n    [6, 75, 47, 34, 76, 48],\n    [46, 54, 24, 10, 55, 25],\n    [2, 45, 15, 64, 46, 16],\n    // 37\n    [17, 152, 122, 4, 153, 123],\n    [29, 74, 46, 14, 75, 47],\n    [49, 54, 24, 10, 55, 25],\n    [24, 45, 15, 46, 46, 16],\n    // 38\n    [4, 152, 122, 18, 153, 123],\n    [13, 74, 46, 32, 75, 47],\n    [48, 54, 24, 14, 55, 25],\n    [42, 45, 15, 32, 46, 16],\n    // 39\n    [20, 147, 117, 4, 148, 118],\n    [40, 75, 47, 7, 76, 48],\n    [43, 54, 24, 22, 55, 25],\n    [10, 45, 15, 67, 46, 16],\n    // 40\n    [19, 148, 118, 6, 149, 119],\n    [18, 75, 47, 31, 76, 48],\n    [34, 54, 24, 34, 55, 25],\n    [20, 45, 15, 61, 46, 16]\n  ];\n  static getRSBlocks(t, e) {\n    const s = ge.getRsBlockTable(t, e);\n    if (s == null)\n      throw new Error(\n        \"bad rs block @ typeNumber:\" + t + \"/errorCorrectLevel:\" + e\n      );\n    const i = s.length / 3, r = [];\n    for (let o = 0; o < i; o++) {\n      const a = s[o * 3 + 0], h = s[o * 3 + 1], c = s[o * 3 + 2];\n      for (let l = 0; l < a; l++)\n        r.push(new ge(h, c));\n    }\n    return r;\n  }\n  static getRsBlockTable(t, e) {\n    switch (e) {\n      case As.L:\n        return ge.RS_BLOCK_TABLE[(t - 1) * 4 + 0];\n      case As.M:\n        return ge.RS_BLOCK_TABLE[(t - 1) * 4 + 1];\n      case As.Q:\n        return ge.RS_BLOCK_TABLE[(t - 1) * 4 + 2];\n      case As.H:\n        return ge.RS_BLOCK_TABLE[(t - 1) * 4 + 3];\n      default:\n        return;\n    }\n  }\n}\nclass pa {\n  buffer;\n  length;\n  constructor() {\n    this.buffer = [], this.length = 0;\n  }\n  get(t) {\n    const e = Math.floor(t / 8);\n    return (this.buffer[e] >>> 7 - t % 8 & 1) == 1;\n  }\n  put(t, e) {\n    for (let s = 0; s < e; s++)\n      this.putBit((t >>> e - s - 1 & 1) == 1);\n  }\n  getLengthInBits() {\n    return this.length;\n  }\n  putBit(t) {\n    const e = Math.floor(this.length / 8);\n    this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++;\n  }\n}\nclass i0 {\n  mode;\n  data;\n  constructor(t) {\n    this.mode = Rt.MODE_8BIT_BYTE, this.data = t;\n  }\n  getLength() {\n    return this.data.length;\n  }\n  write(t) {\n    for (let e = 0, s = this.data.length; e < s; e++)\n      t.put(this.data.charCodeAt(e), 8);\n  }\n}\nclass Ue {\n  static PAD0 = 236;\n  static PAD1 = 17;\n  typeNumber;\n  errorCorrectLevel;\n  modules;\n  moduleCount;\n  dataCache;\n  dataList;\n  constructor(t, e) {\n    this.typeNumber = t, this.errorCorrectLevel = As[e], this.modules = [], this.moduleCount = 0, this.dataCache = null, this.dataList = [];\n  }\n  addData(t) {\n    const e = new i0(t);\n    this.dataList.push(e), this.dataCache = null;\n  }\n  isDark(t, e) {\n    if (t < 0 || this.moduleCount <= t || e < 0 || this.moduleCount <= e)\n      throw new Error(t + \",\" + e);\n    return this.modules[t][e];\n  }\n  getModuleCount() {\n    return this.moduleCount;\n  }\n  make() {\n    if (this.typeNumber < 1) {\n      let t = 1;\n      for (t = 1; t < 40; t++) {\n        const e = ge.getRSBlocks(\n          t,\n          this.errorCorrectLevel\n        ), s = new pa();\n        let i = 0;\n        for (let r = 0; r < e.length; r++)\n          i += e[r].dataCount;\n        for (let r = 0; r < this.dataList.length; r++) {\n          const o = this.dataList[r];\n          s.put(o.mode, 4), s.put(\n            o.getLength(),\n            K.getLengthInBits(o.mode, t)\n          ), o.write(s);\n        }\n        if (s.getLengthInBits() <= i * 8)\n          break;\n      }\n      this.typeNumber = t;\n    }\n    this.makeImpl(!1, this.getBestMaskPattern());\n  }\n  makeImpl(t, e) {\n    this.moduleCount = this.typeNumber * 4 + 17, this.modules = new Array(this.moduleCount);\n    for (let s = 0; s < this.moduleCount; s++) {\n      this.modules[s] = new Array(this.moduleCount);\n      for (let i = 0; i < this.moduleCount; i++)\n        this.modules[s][i] = null;\n    }\n    this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(t, e), this.typeNumber >= 7 && this.setupTypeNumber(t), this.dataCache == null && (this.dataCache = Ue.createData(\n      this.typeNumber,\n      this.errorCorrectLevel,\n      this.dataList\n    )), this.mapData(this.dataCache, e);\n  }\n  setupPositionProbePattern(t, e) {\n    for (let s = -1; s <= 7; s++)\n      if (!(t + s <= -1 || this.moduleCount <= t + s))\n        for (let i = -1; i <= 7; i++)\n          e + i <= -1 || this.moduleCount <= e + i || (0 <= s && s <= 6 && (i == 0 || i == 6) || 0 <= i && i <= 6 && (s == 0 || s == 6) || 2 <= s && s <= 4 && 2 <= i && i <= 4 ? this.modules[t + s][e + i] = !0 : this.modules[t + s][e + i] = !1);\n  }\n  getBestMaskPattern() {\n    let t = 0, e = 0;\n    for (let s = 0; s < 8; s++) {\n      this.makeImpl(!0, s);\n      const i = K.getLostPoint(this);\n      (s == 0 || t > i) && (t = i, e = s);\n    }\n    return e;\n  }\n  createMovieClip(t, e, s) {\n    const i = t.createEmptyMovieClip(e, s), r = 1;\n    this.make();\n    for (let o = 0; o < this.modules.length; o++) {\n      const a = o * r;\n      for (let h = 0; h < this.modules[o].length; h++) {\n        const c = h * r;\n        this.modules[o][h] && (i.beginFill(0, 100), i.moveTo(c, a), i.lineTo(c + r, a), i.lineTo(c + r, a + r), i.lineTo(c, a + r), i.endFill());\n      }\n    }\n    return i;\n  }\n  setupTimingPattern() {\n    for (let t = 8; t < this.moduleCount - 8; t++)\n      this.modules[t][6] == null && (this.modules[t][6] = t % 2 == 0);\n    for (let t = 8; t < this.moduleCount - 8; t++)\n      this.modules[6][t] == null && (this.modules[6][t] = t % 2 == 0);\n  }\n  setupPositionAdjustPattern() {\n    const t = K.getPatternPosition(this.typeNumber);\n    for (let e = 0; e < t.length; e++)\n      for (let s = 0; s < t.length; s++) {\n        const i = t[e], r = t[s];\n        if (this.modules[i][r] == null)\n          for (let o = -2; o <= 2; o++)\n            for (let a = -2; a <= 2; a++)\n              o == -2 || o == 2 || a == -2 || a == 2 || o == 0 && a == 0 ? this.modules[i + o][r + a] = !0 : this.modules[i + o][r + a] = !1;\n      }\n  }\n  setupTypeNumber(t) {\n    const e = K.getBCHTypeNumber(this.typeNumber);\n    for (let s = 0; s < 18; s++) {\n      const i = !t && (e >> s & 1) == 1;\n      this.modules[Math.floor(s / 3)][s % 3 + this.moduleCount - 8 - 3] = i;\n    }\n    for (let s = 0; s < 18; s++) {\n      const i = !t && (e >> s & 1) == 1;\n      this.modules[s % 3 + this.moduleCount - 8 - 3][Math.floor(s / 3)] = i;\n    }\n  }\n  setupTypeInfo(t, e) {\n    const s = this.errorCorrectLevel << 3 | e, i = K.getBCHTypeInfo(s);\n    for (let r = 0; r < 15; r++) {\n      const o = !t && (i >> r & 1) == 1;\n      r < 6 ? this.modules[r][8] = o : r < 8 ? this.modules[r + 1][8] = o : this.modules[this.moduleCount - 15 + r][8] = o;\n    }\n    for (let r = 0; r < 15; r++) {\n      const o = !t && (i >> r & 1) == 1;\n      r < 8 ? this.modules[8][this.moduleCount - r - 1] = o : r < 9 ? this.modules[8][15 - r - 1 + 1] = o : this.modules[8][15 - r - 1] = o;\n    }\n    this.modules[this.moduleCount - 8][8] = !t;\n  }\n  mapData(t, e) {\n    let s = -1, i = this.moduleCount - 1, r = 7, o = 0;\n    for (let a = this.moduleCount - 1; a > 0; a -= 2)\n      for (a == 6 && a--; ; ) {\n        for (let h = 0; h < 2; h++)\n          if (this.modules[i][a - h] == null) {\n            let c = !1;\n            o < t.length && (c = (t[o] >>> r & 1) == 1), K.getMask(e, i, a - h) && (c = !c), this.modules[i][a - h] = c, r--, r == -1 && (o++, r = 7);\n          }\n        if (i += s, i < 0 || this.moduleCount <= i) {\n          i -= s, s = -s;\n          break;\n        }\n      }\n  }\n  static createData(t, e, s) {\n    const i = ge.getRSBlocks(t, e), r = new pa();\n    for (let a = 0; a < s.length; a++) {\n      const h = s[a];\n      r.put(h.mode, 4), r.put(\n        h.getLength(),\n        K.getLengthInBits(h.mode, t)\n      ), h.write(r);\n    }\n    let o = 0;\n    for (let a = 0; a < i.length; a++)\n      o += i[a].dataCount;\n    if (r.getLengthInBits() > o * 8)\n      throw new Error(\n        \"code length overflow. (\" + r.getLengthInBits() + \">\" + o * 8 + \")\"\n      );\n    for (r.getLengthInBits() + 4 <= o * 8 && r.put(0, 4); r.getLengthInBits() % 8 != 0; )\n      r.putBit(!1);\n    for (; !(r.getLengthInBits() >= o * 8 || (r.put(Ue.PAD0, 8), r.getLengthInBits() >= o * 8)); )\n      r.put(Ue.PAD1, 8);\n    return Ue.createBytes(r, i);\n  }\n  static createBytes(t, e) {\n    let s = 0, i = 0, r = 0;\n    const o = new Array(e.length), a = new Array(e.length);\n    for (let u = 0; u < e.length; u++) {\n      const d = e[u].dataCount, f = e[u].totalCount - d;\n      i = Math.max(i, d), r = Math.max(r, f), o[u] = new Array(d);\n      for (let g = 0; g < o[u].length; g++)\n        o[u][g] = 255 & t.buffer[g + s];\n      s += d;\n      const m = K.getErrorCorrectPolynomial(f), S = new fs(o[u], m.getLength() - 1).mod(m);\n      a[u] = new Array(m.getLength() - 1);\n      for (let g = 0; g < a[u].length; g++) {\n        const b = g + S.getLength() - a[u].length;\n        a[u][g] = b >= 0 ? S.get(b) : 0;\n      }\n    }\n    let h = 0;\n    for (let u = 0; u < e.length; u++)\n      h += e[u].totalCount;\n    const c = new Array(h);\n    let l = 0;\n    for (let u = 0; u < i; u++)\n      for (let d = 0; d < e.length; d++)\n        u < o[d].length && (c[l++] = o[d][u]);\n    for (let u = 0; u < r; u++)\n      for (let d = 0; d < e.length; d++)\n        u < a[d].length && (c[l++] = a[d][u]);\n    return c;\n  }\n}\nconst ga = Math.ceil, zs = Math.floor, ya = Math.round;\nfunction Jy(n, t) {\n  const e = Qa(n), s = t?.ecc || \"H\", i = t?.size || 256, r = -1, o = t?.padding || 0, a = t?.color || \"#000000\", h = t?.background || \"#ffffff\", c = new Ue(r, s);\n  c.addData(e), c.make();\n  const l = c.getModuleCount(), u = (i - o * 2) / l, d = o, f = i - o;\n  return n0(i, a, h, function(m, p) {\n    if (d <= m && m < f && d <= p && p < f) {\n      const S = zs((m - d) / u), g = zs((p - d) / u);\n      return c.isDark(g, S) ? 0 : 1;\n    } else\n      return 1;\n  });\n}\nfunction Ky(n, t) {\n  const e = t.x || 0, s = t.y || 0, i = Qa(n), r = t.ctx, o = t.ecc || \"H\", a = typeof t.size == \"number\" ? zs(t.size) : 256, h = t.padding || 0, c = -1, l = t.color || \"#000000\", u = t.background || \"#ffffff\", d = new Ue(c, o);\n  d.addData(i), d.make();\n  const f = d.getModuleCount(), m = (a - h * 2) / f;\n  r.fillStyle = u, r.fillRect(e, s, a, a);\n  for (let p = 0; p < f; p++)\n    for (let S = 0; S < f; S++) {\n      const g = ga((S + 1) * m) - zs(S * m), b = ga((p + 1) * m) - zs(p * m);\n      r.fillStyle = d.isDark(p, S) ? l : u, r.fillRect(\n        e + ya(S * m) + h,\n        s + ya(p * m) + h,\n        g,\n        b\n      );\n    }\n}\nfunction q(n) {\n  return n * Math.PI / 180;\n}\nfunction wt(n) {\n  return n * 180 / Math.PI;\n}\nfunction $s(n, t, e = 0) {\n  return Math.sqrt(n * n + t * t + e * e);\n}\nfunction Ge(n, t, e, s) {\n  return $s(e - n, s - t);\n}\nfunction qt(n, t, e, s) {\n  let i = Math.atan2(s - t, e - n);\n  return i < 0 && (i += Math.PI * 2), i;\n}\nfunction He(n, t) {\n  return {\n    dx: Math.cos(n) * t,\n    dy: Math.sin(n) * t\n  };\n}\nfunction Qy(n, t, e) {\n  if (typeof e == \"number\") {\n    const s = $s(n, t, e);\n    return {\n      x: n /= s,\n      y: t /= s,\n      z: e /= s\n    };\n  } else {\n    const s = $s(n, t);\n    return {\n      x: n /= s,\n      y: t /= s\n    };\n  }\n}\nfunction t1(n, t, e, s, i = 10) {\n  if (Math.abs(e - n) < i && Math.abs(s - t) < i)\n    return \"no\";\n  const r = wt(qt(n, t, e, s));\n  return r >= -135 && r <= -45 ? \"up\" : r > 45 && r < 135 ? \"down\" : r >= 135 && r <= 180 || r >= -180 && r < -135 ? \"left\" : \"right\";\n}\nclass no {\n  // x, y, z 表示旋转轴的方向\n  _x;\n  _y;\n  _z;\n  // w 表示旋转角度的余弦值（实际上是 cos(θ/2)）\n  _w;\n  constructor(t = 0, e = 0, s = 0, i = 1) {\n    this._x = t, this._y = e, this._z = s, this._w = i;\n  }\n  static slerpFlat(t, e, s, i, r, o, a) {\n    let h = s[i + 0], c = s[i + 1], l = s[i + 2], u = s[i + 3];\n    const d = r[o + 0], f = r[o + 1], m = r[o + 2], p = r[o + 3];\n    if (a === 0) {\n      t[e + 0] = h, t[e + 1] = c, t[e + 2] = l, t[e + 3] = u;\n      return;\n    }\n    if (a === 1) {\n      t[e + 0] = d, t[e + 1] = f, t[e + 2] = m, t[e + 3] = p;\n      return;\n    }\n    if (u !== p || h !== d || c !== f || l !== m) {\n      let S = 1 - a;\n      const g = h * d + c * f + l * m + u * p, b = g >= 0 ? 1 : -1, x = 1 - g * g;\n      if (x > Number.EPSILON) {\n        const C = Math.sqrt(x), _ = Math.atan2(C, g * b);\n        S = Math.sin(S * _) / C, a = Math.sin(a * _) / C;\n      }\n      const w = a * b;\n      if (h = h * S + d * w, c = c * S + f * w, l = l * S + m * w, u = u * S + p * w, S === 1 - a) {\n        const C = 1 / Math.sqrt(h * h + c * c + l * l + u * u);\n        h *= C, c *= C, l *= C, u *= C;\n      }\n    }\n    t[e] = h, t[e + 1] = c, t[e + 2] = l, t[e + 3] = u;\n  }\n  static multiplyQuaternionsFlat(t, e, s, i, r, o) {\n    const a = s[i], h = s[i + 1], c = s[i + 2], l = s[i + 3], u = r[o], d = r[o + 1], f = r[o + 2], m = r[o + 3];\n    return t[e] = a * m + l * u + h * f - c * d, t[e + 1] = h * m + l * d + c * u - a * f, t[e + 2] = c * m + l * f + a * d - h * u, t[e + 3] = l * m - a * u - h * d - c * f, t;\n  }\n  get x() {\n    return this._x;\n  }\n  set x(t) {\n    this._x = t, this._onChangeCallback();\n  }\n  get y() {\n    return this._y;\n  }\n  set y(t) {\n    this._y = t, this._onChangeCallback();\n  }\n  get z() {\n    return this._z;\n  }\n  set z(t) {\n    this._z = t, this._onChangeCallback();\n  }\n  get w() {\n    return this._w;\n  }\n  set w(t) {\n    this._w = t, this._onChangeCallback();\n  }\n  set(t = this._x, e = this._y, s = this._z, i = this._w) {\n    return this._x = t, this._y = e, this._z = s, this._w = i, this._onChangeCallback(), this;\n  }\n  clone() {\n    return new no(this._x, this._y, this._z, this._w);\n  }\n  copy(t) {\n    return this._x = t.x, this._y = t.y, this._z = t.z, this._w = t.w, this._onChangeCallback(), this;\n  }\n  setFromEuler(t, e = !0) {\n    const s = t.x, i = t.y, r = t.z, o = t.order, a = Math.cos, h = Math.sin, c = a(s / 2), l = a(i / 2), u = a(r / 2), d = h(s / 2), f = h(i / 2), m = h(r / 2);\n    switch (o) {\n      case \"XYZ\":\n        this._x = d * l * u + c * f * m, this._y = c * f * u - d * l * m, this._z = c * l * m + d * f * u, this._w = c * l * u - d * f * m;\n        break;\n      case \"YXZ\":\n        this._x = d * l * u + c * f * m, this._y = c * f * u - d * l * m, this._z = c * l * m - d * f * u, this._w = c * l * u + d * f * m;\n        break;\n      case \"ZXY\":\n        this._x = d * l * u - c * f * m, this._y = c * f * u + d * l * m, this._z = c * l * m + d * f * u, this._w = c * l * u - d * f * m;\n        break;\n      case \"ZYX\":\n        this._x = d * l * u - c * f * m, this._y = c * f * u + d * l * m, this._z = c * l * m - d * f * u, this._w = c * l * u + d * f * m;\n        break;\n      case \"YZX\":\n        this._x = d * l * u + c * f * m, this._y = c * f * u + d * l * m, this._z = c * l * m - d * f * u, this._w = c * l * u - d * f * m;\n        break;\n      case \"XZY\":\n        this._x = d * l * u - c * f * m, this._y = c * f * u - d * l * m, this._z = c * l * m + d * f * u, this._w = c * l * u + d * f * m;\n        break;\n      default:\n        console.warn(\n          \"Quaternion: .setFromEuler() encountered an unknown order: \" + o\n        );\n    }\n    return e === !0 && this._onChangeCallback(), this;\n  }\n  setFromAxisAngle(t, e) {\n    const s = e / 2, i = Math.sin(s);\n    return this._x = t.x * i, this._y = t.y * i, this._z = t.z * i, this._w = Math.cos(s), this._onChangeCallback(), this;\n  }\n  setFromRotationMatrix4(t) {\n    const e = t.value, s = e[0], i = e[4], r = e[8], o = e[1], a = e[5], h = e[9], c = e[2], l = e[6], u = e[10], d = s + a + u;\n    if (d > 0) {\n      const f = 0.5 / Math.sqrt(d + 1);\n      this._w = 0.25 / f, this._x = (l - h) * f, this._y = (r - c) * f, this._z = (o - i) * f;\n    } else if (s > a && s > u) {\n      const f = 2 * Math.sqrt(1 + s - a - u);\n      this._w = (l - h) / f, this._x = 0.25 * f, this._y = (i + o) / f, this._z = (r + c) / f;\n    } else if (a > u) {\n      const f = 2 * Math.sqrt(1 + a - s - u);\n      this._w = (r - c) / f, this._x = (i + o) / f, this._y = 0.25 * f, this._z = (h + l) / f;\n    } else {\n      const f = 2 * Math.sqrt(1 + u - s - a);\n      this._w = (o - i) / f, this._x = (r + c) / f, this._y = (h + l) / f, this._z = 0.25 * f;\n    }\n    return this._onChangeCallback(), this;\n  }\n  setFromUnitVectors(t, e) {\n    let s = t.dot(e) + 1;\n    return s < Number.EPSILON ? (s = 0, Math.abs(t.x) > Math.abs(t.z) ? (this._x = -t.y, this._y = t.x, this._z = 0, this._w = s) : (this._x = 0, this._y = -t.z, this._z = t.y, this._w = s)) : (this._x = t.y * e.z - t.z * e.y, this._y = t.z * e.x - t.x * e.z, this._z = t.x * e.y - t.y * e.x, this._w = s), this.normalize();\n  }\n  angleTo(t) {\n    return 2 * Math.acos(Math.abs(N(this.dot(t), -1, 1)));\n  }\n  rotateTowards(t, e) {\n    const s = this.angleTo(t);\n    if (s === 0)\n      return this;\n    const i = Math.min(1, e / s);\n    return this.slerp(t, i), this;\n  }\n  identity() {\n    return this.set(0, 0, 0, 1);\n  }\n  invert() {\n    return this.conjugate();\n  }\n  conjugate() {\n    return this._x *= -1, this._y *= -1, this._z *= -1, this._onChangeCallback(), this;\n  }\n  dot(t) {\n    return this._x * t._x + this._y * t._y + this._z * t._z + this._w * t._w;\n  }\n  lengthSq() {\n    return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n  }\n  length() {\n    return Math.sqrt(\n      this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w\n    );\n  }\n  normalize() {\n    let t = this.length();\n    return t === 0 ? (this._x = 0, this._y = 0, this._z = 0, this._w = 1) : (t = 1 / t, this._x = this._x * t, this._y = this._y * t, this._z = this._z * t, this._w = this._w * t), this._onChangeCallback(), this;\n  }\n  multiply(t) {\n    return this.multiplyQuaternions(this, t);\n  }\n  premultiply(t) {\n    return this.multiplyQuaternions(t, this);\n  }\n  multiplyQuaternions(t, e) {\n    const s = t._x, i = t._y, r = t._z, o = t._w, a = e._x, h = e._y, c = e._z, l = e._w;\n    return this._x = s * l + o * a + i * c - r * h, this._y = i * l + o * h + r * a - s * c, this._z = r * l + o * c + s * h - i * a, this._w = o * l - s * a - i * h - r * c, this._onChangeCallback(), this;\n  }\n  // 插值 t: 0 ~ 1\n  slerp(t, e) {\n    if (e === 0)\n      return this;\n    if (e === 1)\n      return this.copy(t);\n    const s = this._x, i = this._y, r = this._z, o = this._w;\n    let a = o * t._w + s * t._x + i * t._y + r * t._z;\n    if (a < 0 ? (this._w = -t._w, this._x = -t._x, this._y = -t._y, this._z = -t._z, a = -a) : this.copy(t), a >= 1)\n      return this._w = o, this._x = s, this._y = i, this._z = r, this;\n    const h = 1 - a * a;\n    if (h <= Number.EPSILON) {\n      const f = 1 - e;\n      return this._w = f * o + e * this._w, this._x = f * s + e * this._x, this._y = f * i + e * this._y, this._z = f * r + e * this._z, this.normalize(), this;\n    }\n    const c = Math.sqrt(h), l = Math.atan2(c, a), u = Math.sin((1 - e) * l) / c, d = Math.sin(e * l) / c;\n    return this._w = o * u + this._w * d, this._x = s * u + this._x * d, this._y = i * u + this._y * d, this._z = r * u + this._z * d, this._onChangeCallback(), this;\n  }\n  slerpQuaternions(t, e, s) {\n    return this.copy(t).slerp(e, s);\n  }\n  random() {\n    const t = 2 * Math.PI * Math.random(), e = 2 * Math.PI * Math.random(), s = Math.random(), i = Math.sqrt(1 - s), r = Math.sqrt(s);\n    return this.set(\n      i * Math.sin(t),\n      i * Math.cos(t),\n      r * Math.sin(e),\n      r * Math.cos(e)\n    );\n  }\n  equals(t) {\n    return t._x === this._x && t._y === this._y && t._z === this._z && t._w === this._w;\n  }\n  fromArray(t, e = 0) {\n    return this._x = t[e], this._y = t[e + 1], this._z = t[e + 2], this._w = t[e + 3], this._onChangeCallback(), this;\n  }\n  toArray(t = [], e = 0) {\n    return t[e] = this._x, t[e + 1] = this._y, t[e + 2] = this._z, t[e + 3] = this._w, t;\n  }\n  fromBufferAttribute(t, e) {\n    return this._x = t.getX(e), this._y = t.getY(e), this._z = t.getZ(e), this._w = t.getW(e), this._onChangeCallback(), this;\n  }\n  toJSON() {\n    return this.toArray();\n  }\n  onChange(t) {\n    return this._onChangeCallback = t, this;\n  }\n  _onChangeCallback() {\n  }\n  *[Symbol.iterator]() {\n    yield this._x, yield this._y, yield this._z, yield this._w;\n  }\n}\nclass ui {\n  x = 0;\n  y = 0;\n  constructor(t = 0, e = 0) {\n    this.x = t, this.y = e;\n  }\n  get width() {\n    return this.x;\n  }\n  set width(t) {\n    this.x = t;\n  }\n  get height() {\n    return this.y;\n  }\n  set height(t) {\n    this.y = t;\n  }\n  set(t = 0, e = 0) {\n    return this.x = t, this.y = e, this;\n  }\n  setScalar(t) {\n    return this.x = t, this.y = t, this;\n  }\n  setX(t) {\n    return this.x = t, this;\n  }\n  setY(t) {\n    return this.y = t, this;\n  }\n  setComponent(t, e) {\n    switch (t) {\n      case 0:\n        this.x = e;\n        break;\n      case 1:\n        this.y = e;\n        break;\n      default:\n        throw new Error(\"index is out of range: \" + t);\n    }\n    return this;\n  }\n  getComponent(t) {\n    switch (t) {\n      case 0:\n        return this.x;\n      case 1:\n        return this.y;\n      default:\n        throw new Error(\"index is out of range: \" + t);\n    }\n  }\n  copy(t) {\n    return this.x = t.x, this.y = t.y, this;\n  }\n  clone() {\n    return new ui(this.x, this.y);\n  }\n  /// 交换律：  P + Q = Q + P\n  /// 结合律：  (P + Q) + R =  P + (Q + R)\n  /// 分配率：  a(P + Q) = aP + aQ\n  add(t) {\n    return this.x += t.x, this.y += t.y, this;\n  }\n  addScalar(t) {\n    return this.x += t, this.y += t, this;\n  }\n  addVectors(t, e) {\n    return this.x = t.x + e.x, this.y = t.y + e.y, this;\n  }\n  addScaledVector(t, e) {\n    return this.x += t.x * e, this.y += t.y * e, this;\n  }\n  /// P.sub(Q) = 从 Q的终点 到 P的终点\n  sub(t) {\n    return this.x -= t.x, this.y -= t.y, this;\n  }\n  subScalar(t) {\n    return this.x -= t, this.y -= t, this;\n  }\n  subVectors(t, e) {\n    return this.x = t.x - e.x, this.y = t.y - e.y, this;\n  }\n  /// 乘积\n  /// 交换律：  P * Q = Q * P\n  /// 结合律：  (ab)P = a(bP)\n  /// 分配率：  (a + b)P = aP + bP\n  multiply(t) {\n    return this.x *= t.x, this.y *= t.y, this;\n  }\n  multiplyScalar(t) {\n    return this.x *= t, this.y *= t, this;\n  }\n  divide(t) {\n    return this.x /= t.x, this.y /= t.y, this;\n  }\n  divideScalar(t) {\n    return this.multiplyScalar(1 / t);\n  }\n  applyMatrix3(t) {\n    const e = this.x, s = this.y;\n    return this.x = t.m11 * e + t.m21 * s + t.m31, this.y = t.m12 * e + t.m22 * s + t.m32, this;\n  }\n  min(t) {\n    return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this;\n  }\n  max(t) {\n    return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this;\n  }\n  clamp(t, e) {\n    return this.x = N(this.x, t.x, e.x), this.y = N(this.y, t.y, e.y), this;\n  }\n  clampScalar(t, e) {\n    return this.x = N(this.x, t, e), this.y = N(this.y, t, e), this;\n  }\n  clampLength(t, e) {\n    const s = this.length();\n    return this.divideScalar(s || 1).multiplyScalar(\n      N(s, t, e)\n    );\n  }\n  floor() {\n    return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this;\n  }\n  ceil() {\n    return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this;\n  }\n  round() {\n    return this.x = Math.round(this.x), this.y = Math.round(this.y), this;\n  }\n  roundToZero() {\n    return this.x = Math.trunc(this.x), this.y = Math.trunc(this.y), this;\n  }\n  negate() {\n    return this.x = -this.x, this.y = -this.y, this;\n  }\n  /// 点积、数量积、内积\n  /// 点积的正负号说明2个向量指向同一方向的接近程度\n  /// P.Q = 0  =>  向量P 和 向量Q 互相垂直  =>  向量P 和 向量Q 线性无关\n  /// P.Q = |P| * |Q| * cos(从Q到P的角度差)\n  /// P.Q = Q.P\n  /// (aP).Q = a(Q.P)\n  /// P.(Q + R) = P.Q + P.R\n  /// P.P = |P| * |P|\n  /// |P.Q| <= |P| * |Q|\n  dot(t) {\n    return this.x * t.x + this.y * t.y;\n  }\n  /// 叉积、向量积  =>  新向量垂直于原来两个向量\n  /// 三维向量独有\n  /// 叉积遵循右手法则：右手4指指向 向量P 的方向，手掌掌内指向 向量Q 的方向，则大拇指所指方向就是 叉积 P x Q 的方向\n  /// (P x Q).P = (P x Q).Q = 0\n  /// |P x Q| = |P| * |Q| * sin(从Q到P的角度差) = 向量P 和 向量Q 组成的平行四边形的面积\n  /// 假设 单位向量i<1,0,0> 指向 x轴正方向，单位向量j<0,1,0> 指向 y轴正方向，单位向量k<0,0,1> 指向 z轴正方向\n  /// 且 i 在 j 之前，j 在 k 之前，k 在 i 之前\n  /// 则\n  /// i x j = k\n  /// j x k = i\n  /// k x i = j\n  /// j x i = -k\n  /// k x j = -i\n  /// i x k = -j\n  /// Q x P = -(P x Q)\n  // (aP) x Q = a(P x Q)\n  /// P x (Q + R) = P x Q + P x R\n  /// P x P - O = <0,0,0>\n  /// (P x Q).R = (R x P).Q = (Q x R).P\n  /// P x (Q x R) = P x Q x R = |P| * |P| * Q - (P.Q)P\n  cross(t) {\n    return this.x * t.y - this.y * t.x;\n  }\n  /// 投影到 v 的向量\n  projectOnVector(t) {\n    const e = t.lengthSq();\n    if (e === 0)\n      return this.set(0, 0);\n    const s = t.dot(this) / e;\n    return this.copy(t).multiplyScalar(s);\n  }\n  /// 相对于 v 的垂直分量\n  perpendOnVector(t) {\n    return xa.copy(this).projectOnVector(t), this.sub(xa);\n  }\n  /// 模、范数、长度\n  /// |P| >= 0\n  /// |aP| = |a| * |P|\n  /// |P + Q| <= |P| + |Q|\n  length() {\n    return Math.sqrt(this.x * this.x + this.y * this.y);\n  }\n  lengthSq() {\n    return this.x * this.x + this.y * this.y;\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y);\n  }\n  /// 规格化\n  normalize() {\n    return this.divideScalar(this.length() || 1);\n  }\n  // computes the angle in radians with respect to the positive x-axis\n  angle() {\n    return Math.atan2(-this.y, -this.x) + Math.PI;\n  }\n  angleTo(t) {\n    const e = Math.sqrt(this.lengthSq() * t.lengthSq());\n    if (e === 0)\n      return Math.PI / 2;\n    const s = this.dot(t) / e;\n    return Math.acos(N(s, -1, 1));\n  }\n  distanceTo(t) {\n    return Math.sqrt(this.distanceToSquared(t));\n  }\n  distanceToSquared(t) {\n    const e = this.x - t.x, s = this.y - t.y;\n    return e * e + s * s;\n  }\n  manhattanDistanceTo(t) {\n    return Math.abs(this.x - t.x) + Math.abs(this.y - t.y);\n  }\n  setLength(t) {\n    return this.normalize().multiplyScalar(t);\n  }\n  lerp(t, e) {\n    return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this;\n  }\n  lerpVectors(t, e, s) {\n    return this.x = t.x + (e.x - t.x) * s, this.y = t.y + (e.y - t.y) * s, this;\n  }\n  equals(t) {\n    return t.x === this.x && t.y === this.y;\n  }\n  fromArray(t, e = 0) {\n    return this.x = t[e], this.y = t[e + 1], this;\n  }\n  toArray(t = [], e = 0) {\n    return t[e] = this.x, t[e + 1] = this.y, t;\n  }\n  fromBufferAttribute(t, e) {\n    return this.x = t.getX(e), this.y = t.getY(e), this;\n  }\n  rotateAround(t, e) {\n    const s = Math.cos(e), i = Math.sin(e), r = this.x - t.x, o = this.y - t.y;\n    return this.x = r * s - o * i + t.x, this.y = r * i + o * s + t.y, this;\n  }\n  random() {\n    return this.x = Math.random(), this.y = Math.random(), this;\n  }\n  *[Symbol.iterator]() {\n    yield this.x, yield this.y;\n  }\n}\nclass jt {\n  x = 0;\n  y = 0;\n  z = 0;\n  constructor(t = 0, e = 0, s = 0) {\n    this.x = t, this.y = e, this.z = s;\n  }\n  set(t = 0, e = 0, s = 0) {\n    return this.x = t, this.y = e, this.z = s, this;\n  }\n  setScalar(t) {\n    return this.x = t, this.y = t, this.z = t, this;\n  }\n  setX(t) {\n    return this.x = t, this;\n  }\n  setY(t) {\n    return this.y = t, this;\n  }\n  setZ(t) {\n    return this.z = t, this;\n  }\n  setComponent(t, e) {\n    switch (t) {\n      case 0:\n        this.x = e;\n        break;\n      case 1:\n        this.y = e;\n        break;\n      case 2:\n        this.z = e;\n        break;\n      default:\n        throw new Error(\"index is out of range: \" + t);\n    }\n    return this;\n  }\n  getComponent(t) {\n    switch (t) {\n      case 0:\n        return this.x;\n      case 1:\n        return this.y;\n      case 2:\n        return this.z;\n      default:\n        throw new Error(\"index is out of range: \" + t);\n    }\n  }\n  clone() {\n    return new jt(this.x, this.y, this.z);\n  }\n  copy(t) {\n    return this.x = t.x, this.y = t.y, this.z = t.z, this;\n  }\n  add(t) {\n    return this.x += t.x, this.y += t.y, this.z += t.z, this;\n  }\n  addScalar(t) {\n    return this.x += t, this.y += t, this.z += t, this;\n  }\n  addVectors(t, e) {\n    return this.x = t.x + e.x, this.y = t.y + e.y, this.z = t.z + e.z, this;\n  }\n  addScaledVector(t, e) {\n    return this.x += t.x * e, this.y += t.y * e, this.z += t.z * e, this;\n  }\n  sub(t) {\n    return this.x -= t.x, this.y -= t.y, this.z -= t.z, this;\n  }\n  subScalar(t) {\n    return this.x -= t, this.y -= t, this.z -= t, this;\n  }\n  subVectors(t, e) {\n    return this.x = t.x - e.x, this.y = t.y - e.y, this.z = t.z - e.z, this;\n  }\n  multiply(t) {\n    return this.x *= t.x, this.y *= t.y, this.z *= t.z, this;\n  }\n  multiplyScalar(t) {\n    return this.x *= t, this.y *= t, this.z *= t, this;\n  }\n  multiplyVectors(t, e) {\n    return this.x = t.x * e.x, this.y = t.y * e.y, this.z = t.z * e.z, this;\n  }\n  applyEuler(t) {\n    return this.applyQuaternion(wa.setFromEuler(t));\n  }\n  applyAxisAngle(t, e) {\n    return this.applyQuaternion(wa.setFromAxisAngle(t, e));\n  }\n  applyMatrix3(t) {\n    const e = this.x, s = this.y, i = this.z, r = t.value;\n    return this.x = r[0] * e + r[3] * s + r[6] * i, this.y = r[1] * e + r[4] * s + r[7] * i, this.z = r[2] * e + r[5] * s + r[8] * i, this;\n  }\n  applyNormalMatrix(t) {\n    return this.applyMatrix3(t).normalize();\n  }\n  applyMatrix4(t) {\n    const e = this.x, s = this.y, i = this.z, r = t.value, o = 1 / (r[3] * e + r[7] * s + r[11] * i + r[15]);\n    return this.x = (r[0] * e + r[4] * s + r[8] * i + r[12]) * o, this.y = (r[1] * e + r[5] * s + r[9] * i + r[13]) * o, this.z = (r[2] * e + r[6] * s + r[10] * i + r[14]) * o, this;\n  }\n  applyQuaternion(t) {\n    const e = this.x, s = this.y, i = this.z, r = t.x, o = t.y, a = t.z, h = t.w, c = 2 * (o * i - a * s), l = 2 * (a * e - r * i), u = 2 * (r * s - o * e);\n    return this.x = e + h * c + o * u - a * l, this.y = s + h * l + a * c - r * u, this.z = i + h * u + r * l - o * c, this;\n  }\n  // project(camera) {\n  //   return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(\n  //     camera.projectionMatrix\n  //   );\n  // }\n  // unproject(camera) {\n  //   return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(\n  //     camera.matrixWorld\n  //   );\n  // }\n  transformDirection(t) {\n    const e = this.x, s = this.y, i = this.z, r = t.value;\n    return this.x = r[0] * e + r[4] * s + r[8] * i, this.y = r[1] * e + r[5] * s + r[9] * i, this.z = r[2] * e + r[6] * s + r[10] * i, this.normalize();\n  }\n  divide(t) {\n    return this.x /= t.x, this.y /= t.y, this.z /= t.z, this;\n  }\n  divideScalar(t) {\n    return this.multiplyScalar(1 / t);\n  }\n  min(t) {\n    return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this.z = Math.min(this.z, t.z), this;\n  }\n  max(t) {\n    return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this.z = Math.max(this.z, t.z), this;\n  }\n  clamp(t, e) {\n    return this.x = N(this.x, t.x, e.x), this.y = N(this.y, t.y, e.y), this.z = N(this.z, t.z, e.z), this;\n  }\n  clampScalar(t, e) {\n    return this.x = N(this.x, t, e), this.y = N(this.y, t, e), this.z = N(this.z, t, e), this;\n  }\n  clampLength(t, e) {\n    const s = this.length();\n    return this.divideScalar(s || 1).multiplyScalar(\n      N(s, t, e)\n    );\n  }\n  floor() {\n    return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.z = Math.floor(this.z), this;\n  }\n  ceil() {\n    return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.z = Math.ceil(this.z), this;\n  }\n  round() {\n    return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z), this;\n  }\n  roundToZero() {\n    return this.x = Math.trunc(this.x), this.y = Math.trunc(this.y), this.z = Math.trunc(this.z), this;\n  }\n  negate() {\n    return this.x = -this.x, this.y = -this.y, this.z = -this.z, this;\n  }\n  dot(t) {\n    return this.x * t.x + this.y * t.y + this.z * t.z;\n  }\n  lengthSq() {\n    return this.x * this.x + this.y * this.y + this.z * this.z;\n  }\n  length() {\n    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n  }\n  normalize() {\n    return this.divideScalar(this.length() || 1);\n  }\n  setLength(t) {\n    return this.normalize().multiplyScalar(t);\n  }\n  lerp(t, e) {\n    return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this.z += (t.z - this.z) * e, this;\n  }\n  lerpVectors(t, e, s) {\n    return this.x = t.x + (e.x - t.x) * s, this.y = t.y + (e.y - t.y) * s, this.z = t.z + (e.z - t.z) * s, this;\n  }\n  cross(t) {\n    return this.crossVectors(this, t);\n  }\n  crossVectors(t, e) {\n    const s = t.x, i = t.y, r = t.z, o = e.x, a = e.y, h = e.z;\n    return this.x = i * h - r * a, this.y = r * o - s * h, this.z = s * a - i * o, this;\n  }\n  /// 投影到 v 的向量\n  projectOnVector(t) {\n    const e = t.lengthSq();\n    if (e === 0)\n      return this.set(0, 0, 0);\n    const s = t.dot(this) / e;\n    return this.copy(t).multiplyScalar(s);\n  }\n  /// 相对于 v 的垂直分量\n  perpendOnVector(t) {\n    return Oi.copy(this).projectOnVector(t), this.sub(Oi);\n  }\n  projectOnPlane(t) {\n    return this.perpendOnVector(t);\n  }\n  reflect(t) {\n    return this.sub(Oi.copy(t).multiplyScalar(2 * this.dot(t)));\n  }\n  angleTo(t) {\n    const e = Math.sqrt(this.lengthSq() * t.lengthSq());\n    if (e === 0)\n      return Math.PI / 2;\n    const s = this.dot(t) / e;\n    return Math.acos(N(s, -1, 1));\n  }\n  distanceTo(t) {\n    return Math.sqrt(this.distanceToSquared(t));\n  }\n  distanceToSquared(t) {\n    const e = this.x - t.x, s = this.y - t.y, i = this.z - t.z;\n    return e * e + s * s + i * i;\n  }\n  manhattanDistanceTo(t) {\n    return Math.abs(this.x - t.x) + Math.abs(this.y - t.y) + Math.abs(this.z - t.z);\n  }\n  // setFromSpherical(s) {\n  //   return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\n  // }\n  // setFromSphericalCoords(radius, phi, theta) {\n  //   const sinPhiRadius = Math.sin(phi) * radius;\n  //   this.x = sinPhiRadius * Math.sin(theta);\n  //   this.y = Math.cos(phi) * radius;\n  //   this.z = sinPhiRadius * Math.cos(theta);\n  //   return this;\n  // }\n  // setFromCylindrical(c) {\n  //   return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\n  // }\n  // setFromCylindricalCoords(radius, theta, y) {\n  //   this.x = radius * Math.sin(theta);\n  //   this.y = y;\n  //   this.z = radius * Math.cos(theta);\n  //   return this;\n  // }\n  setFromMatrix4Position(t) {\n    const e = t.value;\n    return this.x = e[12], this.y = e[13], this.z = e[14], this;\n  }\n  setFromMatrix4Scale(t) {\n    const e = this.setFromMatrix4Column(t, 0).length(), s = this.setFromMatrix4Column(t, 1).length(), i = this.setFromMatrix4Column(t, 2).length();\n    return this.x = e, this.y = s, this.z = i, this;\n  }\n  setFromMatrix4Column(t, e) {\n    return this.fromArray(t.value, e * 4);\n  }\n  setFromMatrix3Column(t, e) {\n    return this.fromArray(t.value, e * 3);\n  }\n  setFromEuler(t) {\n    return this.x = t.x, this.y = t.y, this.z = t.z, this;\n  }\n  // setFromColor(c) {\n  //   this.x = c.r;\n  //   this.y = c.g;\n  //   this.z = c.b;\n  //   return this;\n  // }\n  equals(t) {\n    return t.x === this.x && t.y === this.y && t.z === this.z;\n  }\n  fromArray(t, e = 0) {\n    return this.x = t[e], this.y = t[e + 1], this.z = t[e + 2], this;\n  }\n  toArray(t = [], e = 0) {\n    return t[e] = this.x, t[e + 1] = this.y, t[e + 2] = this.z, t;\n  }\n  fromBufferAttribute(t, e) {\n    return this.x = t.getX(e), this.y = t.getY(e), this.z = t.getZ(e), this;\n  }\n  random() {\n    return this.x = Math.random(), this.y = Math.random(), this.z = Math.random(), this;\n  }\n  randomDirection() {\n    const t = Math.random() * Math.PI * 2, e = Math.random() * 2 - 1, s = Math.sqrt(1 - e * e);\n    return this.x = s * Math.cos(t), this.y = e, this.z = s * Math.sin(t), this;\n  }\n  *[Symbol.iterator]() {\n    yield this.x, yield this.y, yield this.z;\n  }\n}\nclass Rc {\n  x = 0;\n  y = 0;\n  z = 0;\n  w = 1;\n  constructor(t = 0, e = 0, s = 0, i = 1) {\n    this.x = t, this.y = e, this.z = s, this.w = i;\n  }\n  get width() {\n    return this.z;\n  }\n  set width(t) {\n    this.z = t;\n  }\n  get height() {\n    return this.w;\n  }\n  set height(t) {\n    this.w = t;\n  }\n  set(t = 0, e = 0, s = 0, i = 1) {\n    return this.x = t, this.y = e, this.z = s, this.w = i, this;\n  }\n  setScalar(t) {\n    return this.x = t, this.y = t, this.z = t, this.w = t, this;\n  }\n  setX(t) {\n    return this.x = t, this;\n  }\n  setY(t) {\n    return this.y = t, this;\n  }\n  setZ(t) {\n    return this.z = t, this;\n  }\n  setW(t) {\n    return this.w = t, this;\n  }\n  setComponent(t, e) {\n    switch (t) {\n      case 0:\n        this.x = e;\n        break;\n      case 1:\n        this.y = e;\n        break;\n      case 2:\n        this.z = e;\n        break;\n      case 3:\n        this.w = e;\n        break;\n      default:\n        throw new Error(\"index is out of range: \" + t);\n    }\n    return this;\n  }\n  getComponent(t) {\n    switch (t) {\n      case 0:\n        return this.x;\n      case 1:\n        return this.y;\n      case 2:\n        return this.z;\n      case 3:\n        return this.w;\n      default:\n        throw new Error(\"index is out of range: \" + t);\n    }\n  }\n  clone() {\n    return new Rc(this.x, this.y, this.z, this.w);\n  }\n  copy(t) {\n    return this.x = t.x, this.y = t.y, this.z = t.z, this.w = t.w, this;\n  }\n  add(t) {\n    return this.x += t.x, this.y += t.y, this.z += t.z, this.w += t.w, this;\n  }\n  addScalar(t) {\n    return this.x += t, this.y += t, this.z += t, this.w += t, this;\n  }\n  addVectors(t, e) {\n    return this.x = t.x + e.x, this.y = t.y + e.y, this.z = t.z + e.z, this.w = t.w + e.w, this;\n  }\n  addScaledVector(t, e) {\n    return this.x += t.x * e, this.y += t.y * e, this.z += t.z * e, this.w += t.w * e, this;\n  }\n  sub(t) {\n    return this.x -= t.x, this.y -= t.y, this.z -= t.z, this.w -= t.w, this;\n  }\n  subScalar(t) {\n    return this.x -= t, this.y -= t, this.z -= t, this.w -= t, this;\n  }\n  subVectors(t, e) {\n    return this.x = t.x - e.x, this.y = t.y - e.y, this.z = t.z - e.z, this.w = t.w - e.w, this;\n  }\n  multiply(t) {\n    return this.x *= t.x, this.y *= t.y, this.z *= t.z, this.w *= t.w, this;\n  }\n  multiplyScalar(t) {\n    return this.x *= t, this.y *= t, this.z *= t, this.w *= t, this;\n  }\n  applyMatrix4(t) {\n    const e = this.x, s = this.y, i = this.z, r = this.w, o = t.value;\n    return this.x = o[0] * e + o[4] * s + o[8] * i + o[12] * r, this.y = o[1] * e + o[5] * s + o[9] * i + o[13] * r, this.z = o[2] * e + o[6] * s + o[10] * i + o[14] * r, this.w = o[3] * e + o[7] * s + o[11] * i + o[15] * r, this;\n  }\n  divide(t) {\n    return this.x /= t.x, this.y /= t.y, this.z /= t.z, this.w /= t.w, this;\n  }\n  divideScalar(t) {\n    return this.multiplyScalar(1 / t);\n  }\n  setAxisAngleFromQuaternion(t) {\n    this.w = 2 * Math.acos(t.w);\n    const e = Math.sqrt(1 - t.w * t.w);\n    return e < 1e-4 ? (this.x = 1, this.y = 0, this.z = 0) : (this.x = t.x / e, this.y = t.y / e, this.z = t.z / e), this;\n  }\n  setAxisAngleFromRotationMatrix4(t) {\n    let e, s, i, r;\n    const h = t.value, c = h[0], l = h[4], u = h[8], d = h[1], f = h[5], m = h[9], p = h[2], S = h[6], g = h[10];\n    if (Math.abs(l - d) < 0.01 && Math.abs(u - p) < 0.01 && Math.abs(m - S) < 0.01) {\n      if (Math.abs(l + d) < 0.1 && Math.abs(u + p) < 0.1 && Math.abs(m + S) < 0.1 && Math.abs(c + f + g - 3) < 0.1)\n        return this.set(1, 0, 0, 0), this;\n      e = Math.PI;\n      const x = (c + 1) / 2, w = (f + 1) / 2, C = (g + 1) / 2, _ = (l + d) / 4, D = (u + p) / 4, z = (m + S) / 4;\n      return x > w && x > C ? x < 0.01 ? (s = 0, i = 0.707106781, r = 0.707106781) : (s = Math.sqrt(x), i = _ / s, r = D / s) : w > C ? w < 0.01 ? (s = 0.707106781, i = 0, r = 0.707106781) : (i = Math.sqrt(w), s = _ / i, r = z / i) : C < 0.01 ? (s = 0.707106781, i = 0.707106781, r = 0) : (r = Math.sqrt(C), s = D / r, i = z / r), this.set(s, i, r, e), this;\n    }\n    let b = Math.sqrt(\n      (S - m) * (S - m) + (u - p) * (u - p) + (d - l) * (d - l)\n    );\n    return Math.abs(b) < 1e-3 && (b = 1), this.x = (S - m) / b, this.y = (u - p) / b, this.z = (d - l) / b, this.w = Math.acos((c + f + g - 1) / 2), this;\n  }\n  setFromMatrix4Position(t) {\n    const e = t.value;\n    return this.x = e[12], this.y = e[13], this.z = e[14], this.w = e[15], this;\n  }\n  min(t) {\n    return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this.z = Math.min(this.z, t.z), this.w = Math.min(this.w, t.w), this;\n  }\n  max(t) {\n    return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this.z = Math.max(this.z, t.z), this.w = Math.max(this.w, t.w), this;\n  }\n  clamp(t, e) {\n    return this.x = N(this.x, t.x, e.x), this.y = N(this.y, t.y, e.y), this.z = N(this.z, t.z, e.z), this.w = N(this.w, t.w, e.w), this;\n  }\n  clampScalar(t, e) {\n    return this.x = N(this.x, t, e), this.y = N(this.y, t, e), this.z = N(this.z, t, e), this.w = N(this.w, t, e), this;\n  }\n  clampLength(t, e) {\n    const s = this.length();\n    return this.divideScalar(s || 1).multiplyScalar(\n      N(s, t, e)\n    );\n  }\n  floor() {\n    return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.z = Math.floor(this.z), this.w = Math.floor(this.w), this;\n  }\n  ceil() {\n    return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.z = Math.ceil(this.z), this.w = Math.ceil(this.w), this;\n  }\n  round() {\n    return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z), this.w = Math.round(this.w), this;\n  }\n  roundToZero() {\n    return this.x = Math.trunc(this.x), this.y = Math.trunc(this.y), this.z = Math.trunc(this.z), this.w = Math.trunc(this.w), this;\n  }\n  negate() {\n    return this.x = -this.x, this.y = -this.y, this.z = -this.z, this.w = -this.w, this;\n  }\n  dot(t) {\n    return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w;\n  }\n  lengthSq() {\n    return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n  }\n  length() {\n    return Math.sqrt(\n      this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w\n    );\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);\n  }\n  normalize() {\n    return this.divideScalar(this.length() || 1);\n  }\n  setLength(t) {\n    return this.normalize().multiplyScalar(t);\n  }\n  /// 投影到 v 的向量\n  projectOnVector(t) {\n    const e = t.lengthSq();\n    if (e === 0)\n      return this.set(0, 0, 0, 1);\n    const s = t.dot(this) / e;\n    return this.copy(t).multiplyScalar(s);\n  }\n  // /// 相对于 v 的垂直分量\n  // perpendOnVector(v: Vector4) {\n  //   _v4.copy(this).projectOnVector(v);\n  //   return this.sub(_v4);\n  // }\n  lerp(t, e) {\n    return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this.z += (t.z - this.z) * e, this.w += (t.w - this.w) * e, this;\n  }\n  lerpVectors(t, e, s) {\n    return this.x = t.x + (e.x - t.x) * s, this.y = t.y + (e.y - t.y) * s, this.z = t.z + (e.z - t.z) * s, this.w = t.w + (e.w - t.w) * s, this;\n  }\n  equals(t) {\n    return t.x === this.x && t.y === this.y && t.z === this.z && t.w === this.w;\n  }\n  fromArray(t, e = 0) {\n    return this.x = t[e], this.y = t[e + 1], this.z = t[e + 2], this.w = t[e + 3], this;\n  }\n  toArray(t = [], e = 0) {\n    return t[e] = this.x, t[e + 1] = this.y, t[e + 2] = this.z, t[e + 3] = this.w, t;\n  }\n  fromBufferAttribute(t, e) {\n    return this.x = t.getX(e), this.y = t.getY(e), this.z = t.getZ(e), this.w = t.getW(e), this;\n  }\n  random() {\n    return this.x = Math.random(), this.y = Math.random(), this.z = Math.random(), this.w = Math.random(), this;\n  }\n  *[Symbol.iterator]() {\n    yield this.x, yield this.y, yield this.z, yield this.w;\n  }\n}\nconst xa = new ui(), Oi = new jt(), wa = new no(), ba = r0(\n  \"50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro\",\n  32\n);\nfunction r0(n, t = 10) {\n  const e = {}, s = n.split(\",\");\n  for (let i = 0; i < s.length; i += 2) {\n    const r = \"&\" + s[i + 1] + \";\", o = parseInt(s[i], t);\n    e[r] = \"&#\" + o + \";\";\n  }\n  return e[\"\\\\xa0\"] = \"&#160;\", e;\n}\nfunction Pt(n, t) {\n  const e = Object.keys(t);\n  for (let s = 0; s < e.length; s++)\n    n = n.replace(\n      new RegExp(\"{\" + e[s] + \"}\", \"gi\"),\n      \"\" + t[e[s]]\n    );\n  return n;\n}\nfunction wn(n) {\n  let t, e;\n  if (!n)\n    throw new Error(\n      \"cannot create a random attribute name for an undefined object\"\n    );\n  const s = \"ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz\";\n  t = \"\";\n  do\n    for (t = \"\", e = 0; e < 12; e++)\n      t += s[Math.floor(Math.random() * s.length)];\n  while (n[t]);\n  return t;\n}\nfunction o0(n) {\n  const t = {\n    left: \"start\",\n    right: \"end\",\n    center: \"middle\",\n    start: \"start\",\n    end: \"end\"\n  };\n  return t[n] || t.start;\n}\nfunction a0(n) {\n  const t = {\n    alphabetic: \"alphabetic\",\n    hanging: \"hanging\",\n    top: \"text-before-edge\",\n    bottom: \"text-after-edge\",\n    middle: \"central\"\n  };\n  return t[n] || t.alphabetic;\n}\nconst _s = {\n  strokeStyle: {\n    svgAttr: \"stroke\",\n    canvas: \"#000000\",\n    svg: \"none\",\n    apply: \"stroke\"\n  },\n  fillStyle: {\n    svgAttr: \"fill\",\n    canvas: \"#000000\",\n    svg: null,\n    // svg default is black, but we need to special case this to handle canvas stroke without fill\n    apply: \"fill\"\n  },\n  lineCap: {\n    svgAttr: \"stroke-linecap\",\n    canvas: \"butt\",\n    svg: \"butt\",\n    apply: \"stroke\"\n  },\n  lineJoin: {\n    svgAttr: \"stroke-linejoin\",\n    canvas: \"miter\",\n    svg: \"miter\",\n    apply: \"stroke\"\n  },\n  miterLimit: {\n    svgAttr: \"stroke-miterlimit\",\n    canvas: 10,\n    svg: 4,\n    apply: \"stroke\"\n  },\n  lineWidth: {\n    svgAttr: \"stroke-width\",\n    canvas: 1,\n    svg: 1,\n    apply: \"stroke\"\n  },\n  globalAlpha: {\n    svgAttr: \"opacity\",\n    canvas: 1,\n    svg: 1,\n    apply: \"fill stroke\"\n  },\n  font: {\n    // font converts to multiple svg attributes, there is custom logic for this\n    canvas: \"10px sans-serif\"\n  },\n  shadowColor: {\n    canvas: \"#000000\"\n  },\n  shadowOffsetX: {\n    canvas: 0\n  },\n  shadowOffsetY: {\n    canvas: 0\n  },\n  shadowBlur: {\n    canvas: 0\n  },\n  textAlign: {\n    canvas: \"start\"\n  },\n  textBaseline: {\n    canvas: \"alphabetic\"\n  },\n  lineDash: {\n    svgAttr: \"stroke-dasharray\",\n    canvas: [],\n    svg: null,\n    apply: \"stroke\"\n  },\n  lineDashOffset: {\n    svgAttr: \"stroke-dashoffset\",\n    canvas: 0,\n    svg: 0,\n    apply: \"stroke\"\n  }\n};\nlet zi = class {\n  __root;\n  __ctx;\n  constructor(t, e) {\n    this.__root = t, this.__ctx = e;\n  }\n  /**\n   * Adds a color stop to the gradient root\n   */\n  addColorStop(t, e) {\n    const s = this.__ctx.__createElement(\"stop\");\n    if (s.setAttribute(\"offset\", \"\" + t), e.indexOf(\"rgba\") !== -1) {\n      const r = /rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d?\\.?\\d*)\\s*\\)/gi.exec(e);\n      r && (s.setAttribute(\n        \"stop-color\",\n        Pt(\"rgb({r},{g},{b})\", {\n          r: r[1],\n          g: r[2],\n          b: r[3]\n        })\n      ), s.setAttribute(\"stop-opacity\", r[4]));\n    } else\n      s.setAttribute(\"stop-color\", e);\n    this.__root.appendChild(s);\n  }\n}, va = class {\n  __root;\n  __ctx;\n  constructor(t, e) {\n    this.__root = t, this.__ctx = e;\n  }\n}, h0 = class dr {\n  __document = document;\n  __canvas;\n  __ctx;\n  width;\n  height;\n  __styleStack;\n  __groupStack;\n  __rootSVG;\n  __ids;\n  __SVGdefs;\n  __currentElement;\n  __currentElementsToStyle = null;\n  constructor({\n    canvas: t,\n    width: e = 500,\n    height: s = 500\n  }) {\n    t ? (this.__canvas = t, this.__ctx = t.getContext(\"2d\"), this.width = t.width, this.height = t.height) : (this.__canvas = this.__document.createElement(\"canvas\"), this.__ctx = this.__canvas.getContext(\"2d\"), this.width = e, this.height = s), this.__setDefaultStyles(), this.__styleStack = [this.__getStyleState()], this.__groupStack = [], this.__rootSVG = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"svg\"\n    ), this.__rootSVG.setAttribute(\"version\", \"1.1\"), this.__rootSVG.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\"), this.__rootSVG.setAttributeNS(\n      \"http://www.w3.org/2000/xmlns/\",\n      \"xmlns:xlink\",\n      \"http://www.w3.org/1999/xlink\"\n    ), this.__rootSVG.setAttribute(\"width\", \"\" + this.width), this.__rootSVG.setAttribute(\"height\", \"\" + this.height), this.__ids = {}, this.__SVGdefs = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"defs\"\n    ), this.__rootSVG.appendChild(this.__SVGdefs), this.__currentElement = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"g\"\n    ), this.__rootSVG.appendChild(this.__currentElement);\n  }\n  /**\n   * Applies default canvas styles to the context\n   */\n  __setDefaultStyles() {\n    const t = Object.keys(_s);\n    for (let e = 0, s = t.length; e < s; e++) {\n      const i = t[e];\n      this[i] = _s[i].canvas;\n    }\n  }\n  /**\n   * Gets the current style state\n   */\n  __getStyleState() {\n    const t = {}, e = Object.keys(_s);\n    for (let s = 0, i = e.length; s < i; s++) {\n      const r = e[s];\n      t[r] = this[r];\n    }\n    return t;\n  }\n  /**\n   * Applies styles on restore\n   */\n  __applyStyleState(t) {\n    const e = Object.keys(t);\n    for (let s = 0, i = e.length; s < i; s++) {\n      const r = e[s];\n      this[r] = t[r];\n    }\n  }\n  /**\n   * Creates the specified svg element\n   */\n  __createElement(t, e = {}, s = !1) {\n    const i = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      t\n    ), r = Object.keys(e);\n    s && (i.setAttribute(\"fill\", \"none\"), i.setAttribute(\"stroke\", \"none\"));\n    for (let o = 0; o < r.length; o++) {\n      const a = r[o];\n      i.setAttribute(a, e[a]);\n    }\n    return i;\n  }\n  /**\n   * Apples the current styles to the current SVG element. On \"CustomCanvasContext.fill\" or \"CustomCanvasContext.stroke\"\n   */\n  __applyStyleToCurrentElement(t) {\n    let e = this.__currentElement;\n    const s = this.__currentElementsToStyle;\n    s && (e.setAttribute(t, \"\"), e = s.element, s.children.forEach((r) => {\n      r.setAttribute(t, \"\");\n    }));\n    const i = Object.keys(_s);\n    for (let r = 0; r < i.length; r++) {\n      const o = _s[i[r]], a = this[i[r]];\n      if (o.apply) {\n        if (a instanceof va) {\n          if (a.__ctx)\n            for (; a.__ctx.__SVGdefs.childNodes.length; ) {\n              const h = a.__ctx.__SVGdefs.childNodes[0].getAttribute(\"id\");\n              this.__ids[h] = h, this.__SVGdefs.appendChild(a.__ctx.__SVGdefs.childNodes[0]);\n            }\n          e.setAttribute(\n            o.apply,\n            Pt(\"url(#{id})\", {\n              id: a.__root.getAttribute(\"id\")\n            })\n          );\n        } else if (a instanceof zi)\n          e.setAttribute(\n            o.apply,\n            Pt(\"url(#{id})\", {\n              id: a.__root.getAttribute(\"id\")\n            })\n          );\n        else if (o.apply.indexOf(t) !== -1 && o.svg !== a)\n          if ((o.svgAttr === \"stroke\" || o.svgAttr === \"fill\") && a.indexOf(\"rgba\") !== -1) {\n            const c = /rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d?\\.?\\d*)\\s*\\)/gi.exec(a);\n            if (c) {\n              e.setAttribute(\n                o.svgAttr,\n                Pt(\"rgb({r},{g},{b})\", {\n                  r: c[1],\n                  g: c[2],\n                  b: c[3]\n                })\n              );\n              let l = parseFloat(c[4]);\n              const u = this.globalAlpha;\n              u != null && (l *= u), e.setAttribute(\n                o.svgAttr + \"-opacity\",\n                \"\" + l\n              );\n            }\n          } else {\n            let h = o.svgAttr;\n            if (i[r] === \"globalAlpha\" && (h = t + \"-\" + o.svgAttr, e.getAttribute(h)))\n              continue;\n            h && e.setAttribute(h, a);\n          }\n      }\n    }\n  }\n  /**\n   * Will return the closest group or svg node. May return the current element.\n   */\n  __closestGroupOrSvg(t) {\n    return t = t || this.__currentElement, t.nodeName === \"g\" || t.nodeName === \"svg\" ? t : this.__closestGroupOrSvg(t.parentNode);\n  }\n  /**\n   * Returns the serialized value of the svg so far\n   * @param fixNamedEntities - Standalone SVG doesn't support named entities, which document.createTextNode encodes.\n   *                           If true, we attempt to find all named entities and encode it as a numeric entity.\n   * @return serialized svg\n   */\n  getSerializedSvg(t) {\n    let e = new XMLSerializer().serializeToString(this.__rootSVG);\n    if (/xmlns=\"http:\\/\\/www\\.w3\\.org\\/2000\\/svg\".+xmlns=\"http:\\/\\/www\\.w3\\.org\\/2000\\/svg/gi.test(e) && (e = e.replace(\n      'xmlns=\"http://www.w3.org/2000/svg',\n      'xmlns:xlink=\"http://www.w3.org/1999/xlink'\n    )), t) {\n      const i = Object.keys(ba);\n      for (let r = 0, o = i.length; r < o; r++) {\n        const a = i[r], h = ba[a], c = new RegExp(a, \"gi\");\n        c.test(e) && (e = e.replace(c, h));\n      }\n    }\n    return e;\n  }\n  /**\n   * Returns the root svg\n   */\n  getSvg() {\n    return this.__rootSVG;\n  }\n  /**\n   * Will generate a group tag\n   */\n  save() {\n    const t = this.__createElement(\"g\"), e = this.__closestGroupOrSvg();\n    this.__groupStack.push(e), e.appendChild(t), this.__currentElement = t, this.__styleStack.push(this.__getStyleState());\n  }\n  /**\n   * Sets current element to parent, or just root if already root\n   */\n  restore() {\n    this.__currentElementsToStyle = null;\n    const t = this.__groupStack.pop();\n    t ? this.__currentElement = t : this.__currentElement = this.__rootSVG.childNodes[1];\n    const e = this.__styleStack.pop();\n    e && this.__applyStyleState(e);\n  }\n  /**\n   * Helper method to add transform\n   */\n  __addTransform(t) {\n    const e = this.__closestGroupOrSvg();\n    if (e.childNodes.length > 0) {\n      this.__currentElement.nodeName === \"path\" && (this.__currentElementsToStyle || (this.__currentElementsToStyle = { element: e, children: [] }), this.__currentElementsToStyle.children.push(this.__currentElement), this.__applyCurrentDefaultPath());\n      const i = this.__createElement(\"g\");\n      e.appendChild(i), this.__currentElement = i;\n    }\n    let s = this.__currentElement.getAttribute(\"transform\");\n    s ? s += \" \" : s = \"\", s += t, this.__currentElement.setAttribute(\"transform\", s);\n  }\n  /**\n   *  scales the current element\n   */\n  scale(t, e) {\n    e === void 0 && (e = t), this.__addTransform(Pt(\"scale({x},{y})\", { x: t, y: e }));\n  }\n  /**\n   * rotates the current element\n   */\n  rotate(t) {\n    const e = t * 180 / Math.PI;\n    this.__addTransform(\n      Pt(\"rotate({angle},{cx},{cy})\", {\n        angle: e,\n        cx: 0,\n        cy: 0\n      })\n    );\n  }\n  /**\n   * translates the current element\n   */\n  translate(t, e) {\n    this.__addTransform(Pt(\"translate({x},{y})\", { x: t, y: e }));\n  }\n  /**\n   * applies a transform to the current element\n   */\n  transform(t, e, s, i, r, o) {\n    this.__addTransform(\n      Pt(\"matrix({a},{b},{c},{d},{e},{f})\", {\n        a: t,\n        b: e,\n        c: s,\n        d: i,\n        e: r,\n        f: o\n      })\n    );\n  }\n  /**\n   * Create a new Path Element\n   */\n  beginPath() {\n    this.__currentDefaultPath = \"\", this.__currentPosition = {};\n    const t = this.__createElement(\"path\", {}, !0);\n    this.__closestGroupOrSvg().appendChild(t), this.__currentElement = t;\n  }\n  /**\n   * Helper function to apply currentDefaultPath to current path element\n   */\n  __applyCurrentDefaultPath() {\n    const t = this.__currentElement;\n    t.nodeName === \"path\" && t.setAttribute(\"d\", this.__currentDefaultPath);\n  }\n  /**\n   * Helper function to add path command\n   */\n  __addPathCommand(t) {\n    this.__currentDefaultPath += \" \", this.__currentDefaultPath += t;\n  }\n  /**\n   * Adds the move command to the current path element,\n   * if the currentPathElement is not empty create a new path element\n   */\n  moveTo(t, e) {\n    this.__currentElement.nodeName !== \"path\" && this.beginPath(), this.__currentPosition = { x: t, y: e }, this.__addPathCommand(Pt(\"M {x} {y}\", this.__currentPosition));\n  }\n  /**\n   * Closes the current path\n   */\n  closePath() {\n    this.__currentDefaultPath && this.__addPathCommand(\"Z\");\n  }\n  /**\n   * Adds a line to command\n   */\n  lineTo(t, e) {\n    this.__currentPosition = { x: t, y: e }, this.__currentDefaultPath.indexOf(\"M\") > -1 ? this.__addPathCommand(Pt(\"L {x} {y}\", this.__currentPosition)) : this.__addPathCommand(Pt(\"M {x} {y}\", this.__currentPosition));\n  }\n  /**\n   * Add a bezier command\n   */\n  bezierCurveTo(t, e, s, i, r, o) {\n    this.__currentPosition = { x: r, y: o }, this.__addPathCommand(\n      Pt(\"C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}\", {\n        cp1x: t,\n        cp1y: e,\n        cp2x: s,\n        cp2y: i,\n        x: r,\n        y: o\n      })\n    );\n  }\n  /**\n   * Adds a quadratic curve to command\n   */\n  quadraticCurveTo(t, e, s, i) {\n    this.__currentPosition = { x: s, y: i }, this.__addPathCommand(\n      Pt(\"Q {cpx} {cpy} {x} {y}\", { cpx: t, cpy: e, x: s, y: i })\n    );\n  }\n  /**\n   * Return a new normalized vector of given vector\n   */\n  normalize(t) {\n    const e = Math.sqrt(t[0] * t[0] + t[1] * t[1]);\n    return [t[0] / e, t[1] / e];\n  }\n  /**\n   * Adds the arcTo to the current path\n   *\n   * @see http://www.w3.org/TR/2015/WD-2dcontext-20150514/#dom-context-2d-arcto\n   */\n  arcTo(t, e, s, i, r) {\n    const o = this.__currentPosition && this.__currentPosition.x, a = this.__currentPosition && this.__currentPosition.y;\n    if (typeof o > \"u\" || typeof a > \"u\")\n      return;\n    if (r < 0)\n      throw new Error(\n        \"IndexSizeError: The radius provided (\" + r + \") is negative.\"\n      );\n    if (o === t && a === e || t === s && e === i || r === 0) {\n      this.lineTo(t, e);\n      return;\n    }\n    const h = this.normalize([o - t, a - e]), c = this.normalize([s - t, i - e]);\n    if (h[0] * c[1] === h[1] * c[0]) {\n      this.lineTo(t, e);\n      return;\n    }\n    const l = h[0] * c[0] + h[1] * c[1], u = Math.acos(Math.abs(l)), d = this.normalize([\n      h[0] + c[0],\n      h[1] + c[1]\n    ]), f = r / Math.sin(u / 2), m = t + f * d[0], p = e + f * d[1], S = [\n      -h[1],\n      h[0]\n    ], g = [c[1], -c[0]], b = function(C) {\n      const _ = C[0];\n      return C[1] >= 0 ? Math.acos(_) : -Math.acos(_);\n    }, x = b(S), w = b(g);\n    this.lineTo(\n      m + S[0] * r,\n      p + S[1] * r\n    ), this.arc(m, p, r, x, w);\n  }\n  /**\n   * Sets the stroke property on the current element\n   */\n  stroke() {\n    this.__currentElement.nodeName === \"path\" && this.__currentElement.setAttribute(\"paint-order\", \"fill stroke markers\"), this.__applyCurrentDefaultPath(), this.__applyStyleToCurrentElement(\"stroke\");\n  }\n  /**\n   * Sets fill properties on the current element\n   */\n  fill() {\n    this.__currentElement.nodeName === \"path\" && this.__currentElement.setAttribute(\"paint-order\", \"stroke fill markers\"), this.__applyCurrentDefaultPath(), this.__applyStyleToCurrentElement(\"fill\");\n  }\n  /**\n   *  Adds a rectangle to the path.\n   */\n  rect(t, e, s, i) {\n    this.__currentElement.nodeName !== \"path\" && this.beginPath(), this.moveTo(t, e), this.lineTo(t + s, e), this.lineTo(t + s, e + i), this.lineTo(t, e + i), this.lineTo(t, e), this.closePath();\n  }\n  /**\n   * adds a rectangle element\n   */\n  fillRect(t, e, s, i) {\n    const r = this.__createElement(\n      \"rect\",\n      {\n        x: t,\n        y: e,\n        width: s,\n        height: i\n      },\n      !0\n    );\n    this.__closestGroupOrSvg().appendChild(r), this.__currentElement = r, this.__applyStyleToCurrentElement(\"fill\");\n  }\n  /**\n   * Draws a rectangle with no fill\n   */\n  strokeRect(t, e, s, i) {\n    const r = this.__createElement(\n      \"rect\",\n      {\n        x: t,\n        y: e,\n        width: s,\n        height: i\n      },\n      !0\n    );\n    this.__closestGroupOrSvg().appendChild(r), this.__currentElement = r, this.__applyStyleToCurrentElement(\"stroke\");\n  }\n  /**\n   * Clear entire canvas:\n   * 1. save current transforms\n   * 2. remove all the childNodes of the root g element\n   */\n  __clearCanvas() {\n    const e = this.__closestGroupOrSvg().getAttribute(\"transform\"), s = this.__rootSVG.childNodes[1], i = s.childNodes;\n    for (let r = i.length - 1; r >= 0; r--)\n      i[r] && s.removeChild(i[r]);\n    this.__currentElement = s, this.__groupStack = [], e && this.__addTransform(e);\n  }\n  /**\n   * \"Clears\" a canvas by just drawing a white rectangle in the current group.\n   */\n  clearRect(t, e, s, i) {\n    if (t === 0 && e === 0 && s === this.width && i === this.height) {\n      this.__clearCanvas();\n      return;\n    }\n    const r = this.__closestGroupOrSvg(), o = this.__createElement(\n      \"rect\",\n      {\n        x: t,\n        y: e,\n        width: s,\n        height: i,\n        fill: \"#FFFFFF\"\n      },\n      !0\n    );\n    r.appendChild(o);\n  }\n  /**\n   * Adds a linear gradient to a defs tag.\n   * Returns a canvas gradient object that has a reference to it's parent def\n   */\n  createLinearGradient(t, e, s, i) {\n    const r = this.__createElement(\n      \"linearGradient\",\n      {\n        id: wn(this.__ids),\n        x1: t + \"px\",\n        x2: s + \"px\",\n        y1: e + \"px\",\n        y2: i + \"px\",\n        gradientUnits: \"userSpaceOnUse\"\n      },\n      !1\n    );\n    return this.__SVGdefs.appendChild(r), new zi(r, this);\n  }\n  /**\n   * Adds a radial gradient to a defs tag.\n   * Returns a canvas gradient object that has a reference to it's parent def\n   */\n  createRadialGradient(t, e, s, i, r, o) {\n    const a = this.__createElement(\n      \"radialGradient\",\n      {\n        id: wn(this.__ids),\n        cx: i + \"px\",\n        cy: r + \"px\",\n        r: o + \"px\",\n        fx: t + \"px\",\n        fy: e + \"px\",\n        gradientUnits: \"userSpaceOnUse\"\n      },\n      !1\n    );\n    return this.__SVGdefs.appendChild(a), new zi(a, this);\n  }\n  /**\n   * Parses the font string and returns svg mapping\n   */\n  __parseFont() {\n    const e = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:%|in|[cem]m|ex|p[CustomCanvasContext]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:%|in|[cem]m|ex|p[CustomCanvasContext])))?\\s*([-,'\"\\sa-z0-9]+?)\\s*$/i.exec(this.font), s = {\n      style: e[1] || \"normal\",\n      size: e[4] || \"10px\",\n      family: e[6] || \"sans-serif\",\n      weight: e[3] || \"normal\",\n      decoration: e[2] || \"normal\",\n      href: null\n    };\n    return this.__fontUnderline === \"underline\" && (s.decoration = \"underline\"), this.__fontHref && (s.href = this.__fontHref), s;\n  }\n  /**\n   * Helper to link text fragments\n   */\n  __wrapTextLink(t, e) {\n    if (t.href) {\n      const s = this.__createElement(\"a\");\n      return s.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", t.href), s.appendChild(e), s;\n    }\n    return e;\n  }\n  /**\n   * Fills or strokes text\n   * @param text\n   * @param x\n   * @param y\n   * @param action - stroke or fill\n   */\n  __applyText(t, e, s, i) {\n    const r = this.__parseFont(), o = this.__closestGroupOrSvg(), a = this.__createElement(\n      \"text\",\n      {\n        \"font-family\": r.family,\n        \"font-size\": r.size,\n        \"font-style\": r.style,\n        \"font-weight\": r.weight,\n        \"text-decoration\": r.decoration,\n        x: e,\n        y: s,\n        \"text-anchor\": o0(this.textAlign),\n        \"dominant-baseline\": a0(this.textBaseline)\n      },\n      !0\n    );\n    a.appendChild(this.__document.createTextNode(t)), this.__currentElement = a, this.__applyStyleToCurrentElement(i), o.appendChild(\n      this.__wrapTextLink(r, a)\n    );\n  }\n  /**\n   * Creates a text element\n   * @param text\n   * @param x\n   * @param y\n   */\n  fillText(t, e, s) {\n    this.__applyText(t, e, s, \"fill\");\n  }\n  /**\n   * Strokes text\n   * @param text\n   * @param x\n   * @param y\n   */\n  strokeText(t, e, s) {\n    this.__applyText(t, e, s, \"stroke\");\n  }\n  /**\n   * No need to implement this for svg.\n   * @param text\n   * @return {TextMetrics}\n   */\n  measureText(t) {\n    return this.__ctx.font = this.font, this.__ctx.measureText(t);\n  }\n  /**\n   *  Arc command!\n   */\n  arc(t, e, s, i, r, o) {\n    if (i === r)\n      return;\n    i = i % (2 * Math.PI), r = r % (2 * Math.PI), i === r && (r = (r + 2 * Math.PI - 1e-3 * (o ? -1 : 1)) % (2 * Math.PI));\n    const a = t + s * Math.cos(r), h = e + s * Math.sin(r), c = t + s * Math.cos(i), l = e + s * Math.sin(i), u = o ? 0 : 1;\n    let d = 0, f = r - i;\n    f < 0 && (f += 2 * Math.PI), o ? d = f > Math.PI ? 0 : 1 : d = f > Math.PI ? 1 : 0, this.lineTo(c, l), this.__addPathCommand(\n      Pt(\n        \"A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}\",\n        {\n          rx: s,\n          ry: s,\n          xAxisRotation: 0,\n          largeArcFlag: d,\n          sweepFlag: u,\n          endX: a,\n          endY: h\n        }\n      )\n    ), this.__currentPosition = { x: a, y: h };\n  }\n  /**\n   * Generates a ClipPath from the clip command.\n   */\n  clip() {\n    const t = this.__closestGroupOrSvg(), e = this.__createElement(\"clipPath\"), s = wn(this.__ids), i = this.__createElement(\"g\");\n    this.__applyCurrentDefaultPath(), t.removeChild(this.__currentElement), e.setAttribute(\"id\", s), e.appendChild(this.__currentElement), this.__SVGdefs.appendChild(e), t.setAttribute(\"clip-path\", Pt(\"url(#{id})\", { id: s })), t.appendChild(i), this.__currentElement = i;\n  }\n  /**\n   * Draws a canvas, image or mock context to this canvas.\n   * Note that all svg dom manipulation uses node.childNodes rather than node.children for IE support.\n   * http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage\n   */\n  drawImage(...t) {\n    let e = t[0], s, i, r, o, a = 0, h = 0, c, l, u, d, f, m, p, S;\n    if (t.length === 3)\n      s = t[1], i = t[2], c = e.width, l = e.height, r = c, o = l;\n    else if (t.length === 5)\n      s = t[1], i = t[2], r = t[3], o = t[4], c = e.width, l = e.height;\n    else if (t.length === 9)\n      a = t[1], h = t[2], c = t[3], l = t[4], s = t[5], i = t[6], r = t[7], o = t[8];\n    else\n      throw new Error(\n        \"Invalid number of arguments passed to drawImage: \" + arguments.length\n      );\n    const g = this.__closestGroupOrSvg();\n    this.__currentElement;\n    const b = \"translate(\" + s + \", \" + i + \")\";\n    if (e instanceof dr) {\n      if (u = e.getSvg().cloneNode(!0), u.childNodes && u.childNodes.length > 1) {\n        for (d = u.childNodes[0]; d.childNodes.length; )\n          S = d.childNodes[0].getAttribute(\"id\"), this.__ids[S] = S, this.__SVGdefs.appendChild(d.childNodes[0]);\n        if (f = u.childNodes[1], f) {\n          const x = f.getAttribute(\"transform\");\n          let w;\n          x ? w = x + \" \" + b : w = b, f.setAttribute(\"transform\", w), g.appendChild(f);\n        }\n      }\n    } else\n      (e.nodeName === \"CANVAS\" || e.nodeName === \"IMG\") && (m = this.__createElement(\"image\"), m.setAttribute(\"width\", r), m.setAttribute(\"height\", o), m.setAttribute(\"preserveAspectRatio\", \"none\"), (a || h || c !== e.width || l !== e.height) && (p = this.__document.createElement(\"canvas\"), p.width = r, p.height = o, p.getContext(\"2d\")?.drawImage(e, a, h, c, l, 0, 0, r, o), e = p), m.setAttribute(\"transform\", b), m.setAttributeNS(\n        \"http://www.w3.org/1999/xlink\",\n        \"xlink:href\",\n        e.nodeName === \"CANVAS\" ? e.toDataURL() : e.getAttribute(\"src\")\n      ), g.appendChild(m));\n  }\n  /**\n   * Generates a pattern tag\n   */\n  createPattern(t, e) {\n    const s = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"pattern\"\n    ), i = wn(this.__ids);\n    let r;\n    return s.setAttribute(\"id\", i), t.nodeName === \"CANVAS\" || t.nodeName === \"IMG\" ? (r = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"image\"\n    ), r.setAttribute(\n      \"width\",\n      \"\" + t.width\n    ), r.setAttribute(\n      \"height\",\n      \"\" + t.height\n    ), r.setAttributeNS(\n      \"http://www.w3.org/1999/xlink\",\n      \"xlink:href\",\n      t.nodeName === \"CANVAS\" ? t.toDataURL() : t.getAttribute(\"src\")\n    ), s.appendChild(r), this.__SVGdefs.appendChild(s)) : t instanceof dr && (s.setAttribute(\"width\", \"\" + t.width), s.setAttribute(\n      \"height\",\n      \"\" + t.height\n    ), s.appendChild(t.__rootSVG.childNodes[1]), this.__SVGdefs.appendChild(s)), new va(s, this);\n  }\n  setLineDash(t) {\n    t && t.length > 0 ? this.lineDash = t.join(\",\") : this.lineDash = null;\n  }\n  drawFocusRing() {\n  }\n  createImageData() {\n  }\n  getImageData() {\n  }\n  putImageData() {\n  }\n  globalCompositeOperation() {\n  }\n  setTransform() {\n  }\n}, _a = class {\n  canvas;\n  context;\n  // context: CanvasRenderingContext2D\n  // | WebGLRenderingContext\n  // | WebGL2RenderingContext\n  // | GPUCanvasContext\n  // | ImageBitmapRenderingContext\n  customContext;\n  // https://developer.mozilla.org/en-US/docs/Web/API/Path2D\n  currentPath2D = new Path2D();\n  path2Ds = [];\n  // https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix\n  currentMatrix = new DOMMatrix();\n  // currentMatrix = document\n  //   .createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n  //   .createSVGMatrix();\n  hasSetCustomStrokeStyle = !1;\n  hasSetCustomFillStyle = !1;\n  constructor(t, e, s, i = !1) {\n    this.canvas = t, this.context = t.getContext(\"2d\", {\n      willReadFrequently: !0\n    }), i && (this.customContext = new h0({\n      canvas: this.canvas,\n      width: e || this.canvas.width,\n      height: s || this.canvas.height\n    }));\n  }\n  set lineWidth(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.lineWidth = t, this.customContext && (this.customContext.lineWidth = t);\n  }\n  get lineWidth() {\n    return this.context.lineWidth;\n  }\n  set lineCap(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.lineCap = t, this.customContext && (this.customContext.lineCap = t);\n  }\n  get lineCap() {\n    return this.context.lineCap;\n  }\n  set lineJoin(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.lineJoin = t, this.customContext && (this.customContext.lineCap = t);\n  }\n  get lineJoin() {\n    return this.context.lineJoin;\n  }\n  set lineDashOffset(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.lineDashOffset = t, this.customContext && (this.customContext.lineDashOffset = t);\n  }\n  get lineDashOffset() {\n    return this.context.lineDashOffset;\n  }\n  set miterLimit(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.miterLimit = t, this.customContext && (this.customContext.miterLimit = t);\n  }\n  get miterLimit() {\n    return this.context.miterLimit;\n  }\n  set globalAlpha(t) {\n    this.context.globalAlpha = t, this.customContext && (this.customContext.globalAlpha = t);\n  }\n  get globalAlpha() {\n    return this.context.globalAlpha;\n  }\n  // rgb(255,221,0)\n  // rgba(255,221,0,1)\n  // #000000\n  set fillStyle(t) {\n    this.hasSetCustomFillStyle = !0, typeof t == \"string\" || t instanceof CanvasGradient || t instanceof CanvasPattern ? (this.context.fillStyle = t, this.customContext && (this.customContext.fillStyle = t)) : (this.context.fillStyle = t.gradient, this.customContext && (this.customContext.fillStyle = t.gradientCustom));\n  }\n  get fillStyle() {\n    return this.context.fillStyle;\n  }\n  set strokeStyle(t) {\n    this.hasSetCustomStrokeStyle = !0, typeof t == \"string\" || t instanceof CanvasGradient || t instanceof CanvasPattern ? (this.context.strokeStyle = t, this.customContext && (this.customContext.strokeStyle = t)) : (this.context.strokeStyle = t.gradient, this.customContext && (this.customContext.strokeStyle = t.gradientCustom));\n  }\n  get strokeStyle() {\n    return this.context.strokeStyle;\n  }\n  // font:\"10px sans-serif\"\n  set font(t) {\n    this.context.font = t, this.customContext && (this.customContext.font = t);\n  }\n  get font() {\n    return this.context.font;\n  }\n  set textBaseline(t) {\n    this.context.textBaseline = t, this.customContext && (this.customContext.textBaseline = t);\n  }\n  get textBaseline() {\n    return this.context.textBaseline;\n  }\n  set textAlign(t) {\n    this.context.textAlign = t, this.customContext && (this.customContext.textAlign = t);\n  }\n  get textAlign() {\n    return this.context.textAlign;\n  }\n  fill(t) {\n    return t ? this.context.fill(t) : (this.context.fill(), this.customContext && this.customContext.fill()), this;\n  }\n  fillRect(t, e, s, i) {\n    return this.context.fillRect(t, e, s, i), this.customContext && this.customContext.fillRect(t, e, s, i), this;\n  }\n  fillText(t, e, s, i) {\n    return this.hasSetCustomFillStyle = !1, this.context.fillText(t, e, s, i), this.customContext && this.customContext.fillText(t, e, s), this;\n  }\n  setLineDash(t) {\n    return this.context.setLineDash(t), this.customContext && this.customContext.setLineDash(t), this;\n  }\n  stroke(t) {\n    return t ? this.context.stroke(t) : (this.context.stroke(), this.customContext && this.customContext.stroke()), this;\n  }\n  strokeText(t, e, s, i) {\n    return this.context.strokeText(t, e, s, i), this.customContext && this.customContext.strokeText(t, e, s), this;\n  }\n  strokeRect(t, e, s, i) {\n    return this.context.strokeRect(t, e, s, i), this.customContext && this.customContext.strokeRect(t, e, s, i), this;\n  }\n  measureText(t) {\n    return this.context.measureText(t);\n  }\n  clearRect(t = 0, e = 0, s = this.canvas.width, i = this.canvas.height) {\n    return this.context.clearRect(t, e, s, i), this.customContext && this.customContext.clearRect(t, e, s, i), this;\n  }\n  save() {\n    return this.context.save(), this.customContext && this.customContext.save(), this.currentMatrix = new DOMMatrix(), this.path2Ds.push(this.currentPath2D), this.currentPath2D = new Path2D(), this;\n  }\n  restore() {\n    return this.context.restore(), this.customContext && this.customContext.restore(), this.hasSetCustomStrokeStyle = !1, this.hasSetCustomFillStyle = !1, this.currentMatrix = new DOMMatrix(), this.currentPath2D = this.path2Ds.pop() || new Path2D(), this;\n  }\n  beginPath() {\n    return this.context.beginPath(), this.customContext && this.customContext.beginPath(), this;\n  }\n  closePath() {\n    return this.context.closePath(), this.customContext && this.customContext.closePath(), this.currentPath2D.closePath(), this;\n  }\n  changePath2D(t = this.currentPath2D, e = this.currentMatrix) {\n    const s = new Path2D();\n    s.addPath(t, e), this.currentPath2D = s;\n  }\n  isPointInStroke(...t) {\n    return t[0] instanceof Path2D ? this.context.isPointInStroke(t[0], t[1], t[2]) : this.context.isPointInStroke(t[0], t[1]);\n  }\n  isPointInPath(...t) {\n    return t[0] instanceof Path2D ? this.context.isPointInPath(t[0], t[1], t[2]) : this.context.isPointInPath(t[0], t[1]);\n  }\n  // transform(a: number, b: number, c: number, d: number, e: number, f: number) {\n  //   this.context.transform(a, b, c, d, e, f);\n  //   if (this.customContext) this.customContext.transform(a, b, c, d, e, f);\n  //   return this;\n  // }\n  translate(t, e) {\n    return this.context.translate(t, e), this.customContext && this.customContext.translate(t, e), this.currentMatrix.translate(t, e), this.changePath2D(), this;\n  }\n  rotate(t, e = 0, s = 0) {\n    return this.translate(e, s), this.context.rotate(t), this.customContext && this.customContext.rotate(t), this.currentMatrix.rotate(t), this.translate(-e, -s), this.changePath2D(), this;\n  }\n  scale(t, e = t, s = 0, i = 0) {\n    return this.translate(s, i), this.context.scale(t, e), this.customContext && this.customContext.scale(t, e), this.currentMatrix.scale(t, e), this.translate(-s, -i), this.changePath2D(), this;\n  }\n  moveTo(t, e) {\n    return this.context.moveTo(t, e), this.customContext && this.customContext.moveTo(t, e), this.currentPath2D.moveTo(t, e), this;\n  }\n  lineTo(t, e) {\n    return this.context.lineTo(t, e), this.customContext && this.customContext.lineTo(t, e), this.currentPath2D.lineTo(t, e), this;\n  }\n  arc(t, e, s, i, r, o) {\n    return this.context.arc(t, e, s, i, r, o), this.customContext && this.customContext.arc(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o ? -1 : 1\n    ), this.currentPath2D.arc(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o\n    ), this;\n  }\n  arcTo(t, e, s, i, r) {\n    return this.context.arcTo(t, e, s, i, r), this.customContext && this.customContext.arcTo(t, e, s, i, r), this.currentPath2D.arcTo(t, e, s, i, r), this;\n  }\n  ellipse(t, e, s, i, r, o, a, h) {\n    return this.context.ellipse(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o,\n      a,\n      h\n    ), this.currentPath2D.ellipse(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o,\n      a,\n      h\n    ), this;\n  }\n  quadraticCurveTo(t, e, s, i) {\n    return this.context.quadraticCurveTo(t, e, s, i), this.customContext && this.customContext.quadraticCurveTo(t, e, s, i), this.currentPath2D.quadraticCurveTo(t, e, s, i), this;\n  }\n  bezierCurveTo(t, e, s, i, r, o) {\n    return this.context.bezierCurveTo(t, e, s, i, r, o), this.customContext && this.customContext.bezierCurveTo(t, e, s, i, r, o), this.currentPath2D.bezierCurveTo(t, e, s, i, r, o), this;\n  }\n  rect(t, e, s, i) {\n    return this.context.rect(t, e, s, i), this.customContext && this.customContext.rect(t, e, s, i), this.currentPath2D.rect(t, e, s, i), this;\n  }\n  // { 0: \"#ffffff\", 1: \"#ff0000\" }\n  createLinearGradient(t, e, s, i, r) {\n    const o = this.context.createLinearGradient(\n      t,\n      e,\n      s,\n      i\n    );\n    return r && Object.entries(r).forEach(([a, h]) => {\n      o.addColorStop(parseFloat(a), h);\n    }), o;\n  }\n  createRadialGradient(t, e, s, i, r, o, a) {\n    const h = this.context.createRadialGradient(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o\n    );\n    return a && Object.entries(a).forEach(([c, l]) => {\n      h.addColorStop(parseFloat(c), l);\n    }), h;\n  }\n  //  const image = new Image();\n  //  image.src = \"../assets/images/picture.jpg\";\n  //  image.onload = function () {\n  //    co.drawImage(image);\n  //  };\n  drawImage(t, ...e) {\n    if (e.length === 0)\n      this.context.drawImage(t, 0, 0);\n    else if (e.length === 2) {\n      const s = e[0], i = e[1];\n      this.context.drawImage(t, s, i);\n    } else if (e.length === 4) {\n      const s = e[0], i = e[1], r = e[2], o = e[3];\n      this.context.drawImage(t, s, i, r, o);\n    } else if (e.length === 8) {\n      const s = e[0], i = e[1], r = e[2], o = e[3], a = e[4], h = e[5], c = e[6], l = e[7];\n      this.context.drawImage(t, s, i, r, o, a, h, c, l);\n    } else\n      throw new Error(\n        \"Invalid number of arguments passed to drawImage: \" + e.length\n      );\n    return this.customContext && this.customContext.drawImage(t, ...e), this;\n  }\n  getImageData(t = 0, e = 0, s = this.canvas.width, i = this.canvas.height, r) {\n    return this.context.getImageData(t, e, s, i, r);\n  }\n  putImageData(t, e = 0, s = 0) {\n    return this.context.putImageData(t, e, s);\n  }\n  createPattern(t, e) {\n    return this.context.createPattern(t, e);\n  }\n  toRawSVG() {\n    if (this.customContext) {\n      const t = this.customContext.getSerializedSvg(!0), e = this.customContext.getSvg();\n      return { raw: t, element: e };\n    } else\n      return { raw: \"\", element: null };\n  }\n}, io = class {\n  x;\n  y;\n  toX;\n  toY;\n  constructor(t) {\n    this.x = t?.x || 0, this.y = t?.y || 0, this.toX = t?.toX || 0, this.toY = t?.toY || 0;\n  }\n  toSVGPathData() {\n    return [[\"L\", this.toX, this.toY]];\n  }\n  toCanvasContext(t) {\n    t.lineTo(this.toX, this.toY);\n  }\n  getBoundingClientRect() {\n    const t = qt(this.x, this.y, this.toX, this.toY);\n    if (t === 0) {\n      const e = Math.min(this.x, this.toX), s = Math.min(this.y, this.toY), i = Math.max(this.x, this.toX), r = Math.max(this.y, this.toY);\n      return {\n        x: e,\n        y: s,\n        width: i - e,\n        height: r - s\n      };\n    } else {\n      const e = Math.sin(t), s = Math.cos(t), i = s * this.x - e * this.y, r = s * this.toX - e * this.toY, o = s * this.y + e * this.x, a = s * this.toY + e * this.toX;\n      return {\n        x: Math.min(i, r),\n        y: Math.min(o, a),\n        width: Math.max(i, r) - Math.min(i, r),\n        height: Math.max(o, a) - Math.min(o, a)\n      };\n    }\n  }\n  // t : The fraction of the overall duration of the path. (A value from 0.0 to 1.0)\n  interpolate(t) {\n    return {\n      x: this.x + t * (this.toX - this.x),\n      y: this.y + t * (this.toY - this.y)\n    };\n  }\n  intersection(t) {\n    const e = this.x, s = this.y, i = t.toX, r = t.toY, o = this.toX - e, a = t.x - i;\n    if (!o && !a)\n      return null;\n    const h = (this.toY - s) / o, c = (t.y - r) / a;\n    if (o) {\n      if (!a)\n        return { x: i, y: h * (i - e) + s };\n    } else\n      return { x: e, y: c * (e - i) + r };\n    const l = (-c * i + r + h * e - s) / (h - c), u = h * (l - e) + s;\n    return isNaN(l) || isNaN(u) ? null : { x: l, y: u };\n  }\n}, c0 = class extends io {\n  // x方向的半径\n  rx;\n  // y方向的半径\n  ry;\n  // 绕着x轴旋转的角度\n  xAxisRotate;\n  // 0小弧 1大弧\n  largeArcFlag;\n  // 0逆时针方向 1顺时针方向\n  sweepFlag;\n  constructor(t) {\n    super(t), this.rx = t.rx, this.ry = t.ry, this.xAxisRotate = t?.xAxisRotate ?? 0, this.largeArcFlag = t?.largeArcFlag ?? 1, this.sweepFlag = t?.sweepFlag ?? 1, this.toX = t.toX, this.toY = t.toY;\n  }\n  /// A rx,ry xAxisRotate LargeArcFlag,SweepFlag x,y\n  toSVGPathData() {\n    return [\n      [\n        \"A\",\n        this.rx,\n        this.ry,\n        this.xAxisRotate,\n        this.largeArcFlag,\n        this.sweepFlag,\n        this.toX,\n        this.toY\n      ]\n    ];\n  }\n  toCanvasContext(t) {\n    const [e, s, i, r, o, a, h] = this.convert(\n      this.x,\n      this.y,\n      this.toX,\n      this.toY,\n      this.rx,\n      this.ry,\n      this.xAxisRotate,\n      this.largeArcFlag,\n      this.sweepFlag\n    );\n    t.ellipse(\n      e,\n      s,\n      i,\n      r,\n      o,\n      a,\n      h,\n      !this.sweepFlag\n    );\n  }\n  convert(t, e, s, i, r, o, a, h, c) {\n    const l = a / 180 * Math.PI, u = (t - s) / 2, d = (e - i) / 2, f = Math.cos(l) * u + Math.sin(l) * d, m = -Math.sin(l) * u + Math.cos(l) * d, p = f * f / (r * r) + m * m / (o * o);\n    if (p > 1) {\n      const V = Math.sqrt(p);\n      throw r = V * r, o = V * o, new Error(\n        `Radii are too small to build an arc. Correcting them to ${r}/${o}.`\n      );\n    }\n    const S = Math.sqrt(\n      (r * r * o * o - r * r * m * m - o * o * f * f) / (r * r * m * m + o * o * f * f)\n    ), g = h != c ? 1 : -1, b = g * S * r * m / o, x = g * S * -o * f / r, w = (t + s) / 2, C = (e + i) / 2, _ = Math.cos(l) * b - Math.sin(l) * x + w, D = Math.sin(l) * b + Math.cos(l) * x + C, z = (V, j, et, J) => (V * J >= j * et ? 1 : -1) * Math.acos(\n      (V * et + j * J) / (Math.sqrt(V * V + j * j) * Math.sqrt(et * et + J * J))\n    ), B = z(1, 0, t - _, e - D) - l, G = z(t - _, e - D, s - _, i - D);\n    return [_, D, r, o, l, B, B + G];\n  }\n};\nconst l0 = c0;\nlet u0 = class extends io {\n  cx;\n  cy;\n  isLineThrough;\n  constructor(t) {\n    super(t), this.cx = t.cx, this.cy = t.cy, this.isLineThrough = typeof t.isLineThrough == \"boolean\" ? t.isLineThrough : !1;\n  }\n  /// Q cx,cy x,y\n  /// T x,y\n  toSVGPathData() {\n    if (this.isLineThrough) {\n      const t = this.cx * 2 - (this.x + this.toX) / 2, e = this.cy * 2 - (this.y + this.toY) / 2;\n      return [[\"Q\", t, e, this.toX, this.toY]];\n    } else\n      return [[\"Q\", this.cx, this.cy, this.toX, this.toY]];\n  }\n  toCanvasContext(t) {\n    if (this.isLineThrough) {\n      const e = this.cx * 2 - (this.x + this.toX) / 2, s = this.cy * 2 - (this.y + this.toY) / 2;\n      t.quadraticCurveTo(e, s, this.toX, this.toY);\n    } else\n      t.quadraticCurveTo(this.cx, this.cy, this.toX, this.toY);\n  }\n  getBoundingClientRect() {\n    const t = [this.x, this.toX], e = [this.y, this.toY];\n    let s, i, r, o;\n    for (let c = 0; c < 2; ++c)\n      s = c == 0 ? this.x - 2 * this.cx + this.toX : this.y - 2 * this.cy + this.toY, i = c == 0 ? -2 * this.x + 2 * this.cx : -2 * this.y + 2 * this.cy, r = c == 0 ? this.x : this.y, Math.abs(s) > 1e-12 && (o = -i / (2 * s), 0 < o && o < 1 && [t, e][c].push(s * o * o + i * o + r));\n    const a = { x: Math.min.apply(0, t), y: Math.min.apply(0, e) }, h = { x: Math.max.apply(0, t), y: Math.max.apply(0, e) };\n    return {\n      x: a.x,\n      y: a.y,\n      width: h.x - a.x,\n      height: h.y - a.y\n    };\n  }\n  // t : The fraction of the overall duration of the path. (A value from 0.0 to 1.0)\n  interpolate(t) {\n    return {\n      x: (1 - t) * (1 - t) * this.x + 2 * (1 - t) * t * this.cx + t * t * this.toX,\n      y: (1 - t) * (1 - t) * this.y + 2 * (1 - t) * t * this.cy + t * t * this.toY\n    };\n  }\n};\nconst f0 = u0;\nlet d0 = class Is extends io {\n  c1x;\n  c1y;\n  c2x;\n  c2y;\n  constructor(t) {\n    super(t), this.c1x = t.c1x, this.c1y = t.c1y, this.c2x = t.c2x, this.c2y = t.c2y;\n  }\n  /// C c1x,c1y c2x,c2y x,y\n  /// S c2x,c2y x,y\n  toSVGPathData() {\n    return [[\"C\", this.c1x, this.c1y, this.c2x, this.c2y, this.toX, this.toY]];\n  }\n  toCanvasContext(t) {\n    t.bezierCurveTo(\n      this.c1x,\n      this.c1y,\n      this.c2x,\n      this.c2y,\n      this.toX,\n      this.toY\n    );\n  }\n  getBoundingClientRect() {\n    let t = this.c2x - 2 * this.c1x + this.x - (this.toX - 2 * this.c2x + this.c1x), e = 2 * (this.c1x - this.x) - 2 * (this.c2x - this.c1x), s = this.x - this.c1x, i = (-e + Math.sqrt(e * e - 4 * t * s)) / 2 / t, r = (-e - Math.sqrt(e * e - 4 * t * s)) / 2 / t;\n    const o = [this.y, this.toY], a = [this.x, this.toX];\n    let h;\n    const c = [];\n    Math.abs(i) > 1e12 && (i = 0.5), Math.abs(r) > 1e12 && (r = 0.5), i >= 0 && i <= 1 && (h = this.interpolate(i), a.push(h.x), o.push(h.y), c.push({ X: h.x, Y: h.y })), r >= 0 && r <= 1 && (h = this.interpolate(r), a.push(h.x), o.push(h.y), c.push({ X: h.x, Y: h.y })), t = this.c2y - 2 * this.c1y + this.y - (this.toY - 2 * this.c2y + this.c1y), e = 2 * (this.c1y - this.y) - 2 * (this.c2y - this.c1y), s = this.y - this.c1y, i = (-e + Math.sqrt(e * e - 4 * t * s)) / 2 / t, r = (-e - Math.sqrt(e * e - 4 * t * s)) / 2 / t, Math.abs(i) > 1e12 && (i = 0.5), Math.abs(r) > 1e12 && (r = 0.5), i >= 0 && i <= 1 && (h = this.interpolate(i), a.push(h.x), o.push(h.y), c.push({ X: h.x, Y: h.y })), r >= 0 && r <= 1 && (h = this.interpolate(r), a.push(h.x), o.push(h.y), c.push({ X: h.x, Y: h.y }));\n    const l = [], u = c.length;\n    for (let m = 0; m < u; m++) {\n      for (let p = m + 1; p < u; p++)\n        c[m].X === c[p].X && c[m].Y === c[p].Y && (p = ++m);\n      l.push({ X: c[m].X, Y: c[m].Y });\n    }\n    const d = { x: Math.min.apply(Math, a), y: Math.min.apply(Math, o) }, f = { x: Math.max.apply(Math, a), y: Math.max.apply(Math, o) };\n    return {\n      x: d.x,\n      y: d.y,\n      width: f.x - d.x,\n      height: f.y - d.y,\n      dots: l\n      // these are the extrema points\n    };\n  }\n  /// t (0.0 to 1.0) : The fraction of the overall duration of the path\n  interpolate(t) {\n    return {\n      x: Math.pow(1 - t, 3) * this.x + 3 * Math.pow(1 - t, 2) * t * this.c1x + 3 * Math.pow(1 - t, 1) * Math.pow(t, 2) * this.c2x + Math.pow(t, 3) * this.toX,\n      y: Math.pow(1 - t, 3) * this.y + 3 * Math.pow(1 - t, 2) * t * this.c1y + 3 * Math.pow(1 - t, 1) * Math.pow(t, 2) * this.c2y + Math.pow(t, 3) * this.toY\n    };\n  }\n  static base3(t, e, s, i, r) {\n    const o = -3 * e + 9 * s - 9 * i + 3 * r, a = t * o + 6 * e - 12 * s + 6 * i;\n    return t * a - 3 * e + 3 * s;\n  }\n  /**\n   * Based on snap.svg bezlen() function\n   * like getTotalLength(), approximate a cubic bézier length\n   * https://github.com/adobe-webplatform/Snap.svg/blob/master/dist/snap.svg.js#L5786\n   */\n  static bezlen(t, e, s, i, r, o, a, h, c = 1) {\n    c = Math.max(0, Math.min(c, 1));\n    const l = c / 2, u = [\n      -0.1252,\n      0.1252,\n      -0.3678,\n      0.3678,\n      -0.5873,\n      0.5873,\n      -0.7699,\n      0.7699,\n      -0.9041,\n      0.9041,\n      -0.9816,\n      0.9816\n    ], d = [\n      0.2491,\n      0.2491,\n      0.2335,\n      0.2335,\n      0.2032,\n      0.2032,\n      0.1601,\n      0.1601,\n      0.1069,\n      0.1069,\n      0.0472,\n      0.0472\n    ];\n    let f = 0;\n    for (let m = 0; m < 12; m++) {\n      const p = l * u[m] + l, S = this.base3(p, t, s, r, a), g = this.base3(p, e, i, o, h);\n      f += d[m] * Math.sqrt(S * S + g * g);\n    }\n    return l * f;\n  }\n  length(t = 1) {\n    return Is.bezlen(\n      this.x,\n      this.y,\n      this.c1x,\n      this.c1y,\n      this.c2x,\n      this.c2y,\n      this.toX,\n      this.toY,\n      t\n    );\n  }\n  /// get position on the curve (0..1)\n  getTatLen(t) {\n    const e = this.x, s = this.y, i = this.c1x, r = this.c1y, o = this.c2x, a = this.c2y, h = this.toX, c = this.toY;\n    if (t < 0 || Is.bezlen(e, s, i, r, o, a, h, c) < t)\n      return 0;\n    const l = 1;\n    let u = l / 2, d = l - u, f = Is.bezlen(e, s, i, r, o, a, h, c, d);\n    for (; Math.abs(f - t) > 0.01; )\n      u /= 2, d += (f < t ? 1 : -1) * u, f = Is.bezlen(e, s, i, r, o, a, h, c, d);\n    return d;\n  }\n  /// Find dot coordinates on the given cubic bezier curve at the given t\n  getPointAtSegmentLength(t) {\n    const e = this.getTatLen(t), s = 1 - e, i = Math.pow(s, 3), r = Math.pow(s, 2), o = e * e, a = o * e, h = i * this.x + r * 3 * e * this.c1x + s * 3 * e * e * this.c2x + a * this.toX, c = i * this.y + r * 3 * e * this.c1y + s * 3 * e * e * this.c2y + a * this.toY, l = this.x + 2 * e * (this.c1x - this.x) + o * (this.c2x - 2 * this.c1x + this.x), u = this.y + 2 * e * (this.c1y - this.y) + o * (this.c2y - 2 * this.c1y + this.y), d = this.c1x + 2 * e * (this.c2x - this.c1x) + o * (this.toX - 2 * this.c2x + this.c1x), f = this.c1y + 2 * e * (this.c2y - this.c1y) + o * (this.toY - 2 * this.c2y + this.c1y), m = s * this.x + e * this.c1x, p = s * this.y + e * this.c1y, S = s * this.c2x + e * this.toX, g = s * this.c2y + e * this.toY, b = 90 - Math.atan2(l - d, u - f) * 180 / Math.PI;\n    return {\n      x: h,\n      // x coordinate of the point\n      y: c,\n      // y coordinate of the point\n      m: {\n        x: l,\n        // x coordinate of the left anchor\n        y: u\n        // y coordinate of the left anchor\n      },\n      n: {\n        x: d,\n        // x coordinate of the right anchor\n        y: f\n        // y coordinate of the right anchor\n      },\n      start: {\n        x: m,\n        // x coordinate of the start of the curve\n        y: p\n        // y coordinate of the start of the curve\n      },\n      end: {\n        x: S,\n        //  x coordinate of the end of the curve\n        y: g\n        // y coordinate of the end of the curve\n      },\n      alpha: b\n      // degree: angle of the curve derivative at the point\n    };\n  }\n};\nconst Ce = d0, Ns = Math.PI * 2;\nfunction Sa(n, t, e, s) {\n  const i = n * s - t * e < 0 ? -1 : 1;\n  let r = n * e + t * s;\n  return r > 1 && (r = 1), r < -1 && (r = -1), i * Math.acos(r);\n}\nfunction m0(n, t, e, s, i, r, o, a, h, c) {\n  const l = c * (n - e) / 2 + h * (t - s) / 2, u = -h * (n - e) / 2 + c * (t - s) / 2, d = o * o, f = a * a, m = l * l, p = u * u;\n  let S = d * f - d * p - f * m;\n  S < 0 && (S = 0), S /= d * p + f * m, S = Math.sqrt(S) * (i === r ? -1 : 1);\n  const g = S * o / a * u, b = S * -a / o * l, x = c * g - h * b + (n + e) / 2, w = h * g + c * b + (t + s) / 2, C = (l - g) / o, _ = (u - b) / a, D = (-l - g) / o, z = (-u - b) / a, B = Sa(1, 0, C, _);\n  let G = Sa(C, _, D, z);\n  return r === 0 && G > 0 && (G -= Ns), r === 1 && G < 0 && (G += Ns), [x, w, B, G];\n}\nfunction p0(n, t) {\n  const e = 1.3333333333333333 * Math.tan(t / 4), s = Math.cos(n), i = Math.sin(n), r = Math.cos(n + t), o = Math.sin(n + t);\n  return [\n    s,\n    i,\n    s - i * e,\n    i + s * e,\n    r + o * e,\n    o - r * e,\n    r,\n    o\n  ];\n}\nfunction Oc(n, t, e, s, i, r, o, a, h) {\n  const c = Math.sin(h * Ns / 360), l = Math.cos(h * Ns / 360), u = l * (n - e) / 2 + c * (t - s) / 2, d = -c * (n - e) / 2 + l * (t - s) / 2;\n  if (u === 0 && d === 0)\n    return [];\n  if (o === 0 || a === 0)\n    return [];\n  o = Math.abs(o), a = Math.abs(a);\n  const f = u * u / (o * o) + d * d / (a * a);\n  f > 1 && (o *= Math.sqrt(f), a *= Math.sqrt(f));\n  const m = m0(n, t, e, s, i, r, o, a, c, l), p = [];\n  let S = m[2], g = m[3];\n  const b = Math.max(Math.ceil(Math.abs(g) / (Ns / 4)), 1);\n  g /= b;\n  for (let x = 0; x < b; x++)\n    p.push(p0(S, g)), S += g;\n  return p.map((x) => {\n    for (let w = 0; w < x.length; w += 2) {\n      let C = x[w + 0], _ = x[w + 1];\n      C *= o, _ *= a;\n      const D = l * C - c * _, z = c * C + l * _;\n      x[w + 0] = D + m[0], x[w + 1] = z + m[1];\n    }\n    return x;\n  });\n}\nfunction mr(n, t, e, s, i, r) {\n  return [\n    n / 3 + 2 / 3 * e,\n    t / 3 + 2 / 3 * s,\n    i / 3 + 2 / 3 * e,\n    r / 3 + 2 / 3 * s,\n    i,\n    r\n  ];\n}\nfunction ks(n, t, e, s) {\n  return [n, t, e, s, e, s];\n}\nconst bn = {\n  a: 7,\n  // A rx,ry xAxisRotate LargeArcFlag,SweepFlag x,y\n  c: 6,\n  // C c1x,c1y c2x,c2y x,y\n  s: 4,\n  // S c2x,c2y x,y\n  q: 4,\n  // Q cx,cy x,y\n  t: 2,\n  // T x,y\n  m: 2,\n  // M x,y\n  l: 2,\n  // L x,y\n  h: 1,\n  // H x\n  v: 1,\n  // V y\n  z: 0\n  // Z\n  // r: 4\n};\nclass rs {\n  static createSVGElement(t = \"path\", e) {\n    const s = document.createElementNS.call(\n      document,\n      \"http://www.w3.org/2000/svg\",\n      t\n    );\n    return e && Me(s, e), s;\n  }\n  static createSvgPath(t, e) {\n    return this.createSVGElement(\"path\", { d: t, id: e || Xs() });\n  }\n  static downloadFromSVGElement(t, e = \"shape\") {\n    return pr(\n      Vh(t),\n      `${e}.svg`\n    );\n  }\n  static downloadFromSVGString(t, e = \"shape\") {\n    return pr(Dr(t), `${e}.svg`);\n  }\n  static getSVGRawStringFromElement(t) {\n    return Gh(t);\n  }\n  // https://github.com/dy/is-svg-path\n  // isSVGPath('M0 0L10 20 20 0Z') //true\n  // isSVGPath('M00Z') //false\n  // isSVGPath('xyz') //false\n  static isSVGPath(t) {\n    return typeof t != \"string\" ? !1 : (t = t.trim(), /^[mlhvzaqtcs]\\s*[-+.0-9][^mlhvzaqtcs]+/i.test(t) && /[\\dz]$/i.test(t));\n  }\n  static SVGPathDataToD(t) {\n    return t.map((e) => {\n      if (!e[0])\n        return \"\";\n      switch (e[0].toLowerCase()) {\n        case \"a\":\n          return `${e[0]} ${e[1]},${e[2]} ${e[3]} ${e[4]},${e[5]} ${e[6]},${e[7]}`;\n        case \"c\":\n          return `${e[0]} ${e[1]},${e[2]} ${e[3]},${e[4]} ${e[5]},${e[6]}`;\n        case \"s\":\n        case \"q\":\n          return `${e[0]} ${e[1]},${e[2]} ${e[3]},${e[4]}`;\n        default:\n          return e[0] + \" \" + e.slice(1).join(\",\");\n      }\n    }).join(\" \");\n  }\n  /// parse an svg path data string to `[[command, arg1, arg2, ...], ...]`\n  static parseSVGPath(t) {\n    const e = [];\n    return rs.isSVGPath(t) && t.replace(\n      /([mlhvzaqtcs])([^mlhvzaqtcs]*)/gi,\n      (s, i, r) => {\n        let o = i.toLowerCase();\n        const a = Ir(r);\n        for (o == \"m\" && a.length > bn[o] && (e.push([\n          i,\n          ...a.splice(0, bn[o])\n        ]), o = \"l\", i = i == \"m\" ? \"l\" : \"L\"); a.length; ) {\n          if (a.length < bn[o])\n            throw new Error(\n              `parseSVGPath substring:{ ${s} } command:{ ${i} } args:{ ${a} }`\n            );\n          e.push([\n            i,\n            ...a.splice(0, bn[o])\n          ]);\n        }\n        return o == \"z\" && e.push([i]), \"\";\n      }\n    ), e;\n  }\n  /// https://github.com/jkroso/abs-svg-path\n  static absolutizeSVGPath(t) {\n    let e = 0, s = 0, i = 0, r = 0;\n    return t.map(function(o) {\n      const a = o[0], h = a.toUpperCase();\n      if (a != h)\n        switch (o[0] = h, a) {\n          case \"a\":\n            o[6] += i, o[7] += r;\n            break;\n          case \"v\":\n            o[1] += r;\n            break;\n          case \"h\":\n            o[1] += i;\n            break;\n          default:\n            for (let c = 1; c < o.length; )\n              o[c++] += i, o[c++] += r;\n        }\n      switch (h) {\n        case \"Z\":\n          i = e, r = s;\n          break;\n        case \"H\":\n          i = o[1];\n          break;\n        case \"V\":\n          r = o[1];\n          break;\n        case \"M\":\n          i = e = o[1], r = s = o[2];\n          break;\n        default:\n          i = o[o.length - 2], r = o[o.length - 1];\n      }\n      return o;\n    });\n  }\n  static relativeSVGPath(t) {\n    let e = 0, s = 0, i = 0, r = 0;\n    return t.map(function(o) {\n      const a = o[0], h = a.toLowerCase();\n      if (a != h)\n        switch (o[0] = h, a) {\n          case \"A\":\n            o[6] -= i, o[7] -= r;\n            break;\n          case \"V\":\n            o[1] -= r;\n            break;\n          case \"H\":\n            o[1] -= i;\n            break;\n          default:\n            for (let c = 1; c < o.length; )\n              o[c++] -= i, o[c++] -= r;\n        }\n      switch (h) {\n        case \"z\":\n          i = e, r = s;\n          break;\n        case \"h\":\n          i += o[1];\n          break;\n        case \"v\":\n          r += o[1];\n          break;\n        case \"m\":\n          i += o[1], r += o[2], e += o[1], s += o[2];\n          break;\n        default:\n          i += o[o.length - 2], r += o[o.length - 1];\n      }\n      return o;\n    });\n  }\n  /// 统统变为 CubicBezier\n  /// https://github.com/jkroso/normalize-svg-path\n  static normalizeSVGPath(t) {\n    const e = [];\n    let s = 0, i = 0, r = 0, o = 0, a = 0, h = 0, c = 0, l = 0, u;\n    for (let d = 0, f = t.length; d < f; d++) {\n      let m = t[d];\n      const p = m[0];\n      switch (p) {\n        case \"M\":\n          s = m[1], i = m[2];\n          break;\n        case \"A\":\n          const S = Oc(\n            r,\n            o,\n            m[6],\n            m[7],\n            m[4],\n            m[5],\n            m[1],\n            m[2],\n            m[3]\n          );\n          if (!S.length)\n            continue;\n          S.forEach((x, w) => {\n            const [C, _, D, z, B, G, V, j] = x;\n            m = [\"C\", D, z, B, G, V, j], w < S.length - 1 && e.push(m);\n          });\n          break;\n        case \"S\":\n          let g = r, b = o;\n          (u == \"C\" || u == \"S\") && (g += g - c, b += b - l), m = [\"C\", g, b, m[1], m[2], m[3], m[4]];\n          break;\n        case \"T\":\n          u == \"Q\" || u == \"T\" ? (a = r * 2 - a, h = o * 2 - h) : (a = r, h = o), m = [\"C\", ...mr(r, o, a, h, m[1], m[2])];\n          break;\n        case \"Q\":\n          a = m[1], h = m[2], m = [\"C\", ...mr(r, o, m[1], m[2], m[3], m[4])];\n          break;\n        case \"L\":\n          m = [\"C\", ...ks(r, o, m[1], m[2])];\n          break;\n        case \"H\":\n          m = [\"C\", ...ks(r, o, m[1], o)];\n          break;\n        case \"V\":\n          m = [\"C\", ...ks(r, o, r, m[1])];\n          break;\n        case \"Z\":\n          m = [\"C\", ...ks(r, o, s, i)];\n          break;\n      }\n      u = p, r = m[m.length - 2], o = m[m.length - 1], m.length > 4 ? (c = m[m.length - 4], l = m[m.length - 3]) : (c = r, l = o), e.push(m);\n    }\n    return e;\n  }\n  /// http://schepers.cc/getting-to-the-point\n  /// Catmull-Rom curves : `R x1,y1 x2,y2 x3,y3`\n  static catmullRom2bezier(t) {\n    const e = [];\n    for (let s = 0, i = t.length; i - 2 > s; s += 2) {\n      let r;\n      s == 0 ? r = [\n        { x: t[s], y: t[s + 1] },\n        { x: t[s], y: t[s + 1] },\n        { x: t[s + 2], y: t[s + 3] },\n        { x: t[s + 4], y: t[s + 5] }\n      ] : i - 4 == s ? r = [\n        { x: t[s - 2], y: t[s - 1] },\n        { x: t[s], y: t[s + 1] },\n        { x: t[s + 2], y: t[s + 3] },\n        { x: t[s + 2], y: t[s + 3] }\n      ] : r = [\n        { x: t[s - 2], y: t[s - 1] },\n        { x: t[s], y: t[s + 1] },\n        { x: t[s + 2], y: t[s + 3] },\n        { x: t[s + 4], y: t[s + 5] }\n      ];\n      const o = [\n        { x: r[1].x, y: r[1].y },\n        {\n          x: (-r[0].x + 6 * r[1].x + r[2].x) / 6,\n          y: (-r[0].y + 6 * r[1].y + r[2].y) / 6\n        },\n        {\n          x: (r[1].x + 6 * r[2].x - r[3].x) / 6,\n          y: (r[1].y + 6 * r[2].y - r[3].y) / 6\n        },\n        { x: r[2].x, y: r[2].y }\n      ];\n      e.push([\"C\", o[1].x, o[1].y, o[2].x, o[2].y, o[3].x, o[3].y]);\n    }\n    return e;\n  }\n  // Convert 'Z', 'V' and 'H' segments to 'L' segments\n  static zvhToLSVGPath(t) {\n    const e = [];\n    let s = [\"L\", 0, 0], i;\n    for (let r = 0, o = t.length; r < o; r++) {\n      const a = t[r];\n      switch (a[0]) {\n        case \"M\":\n          s = [\"L\", a[1], a[2]], e.push(a);\n          break;\n        case \"Z\":\n          e.push(s);\n          break;\n        case \"H\":\n          i = e[e.length - 1] || [\"L\", 0, 0], e.push([\n            \"L\",\n            a[1],\n            i[i.length - 1]\n          ]);\n          break;\n        case \"V\":\n          i = e[e.length - 1] || [\"L\", 0, 0], e.push([\n            \"L\",\n            i[i.length - 2],\n            a[1]\n          ]);\n          break;\n        default:\n          e.push(a);\n      }\n    }\n    return e;\n  }\n  // Expand shorthand curve commands to full versions; mutates the path in place for efficiency\n  // Requires commands have already been converted to absolute versions\n  static longhandSVGPath(t) {\n    const e = {\n      S: { to: \"C\", x: 3 },\n      T: { to: \"Q\", x: 1 }\n    };\n    let s, i = 0, r = 0;\n    for (let o = 0, a = t.length; o < a; o++) {\n      const h = t[o], c = e[h[0]];\n      c && (h[0] = c.to, s && (s[0] === c.to ? (i = 2 * Number(s[c.x + 2]) - Number(s[c.x]), r = 2 * Number(s[c.x + 3]) - Number(s[c.x + 1])) : (i = Number(s[s.length - 2]), r = Number(s[s.length - 1]))), h.splice(1, 0, i, r)), s = h;\n    }\n    return t;\n  }\n}\nlet g0 = class me {\n  /// cX cY 为相对于自身 (0,0) 点的相对值\n  cX;\n  cY;\n  x;\n  y;\n  degree;\n  scalarX;\n  scalarY;\n  /// 绝对值\n  startPathX = 0;\n  startPathY = 0;\n  prevPathX = 0;\n  prevPathY = 0;\n  normalizedLines = [];\n  // d = \"M0,0\"\n  // d = [['C',1,2,3,4,5,6]]\n  constructor(t) {\n    this.cX = 0, this.cY = 0, this.x = t?.x || 0, this.y = t?.y || 0, typeof t?.centerX == \"number\" && typeof t?.centerY == \"number\" && (this.cX = t.centerX - this.x, this.cY = t.centerY - this.y), this.degree = t?.degree || 0, this.scalarX = 1, this.scalarY = 1, t?.scalar !== void 0 && (this.scalarX = t.scalar, this.scalarY = t.scalar), t?.scalarX !== void 0 && (this.scalarX = t.scalarX), t?.scalarY !== void 0 && (this.scalarY = t.scalarY), this.reset(t?.d, t?.originMatrix);\n  }\n  reset(t, e) {\n    typeof t == \"string\" ? this.resetFromSVGPathData(rs.parseSVGPath(t), e) : t instanceof me ? this.resetFromSVGPathData(t.toSVGPathData(), e) : this.resetFromSVGPathData(t || [], e);\n  }\n  resetFromSVGPathData(t, e) {\n    this.normalizedLines = [];\n    const s = rs.normalizeSVGPath(\n      rs.absolutizeSVGPath(t)\n    );\n    this.prevPathX = this.startPathX = 0, this.prevPathY = this.startPathY = 0;\n    let i = !1;\n    for (let r = 0, o = s.length; r < o; r++) {\n      const a = s[r];\n      if (a[0] == \"M\") {\n        i || (i = !0, this.startPathX = a[1], this.startPathY = a[2]), this.prevPathX = a[1], this.prevPathY = a[2];\n        continue;\n      }\n      this.appendLine(\n        new Ce({\n          c1x: a[1],\n          c1y: a[2],\n          c2x: a[3],\n          c2y: a[4],\n          toX: a[5],\n          toY: a[6]\n        })\n      );\n    }\n    e && ({ x: this.startPathX, y: this.startPathY } = e.transformPoint(\n      {\n        x: this.startPathX,\n        y: this.startPathY\n      }\n    ), { x: this.prevPathX, y: this.prevPathY } = e.transformPoint({\n      x: this.prevPathX,\n      y: this.prevPathY\n    }), this.normalizedLines.forEach((r) => {\n      ({ x: r.x, y: r.y } = e.transformPoint({ x: r.x, y: r.y })), { x: r.c1x, y: r.c1y } = e.transformPoint({\n        x: r.c1x,\n        y: r.c1y\n      }), { x: r.c2x, y: r.c2y } = e.transformPoint({\n        x: r.c2x,\n        y: r.c2y\n      }), { x: r.toX, y: r.toY } = e.transformPoint({\n        x: r.toX,\n        y: r.toY\n      });\n    }));\n  }\n  static fromPolymorphPoints(t) {\n    const e = new me();\n    e.prevPathX = e.startPathX = t[0] || 0, e.prevPathY = e.startPathY = t[1] || 0;\n    for (let s = 2, i = t.length; s + 5 < i; s += 6)\n      e.appendLine(\n        new Ce({\n          c1x: t[s],\n          c1y: t[s + 1],\n          c2x: t[s + 2],\n          c2y: t[s + 3],\n          toX: t[s + 4],\n          toY: t[s + 5]\n        })\n      );\n    return e;\n  }\n  static fromLines(t) {\n    const e = new me();\n    e.prevPathX = e.startPathX = t[0].x || 0, e.prevPathY = e.startPathY = t[0].y || 0;\n    for (let s = 0, i = t.length; s < i; s++)\n      e.appendLine(t[s]);\n    return e;\n  }\n  /// 涉及 this.prevPathX + this.prevPathY\n  appendLine(t) {\n    if (t instanceof l0) {\n      Oc(\n        this.prevPathX,\n        this.prevPathY,\n        t.toX,\n        t.toY,\n        t.largeArcFlag,\n        t.sweepFlag,\n        t.rx,\n        t.ry,\n        t.xAxisRotate\n      ).forEach((c) => {\n        const [l, u, d, f, m, p, S, g] = c;\n        this.normalizedLines.push(\n          new Ce({\n            x: this.prevPathX,\n            y: this.prevPathY,\n            c1x: d,\n            c1y: f,\n            c2x: m,\n            c2y: p,\n            toX: S,\n            toY: g\n          })\n        ), this.prevPathX = S, this.prevPathY = g;\n      });\n      return;\n    }\n    let e, s, i, r, o, a;\n    t instanceof Ce ? (e = t.c1x, s = t.c1y, i = t.c2x, r = t.c2y, o = t.toX, a = t.toY) : t instanceof f0 ? [e, s, i, r, o, a] = mr(\n      this.prevPathX,\n      this.prevPathY,\n      t.cx,\n      t.cy,\n      t.toX,\n      t.toY\n    ) : [e, s, i, r, o, a] = ks(\n      this.prevPathX,\n      this.prevPathY,\n      t.toX,\n      t.toY\n    ), this.normalizedLines.push(\n      new Ce({\n        x: this.prevPathX,\n        y: this.prevPathY,\n        c1x: e,\n        c1y: s,\n        c2x: i,\n        c2y: r,\n        toX: o,\n        toY: a\n      })\n    ), this.prevPathX = o, this.prevPathY = a;\n  }\n  /// 绝对值\n  toSVGPathData() {\n    const { startPathX: t, startPathY: e, normalizedLines: s } = this.updateTransform(), i = [];\n    i.push([\"M\", t, e]);\n    for (let r = 0, o = s.length; r < o; r++)\n      i.push(...s[r].toSVGPathData());\n    return i;\n  }\n  toSVGPathD() {\n    return rs.SVGPathDataToD(this.toSVGPathData());\n  }\n  /// PathD 自己管理 canvas transform\n  toCanvasContext(t) {\n    const { startPathX: e, startPathY: s, normalizedLines: i } = this.updateTransform();\n    t.beginPath(), t.moveTo(e, s), i.forEach((r) => {\n      r.toCanvasContext(t);\n    });\n  }\n  /// 绝对值\n  getBoundingClientRect() {\n    const { normalizedLines: t } = this.updateTransform(), e = [], s = [];\n    if (t.forEach((h) => {\n      const c = h.getBoundingClientRect();\n      e.push(c.x, c.x + c.width), s.push(c.y, c.y + c.height);\n    }), e.length == 0 || s.length == 0)\n      return { x: 0, y: 0, width: 0, height: 0 };\n    const i = Math.min.apply(0, e), r = Math.min.apply(0, s), o = Math.max.apply(0, e), a = Math.max.apply(0, s);\n    return {\n      x: i,\n      y: r,\n      width: o - i,\n      height: a - r\n    };\n  }\n  update(t) {\n    this.cX = typeof t.cX == \"number\" ? t.cX : this.cX, this.cY = typeof t.cY == \"number\" ? t.cY : this.cY, this.x = t.x, this.y = t.y, this.degree = t.degree, this.scalarX = t.scalarX, this.scalarY = t.scalarY;\n  }\n  updateTransform() {\n    const t = new _t();\n    if (t.translate(this.x + this.cX, this.y + this.cY), t.rotate(this.degree), t.scale(this.scalarX, this.scalarY), t.translate(-this.cX, -this.cY), t.isIdentity)\n      return {\n        startPathX: this.startPathX,\n        startPathY: this.startPathY,\n        normalizedLines: this.normalizedLines\n      };\n    {\n      let e = this.startPathX, s = this.startPathY;\n      ({ x: e, y: s } = t.transformPoint({\n        x: e,\n        y: s\n      }));\n      const i = [];\n      return this.normalizedLines.forEach((r) => {\n        let o = r.x, a = r.y, h = r.c1x, c = r.c1y, l = r.c2x, u = r.c2y, d = r.toX, f = r.toY;\n        ({ x: o, y: a } = t.transformPoint({ x: o, y: a })), { x: h, y: c } = t.transformPoint({ x: h, y: c }), { x: l, y: u } = t.transformPoint({ x: l, y: u }), { x: d, y: f } = t.transformPoint({ x: d, y: f }), i.push(\n          new Ce({ x: o, y: a, c1x: h, c1y: c, c2x: l, c2y: u, toX: d, toY: f })\n        );\n      }), {\n        startPathX: e,\n        startPathY: s,\n        normalizedLines: i\n      };\n    }\n  }\n  /// returns length in pixels\n  getTotalLength() {\n    const { normalizedLines: t } = this.updateTransform();\n    return t.reduce((e, s) => e += s.length(), 0);\n  }\n  getPointAtLength(t) {\n    const { normalizedLines: e } = this.updateTransform();\n    let s = 0;\n    const i = e.length;\n    for (let r = 0; r < i; r++) {\n      const o = e[r], a = o.length();\n      if (s + a >= t)\n        return o.getPointAtSegmentLength(t - s);\n      s += a;\n    }\n    return e[i - 1].getPointAtSegmentLength(1);\n  }\n  /// 与 getPointAtLength 类似\n  /// t (0.0 to 1.0) : The fraction of the overall duration of the path\n  interpolate(t) {\n    const { startPathX: e, startPathY: s, normalizedLines: i } = this.updateTransform(), r = i.length;\n    if (r === 0)\n      return { x: e, y: s };\n    if (r === 1)\n      return i[0].interpolate(t);\n    {\n      let o = t * r, a = i[0];\n      if (o--, o > 1)\n        for (let h = 1; h < r && (a = i[h], o > 1); h++)\n          o -= 1;\n      return a.interpolate(o);\n    }\n  }\n  /// from | to  : 0 ~ 1\n  getSubpath(t, e) {\n    if (this.getTotalLength() - e < 1e-6)\n      return this.getSubpathsAtLength(this, t);\n    {\n      const s = this.getSubpathsAtLength(this, e, 1);\n      return t ? this.getSubpathsAtLength(s, t) : s;\n    }\n  }\n  getSubpathsAtLength(t, e, s) {\n    const { startPathX: i, startPathY: r, normalizedLines: o } = t.updateTransform();\n    let a = null, h = 0;\n    const c = new me();\n    c.prevPathX = c.startPathX = i, c.prevPathY = c.startPathY = r;\n    for (let l = 0, u = o.length; l < u; l++) {\n      const d = o[l], f = d.length();\n      if (h + f > e && !a) {\n        const m = d.getPointAtSegmentLength(e - h);\n        if (c.appendLine(\n          new Ce({\n            c1x: m.start.x,\n            c1y: m.start.y,\n            c2x: m.m.x,\n            c2y: m.m.y,\n            toX: m.x,\n            toY: m.y\n          })\n        ), s)\n          return c;\n        a = c, c.appendLine(\n          new Ce({\n            c1x: m.n.x,\n            c1y: m.n.y,\n            c2x: m.end.x,\n            c2y: m.end.y,\n            toX: d.x,\n            toY: d.y\n          })\n        ), h += f;\n        continue;\n      }\n      h += f, c.appendLine(d);\n    }\n    return c;\n  }\n  /// drag along path\n  closestPoint(t, e) {\n    const s = this.getTotalLength();\n    let i = { x: t, y: e }, r = 0, o = 1 / 0, a = 8;\n    for (let c = 0; c <= s; c += a) {\n      const l = this.getPointAtLength(c), u = Math.pow(\n        Ge(l.x, l.y, t, e),\n        2\n      );\n      u < o && (i = l, r = c, o = u);\n    }\n    for (a /= 2; a > 0.5; ) {\n      const c = r - a, l = this.getPointAtLength(c), u = Math.pow(\n        Ge(l.x, l.y, t, e),\n        2\n      ), d = r + a, f = this.getPointAtLength(d), m = Math.pow(\n        Ge(f.x, f.y, t, e),\n        2\n      );\n      c >= 0 && u < o ? (i = l, r = c, o = u) : d <= s && m < o ? (i = f, r = d, o = m) : a /= 2;\n    }\n    const h = this.getPointAtLength(\n      r + (r === s ? -0.1 : 0.1)\n    );\n    return {\n      point: i,\n      rotation: r >= s ? qt(h.x, h.y, i.x, i.y) : qt(i.x, i.y, h.x, h.y),\n      distance: Math.sqrt(o)\n    };\n  }\n  get polymorphPoints() {\n    const { startPathX: t, startPathY: e, normalizedLines: s } = this.updateTransform();\n    return [t, e].concat(\n      s.reduce(\n        (i, r) => i.concat([r.c1x, r.c1y, r.c2x, r.c2y, r.toX, r.toY]),\n        []\n      )\n    );\n  }\n  perimeterPoints() {\n    const t = this.polymorphPoints, e = t.length;\n    let s = t[e - 2], i = t[e - 1], r = 0;\n    for (let o = 0; o < e; o += 6)\n      r += Ge(t[o], t[o + 1], s, i), s = t[o], i = t[o + 1];\n    return Math.floor(r);\n  }\n  expendFill(t) {\n    const e = this.polymorphPoints, s = e.length;\n    let i = t - s;\n    const r = Math.ceil(t / s), o = [];\n    o.push([\"M\", e[0], e[1]]);\n    let a = 2;\n    for (; a + 5 <= s - 1; ) {\n      const h = e[a++], c = e[a++], l = e[a++], u = e[a++], d = e[a++], f = e[a++];\n      o.push([\"C\", h, c, l, u, d, f]);\n      let m = 0;\n      for (; m < r && i > 0; )\n        o.push([\"C\", d, f, d, f, d, f]), i -= 6, m++;\n    }\n    return o;\n  }\n  static mixPoints(t, e, s) {\n    const i = t.length, r = new Array(i);\n    for (let o = 0; o < i; o++)\n      r[o] = Y(t[o] + (e[o] - t[o]) * s, 6);\n    return r;\n  }\n  /// offset : 0 ~ 1\n  static getPathInterpolator(t, e) {\n    return (s) => Math.abs(s - 0) < Number.EPSILON ? t : Math.abs(s - 1) < Number.EPSILON ? e : me.fromPolymorphPoints(\n      me.mixPoints(\n        new me({ d: t }).polymorphPoints,\n        new me({ d: e }).polymorphPoints,\n        s\n      )\n    ).toSVGPathData();\n  }\n}, y0 = class extends Qn {\n  // [index: string | number | symbol]: any;\n  id;\n  originD;\n  originMatrix;\n  independentTransformInGroup;\n  forceCXY = !1;\n  /// 相对于自身 (0,0) 点的相对值\n  cX;\n  cY;\n  x;\n  y;\n  degree;\n  scalarX;\n  scalarY;\n  diffXInGroup;\n  diffYInGroup;\n  diffDegreeInGroup;\n  diffScalarXInGroup;\n  diffScalarYInGroup;\n  vx;\n  vy;\n  ax;\n  ay;\n  mass;\n  attrs;\n  enableDrag;\n  alongPath;\n  isDragging = !1;\n  isMouseIn = !1;\n  targetToAfterDragFree;\n  followMouse;\n  strokeArmyAnts;\n  strokeArmyAntsOffset = 0;\n  strokeDashTotalLength = 0;\n  isShow = !0;\n  el;\n  pathd;\n  usePathDtoCanvasContext = !1;\n  parent;\n  shapes = [];\n  constructor(t) {\n    if (super(), this.id = Xs(), t?.d && (this.originD = t?.d), t?.originMatrix && (this.originMatrix = t.originMatrix), this.independentTransformInGroup = typeof t?.independentTransformInGroup == \"boolean\" ? t.independentTransformInGroup : !1, this.x = t?.x || 0, this.y = t?.y || 0, this.cX = 0, this.cY = 0, typeof t?.centerX == \"number\" && typeof t?.centerY == \"number\" && this.forceSetCXY(t.centerX - this.x, t.centerY - this.y), this.degree = t?.degree || 0, this.scalarX = 1, this.scalarY = 1, t?.scalar !== void 0 && (this.scalarX = t.scalar, this.scalarY = t.scalar), t?.scalarX !== void 0 && (this.scalarX = t.scalarX), t?.scalarY !== void 0 && (this.scalarY = t.scalarY), this.diffXInGroup = t?.diffXInGroup || 0, this.diffYInGroup = t?.diffYInGroup || 0, this.diffDegreeInGroup = t?.diffDegreeInGroup || 0, this.diffScalarXInGroup = t?.diffScalarXInGroup || 1, this.diffScalarYInGroup = t?.diffScalarYInGroup || 1, this.vx = t?.vx || 0, this.vy = t?.vy || 0, this.ax = t?.ax || 0, this.ay = t?.ay || 0, this.mass = t?.mass || 1, this.attrs = {\n      // \"paint-order\": \"markers stroke fill\", // 先 stroke 再 fill\n      // \"paint-order\": \"fill stroke markers\", // default\n      stroke: \"none\",\n      fill: \"none\"\n      // \"pointerEvents\": \"none\",\n    }, t?.attrs && this.setAttr(t?.attrs), this.enableDrag = t?.enableDrag || !1, this.alongPath = t?.alongPath, this.targetToAfterDragFree = t?.targetToAfterDragFree, this.followMouse = t?.followMouse || !1, this.isShow = typeof t?.isShow == \"boolean\" ? t?.isShow : !0, this.strokeArmyAnts = t?.strokeArmyAnts || !1, this.strokeArmyAnts) {\n      const s = this.getAttr(\"stroke-dasharray\", \"4 4\");\n      this.setAttr(\"stroke-dasharray\", s), this.strokeDashTotalLength = Ir(\n        s\n      ).reduce((i, r) => i + r, 0);\n    }\n    return Yr(this);\n  }\n  /// 强制设置 坐标系原点\n  forceSetCXY(t, e) {\n    this.cX = t, this.cY = e, this.forceCXY = !0;\n  }\n  /// 子类可覆盖\n  shapeInit() {\n  }\n  /// 统一初始化 pathd\n  initPathD() {\n    if (!this.pathd) {\n      if (this.pathd = new g0(), Te(() => {\n        this.pathd?.reset(\n          this.originD || this.toSVGPathData(),\n          this.originMatrix\n        );\n      }), this.pathd && !this.forceCXY) {\n        const t = this.shapes.length == 0 ? this.pathd.getBoundingClientRect() : this.getBoundingClientRect();\n        t && (this.pathd.cX = this.cX = t.x + t.width / 2 - this.pathd.x, this.pathd.cY = this.cY = t.y + t.height / 2 - this.pathd.y);\n      }\n      this.shapeInit();\n    }\n    return this.pathd;\n  }\n  frameStart(t) {\n  }\n  frameUpdate(t, e) {\n    this.pathd = this.initPathD(), this.pathd.update(this), this.strokeArmyAnts && (this.isMouseIn || (this.setAttr(\"stroke-dashoffset\", String(this.strokeArmyAntsOffset++)), this.strokeArmyAntsOffset > this.strokeDashTotalLength && (this.strokeArmyAntsOffset = 0)));\n  }\n  frameEnd(t) {\n  }\n  /// Shape SVG 使用 PathD transform 系统，使用相对值\n  /// 子类一定要覆盖 toSVGPathData ！\n  /// 唯一例外是 group ，可以不覆盖！\n  /// translate() rotate() scale() 等 transfrom 交给 PathD 处理， YZSVG 不处理\n  /// 属性值自己保存\n  toSVGPathData() {\n    return [];\n  }\n  /// 子类不要覆盖 toSVGPathD ！\n  /// 供 YZSVG 调用\n  toSVGPathD() {\n    return this.pathd?.toSVGPathD() || \"\";\n  }\n  /// Shape Canvas 使用 PathD transform 系统 或 原生canvas系统\n  /// 如果子类没有覆盖 toCanvasContext , 则默认使用 PathD 的 toCanvasContext\n  ///   - translate() rotate() scale() 等 transfrom 交给 PathD 处理，YZCanvas 不处理\n  ///   - canvas.ctx.createLinearGradient 使用绝对值\n  /// 如果子类覆盖 toCanvasContext , 则使用 原生canvas系统\n  ///   - translate() rotate() scale() 等 transfrom 交给 YZCanvas 处理\n  ///   - canvas.ctx.createLinearGradient 使用相对值\n  /// 不包含 fill() 及 stroke()\n  /// 属性值自己保存\n  toCanvasContext(t) {\n    this.usePathDtoCanvasContext = !0, this.pathd?.toCanvasContext(t);\n  }\n  /// 目前 仅 Text 无法转换为 PathD, 也就无 getBoundingClientRect\n  /// 子类可覆盖\n  /// 绝对值\n  getBoundingClientRect() {\n    return this.pathd?.getBoundingClientRect() || null;\n  }\n  /// 绝对值\n  get center() {\n    const t = this.getBoundingClientRect(), e = { x: this.x, y: this.y };\n    return t && (e.x = t.x + t.width / 2, e.y = t.y + t.height / 2), e;\n  }\n  trim() {\n    if (this.parent)\n      return;\n    const t = this.getBoundingClientRect();\n    if (!t)\n      return;\n    this.shapes.forEach((s) => {\n      const i = s.originMatrix ? s.originMatrix.clone() : new _t();\n      i.translate(-t.x + s.x, -t.y + s.y), s.originMatrix = i;\n    });\n    const e = this.originMatrix ? this.originMatrix.clone() : new _t();\n    e.translate(-t.x + this.x, -t.y + this.y), this.originMatrix = e;\n  }\n  isPointInPath(t, e, s) {\n    if (s instanceof _a)\n      return s.isPointInPath(new Path2D(this.toSVGPathD()), t, e);\n    let i;\n    try {\n      i = new SVGPoint(t, e);\n    } catch {\n      i = s.createSVGPoint(), i.x = t, i.y = e;\n    }\n    if (this.el instanceof SVGGeometryElement)\n      return this.el.isPointInFill(i);\n    {\n      const r = this.getBoundingClientRect();\n      if (r)\n        return t >= r.x && t <= r.x + r.width && e >= r.y && e <= r.y + r.height;\n    }\n    return !1;\n  }\n  isPointInStroke(t, e, s) {\n    if (s instanceof _a)\n      return s.isPointInStroke(new Path2D(this.toSVGPathD()), t, e);\n    let i;\n    try {\n      i = new SVGPoint(t, e);\n    } catch {\n      i = s.createSVGPoint(), i.x = t, i.y = e;\n    }\n    return this.el instanceof SVGGeometryElement ? this.el.isPointInStroke(i) : !1;\n  }\n  clone() {\n    return nh(this).copy(this);\n  }\n  copy(t) {\n    return this.id = t.id, this.originD = t.originD, this.originMatrix = t.originMatrix, this.independentTransformInGroup = t.independentTransformInGroup, this.x = t.x, this.y = t.y, this.cX = t.cX, this.cY = t.cY, this.degree = t.degree, this.scalarX = t.scalarX, this.scalarY = t.scalarY, this.diffXInGroup = t.diffXInGroup, this.diffYInGroup = t.diffYInGroup, this.diffDegreeInGroup = t.diffDegreeInGroup, this.diffScalarXInGroup = t.diffScalarXInGroup, this.diffScalarYInGroup = t.diffScalarYInGroup, this.vx = t.vx, this.vy = t.vy, this.ax = t.ax, this.ay = t.ay, this.mass = t.mass, this.attrs = {\n      ...t.attrs\n    }, this.enableDrag = t.enableDrag, this.alongPath = t.alongPath, this.targetToAfterDragFree = t.targetToAfterDragFree, this.followMouse = t.followMouse, this.isShow = t.isShow, this.strokeArmyAnts = t.strokeArmyAnts, this.strokeDashTotalLength = t.strokeDashTotalLength, this;\n  }\n  save() {\n  }\n  restore() {\n  }\n  setAttr(t, e) {\n    typeof t != \"string\" ? Object.assign(\n      this.attrs,\n      Object.fromEntries(\n        Object.entries(t).map(([s, i]) => [pt(s), i])\n      )\n    ) : e && (this.attrs[pt(t)] = e);\n  }\n  getAttr(t, e) {\n    return this.attrs[t] || this.attrs[pt(t)] || e;\n  }\n  getAttrs() {\n    return this.attrs;\n  }\n  hasAttr(t) {\n    return !!this.attrs[t] || !!this.attrs[pt(t)];\n  }\n  distance(t) {\n    return Ge(this.x, this.y, t.x, t.y);\n  }\n  rotateTo(t) {\n    this.degree = wt(qt(this.x, this.y, t.x, t.y));\n  }\n  followTo(t, e = 3) {\n    this.rotateTo(t);\n    const { dx: s, dy: i } = He(q(this.degree), e);\n    this.vx = s, this.vy = i, this.run();\n  }\n  followAccelerationTo(t, e = 0.05) {\n    this.rotateTo(t);\n    const { dx: s, dy: i } = He(q(this.degree), e);\n    this.ax = s, this.ay = i, this.run();\n  }\n  /// 碰撞检测\n  checkCollision(t) {\n  }\n  /// 回弹\n  checkWall(t) {\n  }\n  /// 物体之间引力\n  gravitateTo(t) {\n    const e = t.x - this.x, s = t.y - this.y, i = e * e + s * s, r = Math.sqrt(i), o = this.mass * t.mass / i, a = o * e / r, h = o * s / r;\n    this.vx += a / this.mass, this.vy += h / this.mass, t.vx -= a / t.mass, t.vy -= h / t.mass;\n  }\n  run(t) {\n    this.vx += this.ax, this.vy += this.ay;\n    const e = Qt(t?.gravity, 0);\n    this.vy += e;\n    const s = Qt(t?.friction, 1);\n    this.vx *= s, this.vy *= s, this.x += this.vx, this.y += this.vy;\n  }\n  runEaseTo(t, e) {\n    const s = Qt(e?.easing, 0.05), i = t.x - this.cX - this.x, r = t.y - this.cY - this.y;\n    this.vx = i * s, this.vy = r * s, this.run(e);\n  }\n  runSpringTo(t, e) {\n    const s = Qt(e?.spring, 0.03);\n    (Array.isArray(t) ? t : [t]).forEach((i) => {\n      const r = i.x - this.cX - this.x, o = i.y - this.cY - this.y, a = r * s, h = o * s;\n      this.vx += a, this.vy += h;\n    }), this.run({ friction: 0.9, ...e });\n  }\n  springMassTo(t, e) {\n    const s = Qt(e?.springLength, 100), i = Qt(e?.spring, 1e-4), r = t.x - this.x, o = t.y - this.y, a = Math.sqrt(r * r + o * o);\n    if (a < s) {\n      const h = r * i, c = o * i;\n      return this.vx += h / this.mass, this.vy += c / this.mass, t.vx -= h / t.mass, t.vy -= c / t.mass, 1 - a / s;\n    }\n    return 0;\n  }\n  getTotalLength() {\n    return this.initPathD().getTotalLength();\n  }\n  interpolate(t) {\n    return this.initPathD().interpolate(t);\n  }\n  getPointAtLength(t) {\n    return this.initPathD().getPointAtLength(t);\n  }\n  trailPath(t, e = 0) {\n    const s = this.getTotalLength();\n    return t.originD = this.initPathD().getSubpath(0, e * s), this.getPointAtLength(e * s);\n  }\n  strokeDashTween(t = 1e3, e) {\n    const s = this.initPathD(), i = Y(s.getTotalLength(), 0);\n    this.setAttr({\n      strokeDasharray: `${i} ${i}`,\n      strokeDashoffset: `${i}`\n    });\n    const r = e?.onUpdate, o = new li({ frameDuration: t });\n    o.addTween(\n      { offset: i },\n      { offset: 0 },\n      Object.assign(e || {}, {\n        onUpdate: (a, h) => {\n          this.setAttr(\"strokeDashoffset\", \"\" + Y(a.offset, 2)), r?.(a, h);\n        }\n      })\n    ), o.play();\n  }\n};\nclass x0 extends y0 {\n  x;\n  y;\n  z;\n  // public w: number; // perspective\n  fl;\n  vpX;\n  vpY;\n  cX;\n  cY;\n  cZ;\n  radius;\n  constructor(t) {\n    super(t), this.x = t?.x || 0, this.y = t?.y || 0, this.z = t?.z || 0, this.fl = t?.fl || 250, this.vpX = t?.vpX || 0, this.vpY = t?.vpY || 0, this.cX = t?.cX || 0, this.cY = t?.cY || 0, this.cZ = t?.cZ || 0, this.radius = t?.radius || 0;\n  }\n  toSVGPathData() {\n    return this.radius ? [\n      [\"M\", this.getScreenX(), this.getScreenY() - this.radius],\n      [\"a\", this.radius, this.radius, 0, 1, 1, 0, 2 * this.radius],\n      [\"a\", this.radius, this.radius, 0, 1, 1, 0, -2 * this.radius],\n      [\"z\"]\n    ] : [[\"M\", this.getScreenX(), this.getScreenY()]];\n  }\n  toCanvasContext(t) {\n    t.beginPath(), t.arc(0, 0, this.radius, 0, Math.PI * 2, !0), t.closePath();\n  }\n  setVanishingPoint(t, e) {\n    this.vpX = t, this.vpY = e;\n  }\n  setCenter(t, e, s) {\n    this.cX = t, this.cY = e, this.cZ = s;\n  }\n  rotateX(t) {\n    ({ x: this.y, y: this.z } = oe(q(t), this.y, this.z));\n  }\n  rotateY(t) {\n    ({ x: this.x, y: this.z } = oe(q(t), this.x, this.z));\n  }\n  rotateZ(t) {\n    ({ x: this.x, y: this.y } = oe(q(t), this.x, this.y));\n  }\n  getScreenX() {\n    const t = this.fl / (this.fl + this.z + this.cZ);\n    return this.vpX + (this.cX + this.x) * t;\n  }\n  getScreenY() {\n    const t = this.fl / (this.fl + this.z + this.cZ);\n    return this.vpY + (this.cY + this.y) * t;\n  }\n  eq(t) {\n    return this.x === t.x && this.y === t.y && this.z === t.z && this.radius === t.radius && this.mass === t.mass;\n  }\n  length() {\n    return $s(this.x, this.y, this.z);\n  }\n  distance(t) {\n    const e = t.x - this.x, s = t.y - this.y, i = t.z - this.z;\n    return Math.sqrt(e * e + s * s + i * i);\n  }\n  scalar(t) {\n    return this.x *= t, this.y *= t, this.z *= t, this;\n  }\n  normalize(t = 1) {\n    const e = this.length();\n    if (e) {\n      const s = t / e;\n      this.scalar(s);\n    }\n    return this;\n  }\n  clamp(t) {\n    const e = this.length();\n    return e && e > t && this.scalar(t / e), this;\n  }\n  cross(t) {\n    const e = this.x, s = this.y, i = this.z;\n    return {\n      x: s * t.z - i * t.y,\n      y: i * t.x - e * t.z,\n      z: e * t.y - s * t.x\n    };\n  }\n  multiply(t) {\n    return {\n      x: this.x * t.x,\n      y: this.y * t.y,\n      z: this.z * t.z\n    };\n  }\n  div(t) {\n    return {\n      x: this.x / t.x,\n      y: this.y / t.y,\n      z: this.z / t.z\n    };\n  }\n  add(t) {\n    return {\n      x: this.x + t.x,\n      y: this.y + t.y,\n      z: this.z + t.z\n    };\n  }\n  sub(t) {\n    return {\n      x: this.x - t.x,\n      y: this.y - t.y,\n      z: this.z - t.z\n    };\n  }\n  dot(t) {\n    return this.x * t.x + this.y * t.y + this.z * t.z;\n  }\n  reflect(t) {\n    const e = this.dot(t);\n    return {\n      x: this.x - 2 * e * t.x,\n      y: this.y - 2 * e * t.y,\n      z: this.z - 2 * e * t.z\n    };\n  }\n}\nconst vn = x0, _n = 2e3, Ca = 2001, Ea = [1, 0, 0, 1], Pa = [1, 0, 0, 1, 0, 0], Ta = [1, 0, 0, 0, 1, 0, 0, 0, 1], Ma = [\n  1,\n  0,\n  0,\n  0,\n  0,\n  1,\n  0,\n  0,\n  0,\n  0,\n  1,\n  0,\n  0,\n  0,\n  0,\n  1\n];\nclass zc {\n  /// 按列顺序\n  value;\n  constructor(t = Ea) {\n    this.value = Array.from(t);\n  }\n  get m11() {\n    return this.value[0];\n  }\n  get m12() {\n    return this.value[1];\n  }\n  get m21() {\n    return this.value[2];\n  }\n  get m22() {\n    return this.value[3];\n  }\n  set m11(t) {\n    this.value[0] = t;\n  }\n  set m12(t) {\n    this.value[1] = t;\n  }\n  set m21(t) {\n    this.value[2] = t;\n  }\n  set m22(t) {\n    this.value[3] = t;\n  }\n  /// 按行顺序\n  set(t = 1, e = 0, s = 0, i = 1) {\n    return this.m11 = t, this.m21 = e, this.m12 = s, this.m22 = i, this;\n  }\n  identity() {\n    return this.value = Array.from(Ea), this;\n  }\n  get isIdentity() {\n    return this.m11 == 1 && this.m12 == 0 && this.m21 == 0 && this.m22 == 1;\n  }\n  copy(t) {\n    return this.m11 = t.m11, this.m12 = t.m12, this.m21 = t.m21, this.m22 = t.m22, this;\n  }\n  clone() {\n    return new zc(this.value);\n  }\n  fromArray(t, e = 0) {\n    for (let s = 0; s < 4; s++)\n      this.value[s] = t[s + e];\n    return this;\n  }\n  toArray(t = [], e = 0) {\n    return t[e] = this.m11, t[e + 1] = this.m12, t[e + 2] = this.m21, t[e + 3] = this.m22, t;\n  }\n  multiplyMatrices(t, e) {\n    const s = t.value, i = e.value, r = this.value, o = s[0], a = s[2], h = s[1], c = s[3], l = i[0], u = i[2], d = i[1], f = i[3];\n    return r[0] = o * l + a * d, r[2] = o * u + a * f, r[1] = h * l + c * d, r[3] = h * u + c * f, this;\n  }\n  multiply(t) {\n    return this.multiplyMatrices(this, t);\n  }\n  premultiply(t) {\n    return this.multiplyMatrices(t, this);\n  }\n  multiplyScalar(t) {\n    return this.m11 *= t, this.m12 *= t, this.m21 *= t, this.m22 *= t, this;\n  }\n  /// 行列式\n  determinant() {\n    return this.m11 * this.m22 - this.m21 * this.m12;\n  }\n}\nclass en {\n  /// 按列顺序\n  value;\n  constructor(t = Ta) {\n    this.value = Array.from(t);\n  }\n  get m11() {\n    return this.value[0];\n  }\n  get m12() {\n    return this.value[1];\n  }\n  get m13() {\n    return this.value[2];\n  }\n  get m21() {\n    return this.value[3];\n  }\n  get m22() {\n    return this.value[4];\n  }\n  get m23() {\n    return this.value[5];\n  }\n  get m31() {\n    return this.value[6];\n  }\n  get m32() {\n    return this.value[7];\n  }\n  get m33() {\n    return this.value[8];\n  }\n  set m11(t) {\n    this.value[0] = t;\n  }\n  set m12(t) {\n    this.value[1] = t;\n  }\n  set m13(t) {\n    this.value[2] = t;\n  }\n  set m21(t) {\n    this.value[3] = t;\n  }\n  set m22(t) {\n    this.value[4] = t;\n  }\n  set m23(t) {\n    this.value[5] = t;\n  }\n  set m31(t) {\n    this.value[6] = t;\n  }\n  set m32(t) {\n    this.value[7] = t;\n  }\n  set m33(t) {\n    this.value[8] = t;\n  }\n  /// 按行顺序\n  set(t = 1, e = 0, s = 0, i = 0, r = 1, o = 0, a = 0, h = 0, c = 1) {\n    const l = this.value;\n    return l[0] = t, l[1] = i, l[2] = a, l[3] = e, l[4] = r, l[5] = h, l[6] = s, l[7] = o, l[8] = c, this;\n  }\n  identity() {\n    return this.value = Array.from(Ta), this;\n  }\n  get isIdentity() {\n    return this.m11 == 1 && this.m12 == 0 && this.m13 == 0 && this.m21 == 0 && this.m22 == 1 && this.m23 == 0 && this.m31 == 0 && this.m32 == 0 && this.m33 == 1;\n  }\n  copy(t) {\n    return this.m11 = t.m11, this.m12 = t.m12, this.m13 = t.m13, this.m21 = t.m21, this.m22 = t.m22, this.m23 = t.m23, this.m31 = t.m31, this.m32 = t.m32, this.m33 = t.m33, this;\n  }\n  clone() {\n    return new en(this.value);\n  }\n  fromArray(t, e = 0) {\n    for (let s = 0; s < 9; s++)\n      this.value[s] = t[s + e];\n    return this;\n  }\n  toArray(t = [], e = 0) {\n    return t[e] = this.m11, t[e + 1] = this.m12, t[e + 2] = this.m13, t[e + 3] = this.m21, t[e + 4] = this.m22, t[e + 5] = this.m23, t[e + 6] = this.m31, t[e + 7] = this.m32, t[e + 8] = this.m33, t;\n  }\n  extractBasis(t, e, s) {\n    return t.setFromMatrix3Column(this, 0), e.setFromMatrix3Column(this, 1), s.setFromMatrix3Column(this, 2), this;\n  }\n  setFromMatrix4(t) {\n    return this.set(t.m11, t.m21, t.m31, t.m12, t.m22, t.m32, t.m13, t.m23, t.m33), this;\n  }\n  multiplyMatrices(t, e) {\n    const s = t.value, i = e.value, r = this.value, o = s[0], a = s[3], h = s[6], c = s[1], l = s[4], u = s[7], d = s[2], f = s[5], m = s[8], p = i[0], S = i[3], g = i[6], b = i[1], x = i[4], w = i[7], C = i[2], _ = i[5], D = i[8];\n    return r[0] = o * p + a * b + h * C, r[3] = o * S + a * x + h * _, r[6] = o * g + a * w + h * D, r[1] = c * p + l * b + u * C, r[4] = c * S + l * x + u * _, r[7] = c * g + l * w + u * D, r[2] = d * p + f * b + m * C, r[5] = d * S + f * x + m * _, r[8] = d * g + f * w + m * D, this;\n  }\n  multiply(t) {\n    return this.multiplyMatrices(this, t);\n  }\n  premultiply(t) {\n    return this.multiplyMatrices(t, this);\n  }\n  multiplyScalar(t) {\n    return this.m11 *= t, this.m12 *= t, this.m13 *= t, this.m21 *= t, this.m22 *= t, this.m23 *= t, this.m31 *= t, this.m32 *= t, this.m33 *= t, this;\n  }\n  /// 行列式\n  determinant() {\n    const t = this.value, e = t[0], s = t[1], i = t[2], r = t[3], o = t[4], a = t[5], h = t[6], c = t[7], l = t[8];\n    return e * o * l - e * a * c - s * r * l + s * a * h + i * r * c - i * o * h;\n  }\n  inverse() {\n    const t = this.value, e = t[0], s = t[1], i = t[2], r = t[3], o = t[4], a = t[5], h = t[6], c = t[7], l = t[8], u = l * o - a * c, d = a * h - l * r, f = c * r - o * h, m = e * u + s * d + i * f;\n    if (m === 0)\n      return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\n    const p = 1 / m;\n    return t[0] = u * p, t[1] = (i * c - l * s) * p, t[2] = (a * s - i * o) * p, t[3] = d * p, t[4] = (l * e - i * h) * p, t[5] = (i * r - a * e) * p, t[6] = f * p, t[7] = (s * h - c * e) * p, t[8] = (o * e - s * r) * p, this;\n  }\n  transpose() {\n    let t;\n    const e = this.value;\n    return t = e[1], e[1] = e[3], e[3] = t, t = e[2], e[2] = e[6], e[6] = t, t = e[5], e[5] = e[7], e[7] = t, this;\n  }\n  getNormalMatrix(t) {\n    return this.setFromMatrix4(t).inverse().transpose();\n  }\n  transposeIntoArray(t) {\n    const e = this.value;\n    return t[0] = e[0], t[1] = e[3], t[2] = e[6], t[3] = e[1], t[4] = e[4], t[5] = e[7], t[6] = e[2], t[7] = e[5], t[8] = e[8], this;\n  }\n  setUvTransform(t, e, s, i, r, o, a) {\n    const h = Math.cos(r), c = Math.sin(r);\n    return this.set(\n      s * h,\n      s * c,\n      -s * (h * o + c * a) + o + t,\n      -i * c,\n      i * h,\n      -i * (-c * o + h * a) + a + e,\n      0,\n      0,\n      1\n    ), this;\n  }\n  scale(t, e) {\n    return this.premultiply(Ni.makeScale(t, e)), this;\n  }\n  rotate(t) {\n    return this.premultiply(Ni.makeRotation(-t)), this;\n  }\n  translate(t, e) {\n    return this.premultiply(Ni.makeTranslation(t, e)), this;\n  }\n  makeTranslation(t, e) {\n    return typeof t == \"number\" ? this.set(1, 0, t, 0, 1, e, 0, 0, 1) : this.set(1, 0, t.x, 0, 1, t.y, 0, 0, 1), this;\n  }\n  // counterclockwise\n  makeRotation(t) {\n    const e = Math.cos(t), s = Math.sin(t);\n    return this.set(e, -s, 0, s, e, 0, 0, 0, 1), this;\n  }\n  makeScale(t, e) {\n    return this.set(t, 0, 0, 0, e, 0, 0, 0, 1), this;\n  }\n  equals(t) {\n    for (let e = 0; e < 9; e++)\n      if (this.value[e] !== t.value[e])\n        return !1;\n    return !0;\n  }\n}\nclass Ot {\n  /// 按列顺序\n  value;\n  is3dSpecial = !1;\n  constructor(t = Ma) {\n    this.value = Array.from(t);\n  }\n  get m11() {\n    return this.value[0];\n  }\n  get m12() {\n    return this.value[1];\n  }\n  get m13() {\n    return this.value[2];\n  }\n  get m14() {\n    return this.value[3];\n  }\n  get m21() {\n    return this.value[4];\n  }\n  get m22() {\n    return this.value[5];\n  }\n  get m23() {\n    return this.value[6];\n  }\n  get m24() {\n    return this.value[7];\n  }\n  get m31() {\n    return this.value[8];\n  }\n  get m32() {\n    return this.value[9];\n  }\n  get m33() {\n    return this.value[10];\n  }\n  get m34() {\n    return this.value[11];\n  }\n  get m41() {\n    return this.value[12];\n  }\n  get m42() {\n    return this.value[13];\n  }\n  get m43() {\n    return this.value[14];\n  }\n  get m44() {\n    return this.value[15];\n  }\n  set m11(t) {\n    this.value[0] = t;\n  }\n  set m12(t) {\n    this.value[1] = t;\n  }\n  set m13(t) {\n    this.value[2] = t;\n  }\n  set m14(t) {\n    this.value[3] = t;\n  }\n  set m21(t) {\n    this.value[4] = t;\n  }\n  set m22(t) {\n    this.value[5] = t;\n  }\n  set m23(t) {\n    this.value[6] = t;\n  }\n  set m24(t) {\n    this.value[7] = t;\n  }\n  set m31(t) {\n    this.value[8] = t;\n  }\n  set m32(t) {\n    this.value[9] = t;\n  }\n  set m33(t) {\n    this.value[10] = t;\n  }\n  set m34(t) {\n    this.value[11] = t;\n  }\n  set m41(t) {\n    this.value[12] = t;\n  }\n  set m42(t) {\n    this.value[13] = t;\n  }\n  set m43(t) {\n    this.value[14] = t;\n  }\n  set m44(t) {\n    this.value[15] = t;\n  }\n  /// 按行顺序\n  set(t = 1, e = 0, s = 0, i = 0, r = 0, o = 1, a = 0, h = 0, c = 0, l = 0, u = 1, d = 0, f = 0, m = 0, p = 0, S = 1) {\n    const g = this.value;\n    return g[0] = t, g[4] = e, g[8] = s, g[12] = i, g[1] = r, g[5] = o, g[9] = a, g[13] = h, g[2] = c, g[6] = l, g[10] = u, g[14] = d, g[3] = f, g[7] = m, g[11] = p, g[15] = S, this;\n  }\n  is2D() {\n    return !this.is3dSpecial && this.m31 == 0 && this.m32 == 0 && this.m33 == 1 && this.m34 == 0 && this.m43 == 0 && this.m44 == 1;\n  }\n  is3D() {\n    return !this.is2D();\n  }\n  identity() {\n    return this.value = Array.from(Ma), this;\n  }\n  get isIdentity() {\n    return this.m11 == 1 && this.m12 == 0 && this.m13 == 0 && this.m14 == 0 && this.m21 == 0 && this.m22 == 1 && this.m23 == 0 && this.m24 == 0 && this.m31 == 0 && this.m32 == 0 && this.m33 == 1 && this.m34 == 0 && this.m41 == 0 && this.m42 == 0 && this.m43 == 0 && this.m44 == 1;\n  }\n  copy(t) {\n    return this.m11 = t.m11, this.m12 = t.m12, this.m13 = t.m13, this.m14 = t.m14, this.m21 = t.m21, this.m22 = t.m22, this.m23 = t.m23, this.m24 = t.m24, this.m31 = t.m31, this.m32 = t.m32, this.m33 = t.m33, this.m34 = t.m34, this.m41 = t.m41, this.m42 = t.m42, this.m43 = t.m43, this.m44 = t.m44, this;\n  }\n  clone() {\n    return new Ot(this.value);\n  }\n  // matrix4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1)\n  static fromString(t) {\n    const e = new Ot(), s = Ja(\"number\", t);\n    return s.length === 16 && s.forEach((i, r) => {\n      i.fullMatch && (e.value[r] = parseFloat(i.fullMatch));\n    }), e;\n  }\n  fromArray(t, e = 0) {\n    for (let s = 0; s < 16; s++)\n      this.value[s] = t[s + e];\n    return this;\n  }\n  toArray(t = [], e = 0) {\n    const s = this.value;\n    return t[e] = s[0], t[e + 1] = s[1], t[e + 2] = s[2], t[e + 3] = s[3], t[e + 4] = s[4], t[e + 5] = s[5], t[e + 6] = s[6], t[e + 7] = s[7], t[e + 8] = s[8], t[e + 9] = s[9], t[e + 10] = s[10], t[e + 11] = s[11], t[e + 12] = s[12], t[e + 13] = s[13], t[e + 14] = s[14], t[e + 15] = s[15], t;\n  }\n  copyPosition(t) {\n    const e = this.value, s = t.value;\n    return e[12] = s[12], e[13] = s[13], e[14] = s[14], this;\n  }\n  setFromMatrix3(t) {\n    const e = t.value;\n    return this.set(\n      e[0],\n      e[3],\n      e[6],\n      0,\n      e[1],\n      e[4],\n      e[7],\n      0,\n      e[2],\n      e[5],\n      e[8],\n      0,\n      0,\n      0,\n      0,\n      1\n    ), this;\n  }\n  extractBasis(t, e, s) {\n    return t.setFromMatrix4Column(this, 0), e.setFromMatrix4Column(this, 1), s.setFromMatrix4Column(this, 2), this;\n  }\n  makeBasis(t, e, s) {\n    return this.set(\n      t.x,\n      e.x,\n      s.x,\n      0,\n      t.y,\n      e.y,\n      s.y,\n      0,\n      t.z,\n      e.z,\n      s.z,\n      0,\n      0,\n      0,\n      0,\n      1\n    ), this;\n  }\n  normalize() {\n    return this.multiplyScalar(1 / (this.m44 || 1e-4));\n  }\n  // w: perspective\n  transformPoint(t) {\n    const e = t.z || 1, s = t.w || 1;\n    return {\n      x: t.x * this.m11 + t.y * this.m21 + e * this.m31 + s * this.m41,\n      y: t.x * this.m12 + t.y * this.m22 + e * this.m32 + s * this.m42,\n      z: t.x * this.m13 + t.y * this.m23 + e * this.m33 + s * this.m43,\n      w: t.x * this.m14 + t.y * this.m24 + e * this.m34 + s * this.m44\n    };\n  }\n  toMatrix(t) {\n    const { scalarX: e, scalarY: s, skewX: i, skewY: r, x: o, y: a } = this.split(), h = [e, r, i, s, o, a];\n    return t ? (t.value = h, t) : new _t(h);\n  }\n  flatten() {\n    return this.m31 = 0, this.m32 = 0, this.m33 = 1, this.m34 = 0, this.m14 = 0, this.m24 = 0, this.m43 = 0, this.m44 = 1, this;\n  }\n  toString(t = 6) {\n    return `matrix3d(${this.value.map((e) => Y(e, t)).join(\",\")})`;\n  }\n  split() {\n    const t = Math.sqrt(\n      this.m11 * this.m11 + this.m12 * this.m12 + this.m13 * this.m13\n    ), e = Math.sqrt(\n      this.m21 * this.m21 + this.m22 * this.m22 + this.m23 * this.m23\n    ), s = Math.sqrt(\n      this.m31 * this.m31 + this.m32 * this.m32 + this.m33 * this.m33\n    ), i = wt(N(Math.asin(-this.m13), -1, 1));\n    let r = wt(Math.atan2(this.m23, this.m33));\n    Math.cos(q(i)) === 0 && (r = wt(Math.atan2(-this.m31, this.m22)));\n    let o = wt(Math.atan2(this.m12, this.m11));\n    return this.m11 < 0 && this.m22 >= 0 && (o += 180), {\n      x: this.m41,\n      y: this.m42,\n      z: this.m43,\n      scalarX: t,\n      scalarY: e,\n      scalarZ: s,\n      degreeX: r,\n      degreeY: i,\n      degreeZ: o,\n      skewX: wt(this.m14),\n      skewY: wt(this.m24),\n      skewZ: wt(this.m34),\n      skewW: this.m44,\n      perspective: this.m34 ? -(1 / this.m34) : 0\n    };\n  }\n  extractRotation(t) {\n    const e = this.value, s = t.value, i = 1 / ss.setFromMatrix4Column(t, 0).length(), r = 1 / ss.setFromMatrix4Column(t, 1).length(), o = 1 / ss.setFromMatrix4Column(t, 2).length();\n    return e[0] = s[0] * i, e[1] = s[1] * i, e[2] = s[2] * i, e[3] = 0, e[4] = s[4] * r, e[5] = s[5] * r, e[6] = s[6] * r, e[7] = 0, e[8] = s[8] * o, e[9] = s[9] * o, e[10] = s[10] * o, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, this;\n  }\n  makeRotationFromEuler(t) {\n    const e = this.value, s = t.x, i = t.y, r = t.z, o = Math.cos(s), a = Math.sin(s), h = Math.cos(i), c = Math.sin(i), l = Math.cos(r), u = Math.sin(r);\n    if (t.order === \"XYZ\") {\n      const d = o * l, f = o * u, m = a * l, p = a * u;\n      e[0] = h * l, e[4] = -h * u, e[8] = c, e[1] = f + m * c, e[5] = d - p * c, e[9] = -a * h, e[2] = p - d * c, e[6] = m + f * c, e[10] = o * h;\n    } else if (t.order === \"YXZ\") {\n      const d = h * l, f = h * u, m = c * l, p = c * u;\n      e[0] = d + p * a, e[4] = m * a - f, e[8] = o * c, e[1] = o * u, e[5] = o * l, e[9] = -a, e[2] = f * a - m, e[6] = p + d * a, e[10] = o * h;\n    } else if (t.order === \"ZXY\") {\n      const d = h * l, f = h * u, m = c * l, p = c * u;\n      e[0] = d - p * a, e[4] = -o * u, e[8] = m + f * a, e[1] = f + m * a, e[5] = o * l, e[9] = p - d * a, e[2] = -o * c, e[6] = a, e[10] = o * h;\n    } else if (t.order === \"ZYX\") {\n      const d = o * l, f = o * u, m = a * l, p = a * u;\n      e[0] = h * l, e[4] = m * c - f, e[8] = d * c + p, e[1] = h * u, e[5] = p * c + d, e[9] = f * c - m, e[2] = -c, e[6] = a * h, e[10] = o * h;\n    } else if (t.order === \"YZX\") {\n      const d = o * h, f = o * c, m = a * h, p = a * c;\n      e[0] = h * l, e[4] = p - d * u, e[8] = m * u + f, e[1] = u, e[5] = o * l, e[9] = -a * l, e[2] = -c * l, e[6] = f * u + m, e[10] = d - p * u;\n    } else if (t.order === \"XZY\") {\n      const d = o * h, f = o * c, m = a * h, p = a * c;\n      e[0] = h * l, e[4] = -u, e[8] = c * l, e[1] = d * u + p, e[5] = o * l, e[9] = f * u - m, e[2] = m * u - f, e[6] = a * l, e[10] = p * u + d;\n    }\n    return e[3] = 0, e[7] = 0, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, this;\n  }\n  makeRotationFromQuaternion(t) {\n    return this.compose(w0, t, b0);\n  }\n  lookAt(t, e, s) {\n    const i = this.value;\n    return Lt.subVectors(t, e), Lt.lengthSq() === 0 && (Lt.z = 1), Lt.normalize(), Ee.crossVectors(s, Lt), Ee.lengthSq() === 0 && (Math.abs(s.z) === 1 ? Lt.x += 1e-4 : Lt.z += 1e-4, Lt.normalize(), Ee.crossVectors(s, Lt)), Ee.normalize(), Sn.crossVectors(Lt, Ee), i[0] = Ee.x, i[4] = Sn.x, i[8] = Lt.x, i[1] = Ee.y, i[5] = Sn.y, i[9] = Lt.y, i[2] = Ee.z, i[6] = Sn.z, i[10] = Lt.z, this;\n  }\n  multiplyMatrices(t, e) {\n    const s = t.value, i = e.value, r = this.value, o = s[0], a = s[4], h = s[8], c = s[12], l = s[1], u = s[5], d = s[9], f = s[13], m = s[2], p = s[6], S = s[10], g = s[14], b = s[3], x = s[7], w = s[11], C = s[15], _ = i[0], D = i[4], z = i[8], B = i[12], G = i[1], V = i[5], j = i[9], et = i[13], J = i[2], Ht = i[6], Dt = i[10], Yt = i[14], Wt = i[3], L = i[7], k = i[11], F = i[15];\n    return r[0] = o * _ + a * G + h * J + c * Wt, r[4] = o * D + a * V + h * Ht + c * L, r[8] = o * z + a * j + h * Dt + c * k, r[12] = o * B + a * et + h * Yt + c * F, r[1] = l * _ + u * G + d * J + f * Wt, r[5] = l * D + u * V + d * Ht + f * L, r[9] = l * z + u * j + d * Dt + f * k, r[13] = l * B + u * et + d * Yt + f * F, r[2] = m * _ + p * G + S * J + g * Wt, r[6] = m * D + p * V + S * Ht + g * L, r[10] = m * z + p * j + S * Dt + g * k, r[14] = m * B + p * et + S * Yt + g * F, r[3] = b * _ + x * G + w * J + C * Wt, r[7] = b * D + x * V + w * Ht + C * L, r[11] = b * z + x * j + w * Dt + C * k, r[15] = b * B + x * et + w * Yt + C * F, this;\n  }\n  multiply(t) {\n    return this.multiplyMatrices(this, t);\n  }\n  premultiply(t) {\n    return this.multiplyMatrices(t, this);\n  }\n  multiplyScalar(t) {\n    return this.m11 *= t, this.m12 *= t, this.m13 *= t, this.m14 *= t, this.m21 *= t, this.m22 *= t, this.m23 *= t, this.m24 *= t, this.m31 *= t, this.m32 *= t, this.m33 *= t, this.m34 *= t, this;\n  }\n  /// 行列式\n  determinant() {\n    const t = this.value, e = t[0], s = t[4], i = t[8], r = t[12], o = t[1], a = t[5], h = t[9], c = t[13], l = t[2], u = t[6], d = t[10], f = t[14], m = t[3], p = t[7], S = t[11], g = t[15];\n    return m * (+r * h * u - i * c * u - r * a * d + s * c * d + i * a * f - s * h * f) + p * (+e * h * f - e * c * d + r * o * d - i * o * f + i * c * l - r * h * l) + S * (+e * c * u - e * a * f - r * o * u + s * o * f + r * a * l - s * c * l) + g * (-i * a * l - e * h * u + e * a * d + i * o * u - s * o * d + s * h * l);\n  }\n  transpose() {\n    const t = this.value;\n    let e;\n    return e = t[1], t[1] = t[4], t[4] = e, e = t[2], t[2] = t[8], t[8] = e, e = t[6], t[6] = t[9], t[9] = e, e = t[3], t[3] = t[12], t[12] = e, e = t[7], t[7] = t[13], t[13] = e, e = t[11], t[11] = t[14], t[14] = e, this;\n  }\n  setPosition(t, e, s) {\n    const i = this.value;\n    return t instanceof jt ? (i[12] = t.x, i[13] = t.y, i[14] = t.z) : typeof t == \"number\" && typeof e == \"number\" && typeof s == \"number\" && (i[12] = t, i[13] = e, i[14] = s), this;\n  }\n  inverse() {\n    const t = this.value, e = t[0], s = t[1], i = t[2], r = t[3], o = t[4], a = t[5], h = t[6], c = t[7], l = t[8], u = t[9], d = t[10], f = t[11], m = t[12], p = t[13], S = t[14], g = t[15], b = u * S * c - p * d * c + p * h * f - a * S * f - u * h * g + a * d * g, x = m * d * c - l * S * c - m * h * f + o * S * f + l * h * g - o * d * g, w = l * p * c - m * u * c + m * a * f - o * p * f - l * a * g + o * u * g, C = m * u * h - l * p * h - m * a * d + o * p * d + l * a * S - o * u * S, _ = e * b + s * x + i * w + r * C;\n    if (_ === 0)\n      return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n    const D = 1 / _;\n    return t[0] = b * D, t[1] = (p * d * r - u * S * r - p * i * f + s * S * f + u * i * g - s * d * g) * D, t[2] = (a * S * r - p * h * r + p * i * c - s * S * c - a * i * g + s * h * g) * D, t[3] = (u * h * r - a * d * r - u * i * c + s * d * c + a * i * f - s * h * f) * D, t[4] = x * D, t[5] = (l * S * r - m * d * r + m * i * f - e * S * f - l * i * g + e * d * g) * D, t[6] = (m * h * r - o * S * r - m * i * c + e * S * c + o * i * g - e * h * g) * D, t[7] = (o * d * r - l * h * r + l * i * c - e * d * c - o * i * f + e * h * f) * D, t[8] = w * D, t[9] = (m * u * r - l * p * r - m * s * f + e * p * f + l * s * g - e * u * g) * D, t[10] = (o * p * r - m * a * r + m * s * c - e * p * c - o * s * g + e * a * g) * D, t[11] = (l * a * r - o * u * r - l * s * c + e * u * c + o * s * f - e * a * f) * D, t[12] = C * D, t[13] = (l * p * i - m * u * i + m * s * d - e * p * d - l * s * S + e * u * S) * D, t[14] = (m * a * i - o * p * i - m * s * h + e * p * h + o * s * S - e * a * S) * D, t[15] = (o * u * i - l * a * i + l * s * h - e * u * h - o * s * d + e * a * d) * D, this;\n  }\n  getMaxScaleOnAxis() {\n    const t = this.value, e = t[0] * t[0] + t[1] * t[1] + t[2] * t[2], s = t[4] * t[4] + t[5] * t[5] + t[6] * t[6], i = t[8] * t[8] + t[9] * t[9] + t[10] * t[10];\n    return Math.sqrt(Math.max(e, s, i));\n  }\n  makeTranslation(t, e, s) {\n    return t instanceof jt ? this.set(1, 0, 0, t.x, 0, 1, 0, t.y, 0, 0, 1, t.z, 0, 0, 0, 1) : this.set(1, 0, 0, t, 0, 1, 0, e, 0, 0, 1, s, 0, 0, 0, 1), this;\n  }\n  makeRotationX(t) {\n    const e = Math.cos(t), s = Math.sin(t);\n    return this.set(1, 0, 0, 0, 0, e, -s, 0, 0, s, e, 0, 0, 0, 0, 1), this;\n  }\n  makeRotationY(t) {\n    const e = Math.cos(t), s = Math.sin(t);\n    return this.set(e, 0, s, 0, 0, 1, 0, 0, -s, 0, e, 0, 0, 0, 0, 1), this;\n  }\n  makeRotationZ(t) {\n    const e = Math.cos(t), s = Math.sin(t);\n    return this.set(e, -s, 0, 0, s, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this;\n  }\n  makeRotationAxis(t, e) {\n    const s = Math.cos(e), i = Math.sin(e), r = 1 - s, o = t.x, a = t.y, h = t.z, c = r * o, l = r * a;\n    return this.set(\n      c * o + s,\n      c * a - i * h,\n      c * h + i * a,\n      0,\n      c * a + i * h,\n      l * a + s,\n      l * h - i * o,\n      0,\n      c * h - i * a,\n      l * h + i * o,\n      r * h * h + s,\n      0,\n      0,\n      0,\n      0,\n      1\n    ), this;\n  }\n  makeScale(t, e, s) {\n    return this.set(t, 0, 0, 0, 0, e, 0, 0, 0, 0, s, 0, 0, 0, 0, 1), this;\n  }\n  makeShear(t, e, s, i, r, o) {\n    return this.set(1, s, r, 0, t, 1, o, 0, e, i, 1, 0, 0, 0, 0, 1), this;\n  }\n  makePerspective(t, e, s, i, r, o, a = _n) {\n    const h = this.value, c = 2 * r / (e - t), l = 2 * r / (s - i), u = (e + t) / (e - t), d = (s + i) / (s - i);\n    let f, m;\n    if (a === _n)\n      f = -(o + r) / (o - r), m = -2 * o * r / (o - r);\n    else if (a === Ca)\n      f = -o / (o - r), m = -o * r / (o - r);\n    else\n      throw new Error(\n        \"Matrix4.makePerspective(): Invalid coordinate system: \" + a\n      );\n    return h[0] = c, h[4] = 0, h[8] = u, h[12] = 0, h[1] = 0, h[5] = l, h[9] = d, h[13] = 0, h[2] = 0, h[6] = 0, h[10] = f, h[14] = m, h[3] = 0, h[7] = 0, h[11] = -1, h[15] = 0, this;\n  }\n  makeOrthographic(t, e, s, i, r, o, a = _n) {\n    const h = this.value, c = 1 / (e - t), l = 1 / (s - i), u = 1 / (o - r), d = (e + t) * c, f = (s + i) * l;\n    let m, p;\n    if (a === _n)\n      m = (o + r) * u, p = -2 * u;\n    else if (a === Ca)\n      m = r * u, p = -1 * u;\n    else\n      throw new Error(\n        \"Matrix4.makeOrthographic(): Invalid coordinate system: \" + a\n      );\n    return h[0] = 2 * c, h[4] = 0, h[8] = 0, h[12] = -d, h[1] = 0, h[5] = 2 * l, h[9] = 0, h[13] = -f, h[2] = 0, h[6] = 0, h[10] = p, h[14] = -m, h[3] = 0, h[7] = 0, h[11] = 0, h[15] = 1, this;\n  }\n  compose(t, e, s) {\n    const i = this.value, r = e.x, o = e.y, a = e.z, h = e.w, c = r + r, l = o + o, u = a + a, d = r * c, f = r * l, m = r * u, p = o * l, S = o * u, g = a * u, b = h * c, x = h * l, w = h * u, C = s.x, _ = s.y, D = s.z;\n    return i[0] = (1 - (p + g)) * C, i[1] = (f + w) * C, i[2] = (m - x) * C, i[3] = 0, i[4] = (f - w) * _, i[5] = (1 - (d + g)) * _, i[6] = (S + b) * _, i[7] = 0, i[8] = (m + x) * D, i[9] = (S - b) * D, i[10] = (1 - (d + p)) * D, i[11] = 0, i[12] = t.x, i[13] = t.y, i[14] = t.z, i[15] = 1, this;\n  }\n  decompose(t, e, s) {\n    const i = this.value;\n    let r = ss.set(i[0], i[1], i[2]).length();\n    const o = ss.set(i[4], i[5], i[6]).length(), a = ss.set(i[8], i[9], i[10]).length();\n    this.determinant() < 0 && (r = -r), t.x = i[12], t.y = i[13], t.z = i[14], Kt.copy(this);\n    const c = 1 / r, l = 1 / o, u = 1 / a;\n    return Kt.value[0] *= c, Kt.value[1] *= c, Kt.value[2] *= c, Kt.value[4] *= l, Kt.value[5] *= l, Kt.value[6] *= l, Kt.value[8] *= u, Kt.value[9] *= u, Kt.value[10] *= u, e.setFromRotationMatrix4(Kt), s.x = r, s.y = o, s.z = a, this;\n  }\n  equals(t) {\n    for (let e = 0; e < 16; e++)\n      if (this.value[e] !== t.value[e])\n        return !1;\n    return !0;\n  }\n  translate(t = 0, e = 0, s = 0) {\n    return this.multiply(\n      new Ot([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t, e, s, 1])\n    );\n  }\n  scale(t = 1, e = 1, s = 1) {\n    return this.multiply(\n      new Ot([t, 0, 0, 0, 0, e, 0, 0, 0, 0, s, 0, 0, 0, 0, 1])\n    );\n  }\n  scaleVector3(t) {\n    const e = this.value, s = t.x, i = t.y, r = t.z;\n    return e[0] *= s, e[4] *= i, e[8] *= r, e[1] *= s, e[5] *= i, e[9] *= r, e[2] *= s, e[6] *= i, e[10] *= r, e[3] *= s, e[7] *= i, e[11] *= r, this;\n  }\n  // rotate(degX = 0, degY = 0, degZ = 0) {\n  //   if (degZ) {\n  //     this.is3dSpecial = true;\n  //   }\n  //   const x = toRadian(degX);\n  //   const y = toRadian(degY);\n  //   const z = toRadian(degZ);\n  //   const a = Math.cos(x);\n  //   const b = Math.sin(x);\n  //   const c = Math.cos(y);\n  //   const d = Math.sin(y);\n  //   const e = Math.cos(z);\n  //   const f = Math.sin(z);\n  //   const ae = a * e;\n  //   const af = a * f;\n  //   const be = b * e;\n  //   const bf = b * f;\n  //   this.m11 = c * e;\n  //   this.m21 = -c * f;\n  //   this.m31 = d;\n  //   this.m12 = af + be * d;\n  //   this.m22 = ae - bf * d;\n  //   this.m32 = -b * c;\n  //   this.m13 = bf - ae * d;\n  //   this.m23 = be + af * d;\n  //   this.m33 = a * c;\n  //   return this;\n  // }\n  rotateX(t) {\n    const e = q(t), s = Math.cos(e), i = Math.sin(e);\n    return this.multiply(\n      // new Matrix4([1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1])\n      new Ot([1, 0, 0, 0, 0, s, i, 0, 0, -i, s, 0, 0, 0, 0, 1])\n    );\n  }\n  rotateY(t) {\n    const e = q(t), s = Math.cos(e), i = Math.sin(e);\n    return this.multiply(\n      // new Matrix4([c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1])\n      new Ot([s, 0, -i, 0, 0, 1, 0, 0, i, 0, s, 0, 0, 0, 0, 1])\n    );\n  }\n  /// this.multiply([c, s, -s, c, 0, 0]);\n  rotateZ(t) {\n    this.is3dSpecial = !0;\n    const e = q(t), s = Math.cos(e), i = Math.sin(e);\n    return this.multiply(\n      // new Matrix4([c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])\n      new Ot([s, i, 0, 0, -i, s, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])\n    );\n  }\n  skew(t = 0, e = 0, s = 0) {\n    return this.multiply(\n      new Ot([\n        1,\n        0,\n        0,\n        q(t),\n        0,\n        1,\n        0,\n        q(e),\n        0,\n        0,\n        1,\n        q(s),\n        0,\n        0,\n        0,\n        1\n      ])\n    );\n  }\n  perspective(t) {\n    return this.multiply(\n      new Ot([\n        1,\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        0,\n        0,\n        0,\n        1,\n        t ? -(1 / t) : 0,\n        0,\n        0,\n        0,\n        1\n      ])\n    );\n  }\n  // based on http://code.metager.de/source/xref/mozilla/B2G/gecko/gfx/thebes/gfx3DMatrix.cpp#651\n  unproject(t) {\n    let e = t.x * this.m11 + t.y * this.m21 + this.m41, s = t.x * this.m12 + t.y * this.m22 + this.m42, i = t.x * this.m13 + t.y * this.m23 + this.m43, r = t.x * this.m14 + t.y * this.m24 + this.m44, o = e + this.m31, a = s + this.m32, h = i + this.m33, c = r + this.m34;\n    r == 0 && (r = 1e-4), e /= r, s /= r, i /= r, c == 0 && (c = 1e-4), o /= c, a /= c, h /= c;\n    const l = h - i;\n    if (l == 0)\n      return { x: e, y: s, z: i, mass: r };\n    const u = -i / l;\n    return e += u * (o - e), s += u * (a - s), { x: e, y: s, z: i, mass: r };\n  }\n  // from homegeneous (euclid) to cartesian FLATTENED!!!! like a projection\n  project(t) {\n    const e = t.z;\n    let s = t.x * this.m11 + t.y * this.m21 + e * this.m31 + this.m41, i = t.x * this.m12 + t.y * this.m22 + e * this.m32 + this.m42, r = t.x * this.m14 + t.y * this.m24 + e * this.m34 + this.m44;\n    return r == 0 && (r = 1e-4), s /= r, i /= r, r < 0 && (s -= this.m41, i -= this.m42, s *= 1 / r, i *= 1 / r, s += this.m41, i += this.m42), { x: s, y: i, z: e, mass: r };\n  }\n  bounds(t, e, s, i) {\n    const r = new vn({ x: t, y: e }), o = new vn({ x: t + s, y: e }), a = new vn({ x: t + s, y: e + i }), h = new vn({ x: t, y: e + i });\n    ({ x: r.x, y: r.y, z: r.z, mass: r.mass } = this.project(r)), { x: o.x, y: o.y, z: o.z, mass: o.mass } = this.project(o), { x: a.x, y: a.y, z: a.z, mass: a.mass } = this.project(a), { x: h.x, y: h.y, z: h.z, mass: h.mass } = this.project(h);\n    const c = Math.min(r.x, o.x, a.x, h.x), l = Math.min(r.y, o.y, a.y, h.y), u = Math.max(r.x, o.x, a.x, h.x) - c, d = Math.max(r.y, o.y, a.y, h.y) - l;\n    return { x: c, y: l, width: u, height: d };\n  }\n}\nclass _t {\n  /// 按列顺序\n  value;\n  _m13 = 0;\n  _m23 = 0;\n  _m33 = 1;\n  matrix4;\n  constructor(t = Pa) {\n    this.value = Array.from(t), this.matrix4 = this.toMatrix4();\n  }\n  get m11() {\n    return this.value[0];\n  }\n  get m12() {\n    return this.value[1];\n  }\n  get m13() {\n    return this._m13;\n  }\n  get m21() {\n    return this.value[2];\n  }\n  get m22() {\n    return this.value[3];\n  }\n  get m23() {\n    return this._m23;\n  }\n  get m31() {\n    return this.value[4];\n  }\n  get m32() {\n    return this.value[5];\n  }\n  get m33() {\n    return this._m33;\n  }\n  set m11(t) {\n    this.value[0] = t;\n  }\n  set m12(t) {\n    this.value[1] = t;\n  }\n  set m13(t) {\n    this._m13 = t;\n  }\n  set m21(t) {\n    this.value[2] = t;\n  }\n  set m22(t) {\n    this.value[3] = t;\n  }\n  set m23(t) {\n    this._m23 = t;\n  }\n  set m31(t) {\n    this.value[4] = t;\n  }\n  set m32(t) {\n    this.value[5] = t;\n  }\n  set m33(t) {\n    this._m33 = t;\n  }\n  // matrix(1, 0, 0, 1, -50, -50)\n  static fromString(t) {\n    const e = new _t(), s = Ja(\"number\", t);\n    return s.length === 6 && s.forEach((i, r) => {\n      i.fullMatch && (e.value[r] = parseFloat(i.fullMatch));\n    }), e;\n  }\n  toMatrix4(t = this.matrix4) {\n    const e = [\n      this.m11,\n      this.m12,\n      0,\n      this.m13,\n      this.m21,\n      this.m22,\n      0,\n      this.m23,\n      0,\n      0,\n      1,\n      0,\n      this.m31,\n      this.m32,\n      0,\n      this.m33\n    ];\n    return t ? (t.value = e, t) : new Ot(e);\n  }\n  identity() {\n    return this.value = Array.from(Pa), this.m13 = 0, this.m23 = 0, this.m33 = 1, this.matrix4 = this.toMatrix4(), this;\n  }\n  get isIdentity() {\n    return this.m11 == 1 && this.m12 == 0 && this.m13 == 0 && this.m21 == 0 && this.m22 == 1 && this.m23 == 0 && this.m31 == 0 && this.m32 == 0 && this.m33 == 1;\n  }\n  multiplyScalar(t) {\n    return this.m11 *= t, this.m12 *= t, this.m13 *= t, this.m21 *= t, this.m22 *= t, this.m23 *= t, this.m31 *= t, this.m32 *= t, this.m33 *= t, this;\n  }\n  normalize() {\n    const t = this.m33 || 1e-4;\n    return this.multiplyScalar(1 / t);\n  }\n  transformPoint(t) {\n    const e = t.z || 1;\n    return {\n      x: t.x * this.m11 + t.y * this.m21 + e * this.m31,\n      y: t.x * this.m12 + t.y * this.m22 + e * this.m32,\n      z: t.x * this.m13 + t.y * this.m23 + e * this.m33\n    };\n  }\n  clone() {\n    return new _t(this.value);\n  }\n  multiply(t) {\n    const e = this.clone(), s = t instanceof _t ? t : new _t(t);\n    return this.m11 = s.m11 * e.m11 + s.m12 * e.m21 + s.m13 * e.m31, this.m12 = s.m11 * e.m12 + s.m12 * e.m22 + s.m13 * e.m32, this.m13 = s.m11 * e.m13 + s.m12 * e.m23 + s.m13 * e.m33, this.m21 = s.m21 * e.m11 + s.m22 * e.m21 + s.m23 * e.m31, this.m22 = s.m21 * e.m12 + s.m22 * e.m22 + s.m23 * e.m32, this.m23 = s.m21 * e.m13 + s.m22 * e.m23 + s.m23 * e.m33, this.m31 = s.m31 * e.m11 + s.m32 * e.m21 + s.m33 * e.m31, this.m32 = s.m31 * e.m12 + s.m32 * e.m22 + s.m33 * e.m32, this.m33 = s.m31 * e.m13 + s.m32 * e.m23 + s.m33 * e.m33, this;\n  }\n  append(t) {\n    return this.multiply(t);\n  }\n  prepend(t) {\n    return t.multiply(this), this;\n  }\n  inverse() {\n    const t = this.m11, e = this.m12, s = this.m13, i = this.m21, r = this.m22, o = this.m23, a = this.m31, h = this.m32, c = this.m33, l = c * r - o * h, u = -c * i + o * a, d = h * i - r * a;\n    let f = t * l + e * u + s * d;\n    return f ? (f = 1 / f, this.m11 = l * f, this.m12 = (-c * e + s * h) * f, this.m13 = (o * e - s * r) * f, this.m21 = u * f, this.m22 = (c * t - s * a) * f, this.m23 = (-o * t + s * i) * f, this.m31 = d * f, this.m32 = (-h * t + e * a) * f, this.m33 = (r * t - e * i) * f, this) : null;\n  }\n  adjugate() {\n    const t = new _t();\n    return t.m11 = this.m22 * this.m33 - this.m32 * this.m23, t.m12 = this.m32 * this.m13 - this.m12 * this.m33, t.m13 = this.m12 * this.m23 - this.m22 * this.m13, t.m21 = this.m31 * this.m23 - this.m21 * this.m33, t.m22 = this.m11 * this.m33 - this.m31 * this.m13, t.m23 = this.m21 * this.m13 - this.m11 * this.m23, t.m31 = this.m21 * this.m32 - this.m31 * this.m22, t.m32 = this.m31 * this.m12 - this.m11 * this.m32, t.m33 = this.m11 * this.m22 - this.m21 * this.m12, t;\n  }\n  split() {\n    let t = wt(Math.atan2(this.m12, this.m11));\n    return this.m11 < 0 && this.m22 >= 0 && (t += 180), {\n      x: this.m31,\n      y: this.m32,\n      degree: t,\n      scaleX: Math.sqrt(this.m11 * this.m11 + this.m12 * this.m12),\n      scaleY: Math.sqrt(this.m21 * this.m21 + this.m22 * this.m22),\n      skewX: wt(Math.atan2(-this.m21, this.m22)),\n      skewY: wt(Math.atan2(this.m12, this.m11))\n    };\n  }\n  getGroupCoords(t) {\n    const e = this.value[0], s = this.value[1], i = this.value[2], r = this.value[3], o = this.value[4], a = this.value[5], h = t.value[0], c = t.value[1], l = t.value[2], u = t.value[3], d = t.value[4], f = t.value[5], m = h * u, p = c * l, S = (l * s - e * u) / (p - m), g = (h * s - e * c) / (m - p), b = (l * r - i * u) / (p - m), x = (h * r - i * c) / (m - p), w = (l * (a - f) + u * (d - o)) / (p - m), C = (h * (a - f) + c * (d - o)) / (m - p), _ = [S, g, b, x, w, C];\n    return new _t(_);\n  }\n  toString(t = 6) {\n    return this.matrix4.is2D() ? `matrix(${this.value.map((e) => Y(e, t)).join(\",\")})` : this.matrix4.toString();\n  }\n  // toFilter() {\n  //   return (\n  //     \"progid:DXImageTransform.Microsoft.Matrix(M11=\" +\n  //     this.value[0] +\n  //     \", M12=\" +\n  //     this.value[2] +\n  //     \", M21=\" +\n  //     this.value[1] +\n  //     \", M22=\" +\n  //     this.value[3] +\n  //     \", Dx=\" +\n  //     this.value[4] +\n  //     \", Dy=\" +\n  //     this.value[5] +\n  //     \", sizingmethod='auto expand')\"\n  //   );\n  // }\n  // 相对值\n  translate(t, e) {\n    return this.multiply([1, 0, 0, 1, t, e]), this.toMatrix4(), this;\n  }\n  // 绝对值\n  translateTo(t, e) {\n    return this.translate(t - this.m31, e - this.m32);\n  }\n  translateX(t) {\n    return this.translate(t, 0);\n  }\n  translateXTo(t) {\n    return this.translateTo(t, this.m32);\n  }\n  translateY(t) {\n    return this.translate(0, t);\n  }\n  translateYTo(t) {\n    return this.translateTo(this.m31, t);\n  }\n  translateZ(t) {\n    return this.matrix4.translate(0, 0, t), this.matrix4.toMatrix(this), this;\n  }\n  translateZTo(t) {\n    return this.translateZ(t - this.matrix4.m43), this;\n  }\n  translate3d(t, e, s) {\n    return this.matrix4.translate(t, e, s), this.matrix4.toMatrix(this), this;\n  }\n  translate3dTo(t, e, s) {\n    return this.translate3d(\n      t - this.matrix4.m41,\n      e - this.matrix4.m42,\n      s - this.matrix4.m43\n    ), this;\n  }\n  rotate(t, e = 0, s = 0) {\n    const i = q(t), r = Math.cos(i), o = Math.sin(i);\n    return this.translate(e, s), this.multiply([r, o, -o, r, 0, 0]), this.translate(-e, -s), this.toMatrix4(), this;\n  }\n  rotateTo(t, e = 0, s = 0) {\n    const { degree: i } = this.split();\n    return this.rotate(t - i, e, s), this;\n  }\n  rotateX(t) {\n    return this.matrix4.rotateX(t), this.matrix4.toMatrix(this), this;\n  }\n  rotateXTo(t) {\n    const { degreeX: e } = this.matrix4.split();\n    return this.rotateX(t - e), this;\n  }\n  rotateY(t) {\n    return this.matrix4.rotateY(t), this.matrix4.toMatrix(this), this;\n  }\n  rotateYTo(t) {\n    const { degreeY: e } = this.matrix4.split();\n    return this.rotateY(t - e), this;\n  }\n  rotateZ(t) {\n    return this.matrix4.rotateZ(t), this.matrix4.toMatrix(this), this;\n  }\n  rotateZTo(t) {\n    const { degreeZ: e } = this.matrix4.split();\n    return this.rotateZ(t - e), this;\n  }\n  rotate3d(t, e, s) {\n    return this.matrix4.rotateX(t).rotateY(e).rotateZ(s), this.matrix4.toMatrix(this), this;\n  }\n  rotate3dTo(t, e, s) {\n    const { degreeX: i, degreeY: r, degreeZ: o } = this.matrix4.split();\n    return this.rotate3d(t - i, e - r, s - o), this;\n  }\n  scale(t, e = t, s = 0, i = 0) {\n    return this.translate(s, i), this.multiply([t, 0, 0, e, 0, 0]), this.translate(-s, -i), this.toMatrix4(), this;\n  }\n  scaleTo(t, e = t, s = 0, i = 0) {\n    return this.scale(\n      t / this.m11,\n      e / this.m22,\n      s,\n      i\n    );\n  }\n  scaleX(t) {\n    return this.scale(t, 1);\n  }\n  scaleXTo(t) {\n    return this.scale(t / this.m11, 1);\n  }\n  scaleY(t) {\n    return this.scale(1, t);\n  }\n  scaleYTo(t) {\n    return this.scale(1, t / this.m22);\n  }\n  scaleZ(t) {\n    return this.matrix4.scale(1, 1, t), this.matrix4.toMatrix(this), this;\n  }\n  scaleZTo(t) {\n    const { scalarZ: e } = this.matrix4.split();\n    return this.scaleZ(t / e), this;\n  }\n  scale3d(t, e = t, s = t) {\n    return this.matrix4.scale(t, e, s), this.matrix4.toMatrix(this), this;\n  }\n  scale3dTo(t, e = t, s = t) {\n    const { scalarX: i, scalarY: r, scalarZ: o } = this.matrix4.split();\n    return this.scale3d(t / i, e / r, s / o), this;\n  }\n  skew(t, e = t) {\n    return this.multiply([\n      Math.cos(q(e)),\n      Math.sin(q(e)),\n      -Math.sin(q(t)),\n      Math.cos(q(t)),\n      0,\n      0\n    ]), this.toMatrix4(), this;\n  }\n  skewTo(t, e = t) {\n    const { skewX: s, skewY: i } = this.split();\n    return this.skew(t - s, e - i);\n  }\n  skewX(t) {\n    const { skewY: e } = this.split();\n    return this.skew(t, e);\n  }\n  skewXTo(t) {\n    const { skewY: e } = this.split();\n    return this.skewTo(t, e);\n  }\n  skewY(t) {\n    const { skewX: e } = this.split();\n    return this.skew(e, t);\n  }\n  skewYTo(t) {\n    const { skewX: e } = this.split();\n    return this.skewTo(e, t);\n  }\n  skewZ(t) {\n    return this;\n  }\n  skewZTo(t) {\n    return this;\n  }\n  skew3d(t, e, s) {\n    return this;\n  }\n  skew3dTo(t, e, s) {\n    return this;\n  }\n  perspective(t) {\n    return this.matrix4.perspective(t), this.matrix4.toMatrix(this), this;\n  }\n}\nconst w0 = new jt(0, 0, 0), b0 = new jt(1, 1, 1), Ee = new jt(), Sn = new jt(), Lt = new jt(), ss = new jt(), Ni = new en(), Kt = new Ot();\nfunction v0(n) {\n  const t = new _t();\n  return n.replace(\n    // /([a-z]+)\\(?([^)a-z]+)\\)?/gi,\n    /([a-z0-9]+)\\s*\\(?\\s*((-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)*[a-z%]*\\s*,?\\s*)+)\\)?/gi,\n    function(e, s, i) {\n      i.indexOf(\",\") >= 0 ? i = i.split(/\\s*,\\s*/) : i = i.split(/\\s+/);\n      const r = [];\n      for (let o = 0, a = i.length; o < a; o++)\n        i[o].trim() && r.push(parseFloat(\"\" + i[o]));\n      switch (s.toLowerCase()) {\n        case \"t\":\n        case \"translate\":\n          t.translate(r[0], r[1]);\n          break;\n        case \"translatex\":\n          t.translateX(r[0]);\n          break;\n        case \"translatey\":\n          t.translateY(r[0]);\n          break;\n        case \"translatez\":\n          t.translateZ(r[0]);\n          break;\n        case \"translate3d\":\n          t.translate3d(r[0], r[1], r[2]);\n          break;\n        case \"r\":\n        case \"rotate\":\n          t.rotate(r[0], r[1] ?? 0, r[2] ?? 0);\n          break;\n        case \"rotatex\":\n          t.rotateX(r[0]);\n          break;\n        case \"rotatey\":\n          t.rotateY(r[0]);\n          break;\n        case \"rotatez\":\n          t.rotateZ(r[0]);\n          break;\n        case \"rotate3d\":\n          t.rotate3d(r[0], r[1], r[2]);\n          break;\n        case \"s\":\n        case \"scale\":\n          t.scale(r[0], r[1] ?? r[0]);\n          break;\n        case \"scalex\":\n          t.scaleX(r[0]);\n          break;\n        case \"scaley\":\n          t.scaleY(r[0]);\n          break;\n        case \"scalez\":\n          t.scaleZ(r[0]);\n          break;\n        case \"scale3d\":\n          t.scale3d(r[0], r[1], r[2]);\n          break;\n        case \"skew\":\n          t.skew(r[0], r[1] ?? 0);\n          break;\n        case \"skewx\":\n          t.skewX(r[0]);\n          break;\n        case \"skewy\":\n          t.skewY(r[0]);\n          break;\n        case \"skewz\":\n          t.skewZ(r[0]);\n          break;\n        case \"skew3d\":\n          t.skew3d(r[0], r[1], r[2]);\n          break;\n        case \"m\":\n        case \"matrix\":\n          t.multiply([\n            r[0],\n            r[1],\n            r[2],\n            r[3],\n            r[4],\n            r[5]\n          ]), t.toMatrix4();\n          break;\n        case \"matrix3d\":\n          t.matrix4.multiply(new Ot(r)), t.matrix4.toMatrix(t);\n          break;\n      }\n      return \"\";\n    }\n  ), t;\n}\nfunction oe(n, t, e) {\n  const s = new _t();\n  return s.rotate(wt(n)), s.transformPoint({ x: t, y: e });\n}\nfunction Nc(n) {\n  const t = typeof n?.x == \"number\" ? n?.x : 0, e = typeof n?.y == \"number\" ? n?.y : 0, s = typeof n?.degree == \"number\" ? n?.degree : 0, i = typeof n?.scalarX == \"number\" ? n?.scalarX : 1, r = typeof n?.scalarY == \"number\" ? n?.scalarY : 1, o = q(s), a = Math.cos(o), h = Math.sin(o), c = new DOMMatrix([\n    a * i,\n    h * i,\n    -h * r,\n    a * r,\n    t,\n    e\n  ]);\n  return c.multiplySelf(new DOMMatrix(n?.originMatrix || \"\")), c;\n}\nfunction h1(n, t) {\n  const e = new Path2D(n), s = new Path2D();\n  return s.addPath(e, Nc(t)), s;\n}\nconst Cn = new ui(), at = new jt();\nfunction Ss(n, t) {\n  switch (t.constructor) {\n    case Float32Array:\n      return n;\n    case Uint32Array:\n      return n / 4294967295;\n    case Uint16Array:\n      return n / 65535;\n    case Uint8Array:\n      return n / 255;\n    case Int32Array:\n      return Math.max(n / 2147483647, -1);\n    case Int16Array:\n      return Math.max(n / 32767, -1);\n    case Int8Array:\n      return Math.max(n / 127, -1);\n    default:\n      throw new Error(\"Invalid component type.\");\n  }\n}\nfunction It(n, t) {\n  switch (t.constructor) {\n    case Float32Array:\n      return n;\n    case Uint32Array:\n      return Math.round(n * 4294967295);\n    case Uint16Array:\n      return Math.round(n * 65535);\n    case Uint8Array:\n      return Math.round(n * 255);\n    case Int32Array:\n      return Math.round(n * 2147483647);\n    case Int16Array:\n      return Math.round(n * 32767);\n    case Int8Array:\n      return Math.round(n * 127);\n    default:\n      throw new Error(\"Invalid component type.\");\n  }\n}\nclass Le {\n  array;\n  itemSize;\n  count;\n  normalized;\n  updateRanges;\n  version;\n  constructor(t, e, s = !1) {\n    if (Array.isArray(t))\n      throw new TypeError(\"BufferAttribute: array should be a Typed Array.\");\n    this.array = t, this.itemSize = e, this.count = t.length / e, this.normalized = s, this.updateRanges = [], this.version = 0;\n  }\n  _onChangeCallback() {\n  }\n  set needsUpdate(t) {\n    t === !0 && this.version++;\n  }\n  addUpdateRange(t, e) {\n    this.updateRanges.push({ start: t, count: e });\n  }\n  clearUpdateRanges() {\n    this.updateRanges.length = 0;\n  }\n  copy(t) {\n    return this.array = vu(t.array), this.itemSize = t.itemSize, this.count = t.count, this.normalized = t.normalized, this;\n  }\n  copyAt(t, e, s) {\n    t *= this.itemSize, s *= e.itemSize;\n    for (let i = 0, r = this.itemSize; i < r; i++)\n      this.array[t + i] = e.array[s + i];\n    return this;\n  }\n  copyArray(t) {\n    return this.array.set(t), this;\n  }\n  applyMatrix3(t) {\n    if (this.itemSize === 2)\n      for (let e = 0, s = this.count; e < s; e++)\n        Cn.fromBufferAttribute(this, e), Cn.applyMatrix3(t), this.setXY(e, Cn.x, Cn.y);\n    else if (this.itemSize === 3)\n      for (let e = 0, s = this.count; e < s; e++)\n        at.fromBufferAttribute(this, e), at.applyMatrix3(t), this.setXYZ(e, at.x, at.y, at.z);\n    return this;\n  }\n  applyMatrix4(t) {\n    for (let e = 0, s = this.count; e < s; e++)\n      at.fromBufferAttribute(this, e), at.applyMatrix4(t), this.setXYZ(e, at.x, at.y, at.z);\n    return this;\n  }\n  applyNormalMatrix(t) {\n    for (let e = 0, s = this.count; e < s; e++)\n      at.fromBufferAttribute(this, e), at.applyNormalMatrix(t), this.setXYZ(e, at.x, at.y, at.z);\n    return this;\n  }\n  transformDirection(t) {\n    for (let e = 0, s = this.count; e < s; e++)\n      at.fromBufferAttribute(this, e), at.transformDirection(t), this.setXYZ(e, at.x, at.y, at.z);\n    return this;\n  }\n  set(t, e = 0) {\n    return this.array.set(t, e), this;\n  }\n  getComponent(t, e) {\n    let s = this.array[t * this.itemSize + e];\n    return this.normalized && (s = Ss(s, this.array)), s;\n  }\n  setComponent(t, e, s) {\n    return this.normalized && (s = It(s, this.array)), this.array[t * this.itemSize + e] = s, this;\n  }\n  getX(t) {\n    let e = this.array[t * this.itemSize];\n    return this.normalized && (e = Ss(e, this.array)), e;\n  }\n  setX(t, e) {\n    return this.normalized && (e = It(e, this.array)), this.array[t * this.itemSize] = e, this;\n  }\n  getY(t) {\n    let e = this.array[t * this.itemSize + 1];\n    return this.normalized && (e = Ss(e, this.array)), e;\n  }\n  setY(t, e) {\n    return this.normalized && (e = It(e, this.array)), this.array[t * this.itemSize + 1] = e, this;\n  }\n  getZ(t) {\n    let e = this.array[t * this.itemSize + 2];\n    return this.normalized && (e = Ss(e, this.array)), e;\n  }\n  setZ(t, e) {\n    return this.normalized && (e = It(e, this.array)), this.array[t * this.itemSize + 2] = e, this;\n  }\n  getW(t) {\n    let e = this.array[t * this.itemSize + 3];\n    return this.normalized && (e = Ss(e, this.array)), e;\n  }\n  setW(t, e) {\n    return this.normalized && (e = It(e, this.array)), this.array[t * this.itemSize + 3] = e, this;\n  }\n  setXY(t, e, s) {\n    return t *= this.itemSize, this.normalized && (e = It(e, this.array), s = It(s, this.array)), this.array[t + 0] = e, this.array[t + 1] = s, this;\n  }\n  setXYZ(t, e, s, i) {\n    return t *= this.itemSize, this.normalized && (e = It(e, this.array), s = It(s, this.array), i = It(i, this.array)), this.array[t + 0] = e, this.array[t + 1] = s, this.array[t + 2] = i, this;\n  }\n  setXYZW(t, e, s, i, r) {\n    return t *= this.itemSize, this.normalized && (e = It(e, this.array), s = It(s, this.array), i = It(i, this.array), r = It(r, this.array)), this.array[t + 0] = e, this.array[t + 1] = s, this.array[t + 2] = i, this.array[t + 3] = r, this;\n  }\n  onChange(t) {\n    return this._onChangeCallback = t, this;\n  }\n  clone() {\n    return nh(\n      this,\n      this.array,\n      this.itemSize,\n      this.normalized\n    ).copy(this);\n  }\n  toJSON() {\n    return {\n      itemSize: this.itemSize,\n      type: this.array.constructor.name,\n      array: Array.from(this.array),\n      normalized: this.normalized\n    };\n  }\n}\nclass c1 extends Le {\n  constructor(t, e, s = !1) {\n    super(new Int8Array(t), e, s);\n  }\n}\nclass l1 extends Le {\n  constructor(t, e, s = !1) {\n    super(new Uint8Array(t), e, s);\n  }\n}\nclass u1 extends Le {\n  constructor(t, e, s = !1) {\n    super(new Uint8ClampedArray(t), e, s);\n  }\n}\nclass f1 extends Le {\n  constructor(t, e, s = !1) {\n    super(new Int16Array(t), e, s);\n  }\n}\nclass d1 extends Le {\n  constructor(t, e, s = !1) {\n    super(new Uint16Array(t), e, s);\n  }\n}\nclass m1 extends Le {\n  constructor(t, e, s = !1) {\n    super(new Int32Array(t), e, s);\n  }\n}\nclass p1 extends Le {\n  constructor(t, e, s = !1) {\n    super(new Uint32Array(t), e, s);\n  }\n}\nclass g1 extends Le {\n  constructor(t, e, s = !1) {\n    super(new Float32Array(t), e, s);\n  }\n}\nconst _0 = {\n  map: /* @__PURE__ */ new Map(),\n  // see https://github.com/catdad/canvas-confetti/issues/209\n  // creating canvases is actually pretty expensive, so we should create a\n  // 1:1 map for bitmap:canvas, so that we can animate in\n  // a performant manner, but also not store them forever so that we don't\n  // have a memory leak\n  transform: function(n) {\n    if (Ku)\n      return n;\n    if (this.map.has(n))\n      return this.map.get(n);\n    const t = new OffscreenCanvas(n.width, n.height);\n    return t.getContext(\"2d\")?.drawImage(n, 0, 0), this.map.set(n, t), t;\n  },\n  clear: function() {\n    this.map.clear();\n  }\n};\nfunction y1(n, t, e) {\n  const s = new OffscreenCanvas(n, t), i = s.getContext(\"2d\");\n  if (i)\n    return e(i), s.transferToImageBitmap();\n}\nfunction x1(n, t, e) {\n  const s = n.createPattern(\n    _0.transform(t),\n    \"no-repeat\"\n  );\n  if (s) {\n    const i = Nc(e);\n    s.setTransform(i), n.fillStyle = s;\n  }\n}\nconst Aa = [\"\", \"-webkit-\", \"-moz-\", \"-o-\", \"-ms-\"];\nfunction Ia(n, t) {\n  const e = t.x || 0, s = t.y || 0, i = t.z || 0;\n  di(\n    n,\n    \"transform\",\n    `translate(${e}px, ${s}px) translateZ(${i}px)`\n  );\n}\nfunction w1(n, t) {\n  const e = t?.easingFn || O.Linear.None, s = t?.duration || 0, i = t?.delay || 0, r = Gt(), o = r + s;\n  let a = 0, h = 0;\n  const c = t.deltaX, l = t.deltaY;\n  function u() {\n    const d = Gt();\n    if (d >= o) {\n      Ia(n, { x: c - a, y: l - h });\n      return;\n    }\n    const f = (d - r) / s, m = e(f), p = c * m, S = l * m;\n    Ia(n, { x: p - a, y: S - h }), a = p, h = S, Vs(u);\n  }\n  setTimeout(() => {\n    u();\n  }, i);\n}\nconst b1 = typeof HTMLElement == \"object\" ? function(t) {\n  return t instanceof HTMLElement;\n} : function(t) {\n  return t && typeof t == \"object\" && t.nodeType === 1 && typeof t.nodeName == \"string\";\n};\nfunction S0(n) {\n  return window.URL.createObjectURL(n);\n}\nfunction v1(n) {\n  return window.URL.revokeObjectURL(n);\n}\nfunction Yc(n) {\n  let t = !1;\n  function e() {\n    /loaded|complete/.test(document.readyState) && !t && (o(), n(), t = !0);\n  }\n  const s = Z(document, \"DOMContentLoaded\", e), i = Z(window, \"load\", e), r = setInterval(e, 100), o = () => {\n    clearInterval(r), s?.(), i?.();\n  };\n  return o;\n}\nfunction C0(n) {\n  return Z(window, \"beforeunload\", (t) => {\n    n(t);\n  });\n}\nasync function _1(n, t = 6e4) {\n  return new Promise((e, s) => {\n    const i = document.createElement(\"script\");\n    i.type = \"text/javascript\", i.async = !1, i.onload = (o) => {\n      clearTimeout(r), e(o), i.onerror = i.onload = null;\n    }, i.onerror = (o) => {\n      clearTimeout(r), s(o);\n    }, i.src = n;\n    const r = setTimeout(() => {\n      s(\"Timeout!\");\n    }, t);\n    document.body.appendChild(i);\n  });\n}\nfunction pr(n, t) {\n  const e = document.createElement(\"a\");\n  e.style.visibility = \"hidden\", e.download = t, typeof n == \"string\" ? e.href = n : e.href = window.URL.createObjectURL(n), e.click();\n}\nasync function S1(n, t = document.getElementsByTagName(\"head\")[0], e = 6e4) {\n  return new Promise((s, i) => {\n    const r = document.createElement(\"link\");\n    r.setAttribute(\"type\", \"text/css\"), r.setAttribute(\"rel\", \"stylesheet\"), r.onload = (a) => {\n      clearTimeout(o), s(a), r.onerror = r.onload = null;\n    }, r.onerror = (a) => {\n      clearTimeout(o), i(a);\n    }, r.setAttribute(\"href\", n);\n    const o = setTimeout(() => {\n      i(\"Timeout!\");\n    }, e);\n    t.appendChild(r);\n  });\n}\nfunction C1() {\n  return new Promise((n) => {\n    const t = Array.from(\n      document.querySelectorAll(\"link[rel=stylesheet]\")\n    );\n    let e = document.styleSheets.length || 0;\n    const s = () => e >= t.length ? (n(), !0) : !1;\n    s() || t.forEach((i) => {\n      i.onload = () => {\n        e += 1, s();\n      };\n    });\n  });\n}\nconst ka = new Ws();\nasync function E0(n, t = 6e4) {\n  return new Promise((e, s) => {\n    const i = typeof n == \"string\" ? n : S0(n), r = ka.get(i);\n    if (r)\n      return e(r);\n    const o = setTimeout(() => {\n      s(\"Timeout!\");\n    }, t), a = document.createElement(\"img\");\n    a.onload = () => {\n      clearTimeout(o), a.onerror = a.onload = null;\n      const h = a.naturalWidth || a.width, c = a.naturalHeight || a.height, l = {\n        width: h,\n        height: c,\n        aspectRatio: h / c,\n        element: a,\n        imageData: t0(a)\n      };\n      ka.set(i, l), e(l);\n    }, a.onerror = (h) => {\n      clearTimeout(o), s(h);\n    }, a.src = i;\n  });\n}\nasync function P0(n = Ut.text, t = [\"*\"]) {\n  const s = (await $h(t))[0], i = await ai(s, n);\n  return {\n    type: s.type,\n    name: s.name,\n    size: s.size,\n    data: i\n  };\n}\nasync function E1(n = [\"image/*\"]) {\n  const e = (await $h(n))[0];\n  if (!e.type.match(/image\\/*/))\n    return new Error(\"Not Image Type!\");\n  const s = await ai(\n    e,\n    Ut.arraybuffer\n  ), i = Dr(s), r = await E0(i);\n  return {\n    type: e.type,\n    name: e.name,\n    size: e.size,\n    data: s,\n    width: r.width,\n    height: r.height,\n    aspectRatio: r.aspectRatio,\n    imageData: r.imageData\n  };\n}\nfunction P1() {\n  return window.getSelection()?.toString() || \"\";\n}\nfunction T1(n) {\n  document.getElementsByTagName(\"title\")[0].innerText = n, document.title = n;\n}\nfunction M1(n = 200) {\n  \"vibrate\" in navigator ? window.navigator.vibrate(n) : console.error(\"Your device is not support vibrate on this browser.\");\n}\nasync function A1(n) {\n  if (navigator.clipboard)\n    return await navigator.clipboard.writeText(n);\n  {\n    const t = document.createElement(\"textarea\");\n    return t.value = n, t.style.opacity = \"0\", t.style.position = \"fixed\", t.style.top = \"0\", t.style.left = \"0\", t.focus(), t.select(), document.execCommand(\"copy\");\n  }\n}\nfunction I1(n = 0, t = 0) {\n  window.scrollTo(n, t);\n}\nfunction k1() {\n  let n = Yo, t = Yo;\n  return \"scrollRestoration\" in window.history && (window.history.scrollRestoration = \"manual\", n = C0(() => {\n    window.history.scrollRestoration = \"auto\";\n  }), t = Yc(() => {\n    window.history.scrollRestoration = \"manual\";\n  })), () => {\n    n(), t();\n  };\n}\nfunction D1(n) {\n  return /(html|body)/i.test(n.tagName) || n === document.documentElement;\n}\nconst L1 = (n) => n === document.activeElement && (n.type || n.href);\nfunction Bc() {\n  return parseFloat(getComputedStyle(document.documentElement).fontSize);\n}\nfunction R1(n) {\n  return n * Bc();\n}\nfunction O1(n) {\n  return n.parentElement ? parseFloat(getComputedStyle(n.parentElement).fontSize) : Bc();\n}\nconst z1 = (n) => {\n  let t = n;\n  for (; t && t.nodeType !== 1; ) {\n    const e = t.parentElement || n.parentNode;\n    if (!e)\n      break;\n    t = e;\n  }\n  return t;\n}, N1 = (n) => n.parentElement, Xc = (n, t = []) => !n || n.parentElement === null && n.parentNode === null ? t : Xc(n.parentElement, t.concat([n]));\nfunction Y1(n) {\n  const t = Xc(n);\n  for (let e = 0, s = t.length; e < s; e++)\n    if (/(auto|scroll)/.test(\n      Yn(t[e], \"overflow\") + Yn(t[e], \"overflow-y\") + Yn(t[e], \"overflow-x\")\n    ))\n      return t[e];\n  return document.scrollingElement || document.documentElement;\n}\nconst B1 = (n, t) => n.contains ? n != t && n.contains(t) : !!(n.compareDocumentPosition(t) & 16), X1 = (n) => Array.prototype.slice.call(n.parentElement?.children).filter((t) => t !== n), F1 = (n) => n.nextElementSibling, U1 = (n) => n.previousElementSibling, G1 = (n, t) => n.closest(t), V1 = (n) => n.shadowRoot, fi = (n) => n.tagName === \"INPUT\" || n instanceof HTMLInputElement, Fc = (n) => n.tagName === \"SELECT\" || n instanceof HTMLSelectElement, $1 = (n) => n.tagName === \"TEXTAREA\" || n instanceof HTMLTextAreaElement, Uc = (n) => fi(n) && n.getAttribute(\"type\") === \"checkbox\", Gc = (n) => fi(n) && n.getAttribute(\"type\") === \"radio\", q1 = (n) => fi(n) && n.getAttribute(\"type\") === \"text\", j1 = (n) => fi(n) && n.getAttribute(\"type\") === \"number\";\nfunction H1(n, t) {\n  if (Fc(n)) {\n    const e = n.options;\n    for (let s = 0, i = e.length; s < i; s++)\n      e[s].selected = e[s].value == t;\n  }\n}\nfunction W1(n, t) {\n  if (Gc(n)) {\n    const e = document.getElementsByName(n.name);\n    for (let s = 0, i = e.length; s < i; s++) {\n      const r = e[s];\n      r.checked = r.value == t;\n    }\n  }\n}\nfunction Z1(n, t) {\n  Uc(n) && (n.checked = t);\n}\nfunction Ds(n, t, e = \"append\") {\n  typeof t == \"string\" ? n[e](k0(t)) : n[e](t);\n}\nfunction T0(n, t) {\n  if (typeof t == \"string\") {\n    n.innerHTML = t;\n    const e = $c(n);\n    e != n && (n = e);\n  } else\n    Ds(t, \"replaceWith\");\n}\nconst M0 = function(n) {\n  T0(n, \"\");\n}, J1 = (n, t) => {\n  n.textContent = t;\n}, K1 = (n) => {\n  if (n instanceof SVGElement)\n    return \"\";\n  let t = n.innerText;\n  if (!t) {\n    const e = n.querySelector(\"slot\")?.assignedNodes() || [];\n    let s = 0;\n    for (; !t && s <= e.length - 1; )\n      \"innerText\" in e[s] && (t = e[s].innerText), s++;\n  }\n  return t;\n}, Q1 = (n) => n.remove();\nfunction tx(n, t) {\n  Yn(n, \"display\") == \"none\" && t === void 0 || t === !0 ? A0(n) : I0(n);\n}\nfunction A0(n) {\n  qs(\n    n,\n    \"display\",\n    n instanceof HTMLTableRowElement ? \"table-row\" : n instanceof HTMLTableCellElement ? \"table-cell\" : \"block\"\n  );\n}\nfunction I0(n) {\n  qs(n, \"display\", \"none\");\n}\nfunction Vc(n, t, e = \"toggle\") {\n  const s = t.split(/[,\\s]+/);\n  if (n.classList)\n    s.forEach((i) => {\n      const r = i.trim();\n      r !== \"\" && n.classList[e](r);\n    });\n  else {\n    const i = n.className.split(/ +/);\n    let r = !1;\n    s.forEach((o) => {\n      const a = o.trim();\n      if (a !== \"\") {\n        const h = i.indexOf(a);\n        switch (e) {\n          case \"add\":\n            h === -1 && (i.push(a), r = !0);\n            break;\n          case \"remove\":\n            h !== -1 && (i.splice(h, 1), r = !0);\n            break;\n          case \"toggle\":\n            h === -1 ? i.push(a) : i.splice(h, 1), r = !0;\n            break;\n        }\n      }\n    }), r && ds(\n      n,\n      \"class\",\n      i.join(\" \").replace(/^\\s+/, \"\").replace(/\\s+$/, \"\")\n    );\n  }\n}\nfunction ex(n, t) {\n  Vc(n, t, \"add\");\n}\nfunction sx(n, t) {\n  Vc(n, t, \"remove\");\n}\nfunction nx(n, t) {\n  return new RegExp(\"(?:^|\\\\s+)\" + t + \"(?:\\\\s+|$)\").test(n.className);\n}\nfunction k0(n, t = !1) {\n  const e = document.createElement(\"template\");\n  return e.innerHTML = n, t && e.content.childNodes.forEach((s) => {\n    const i = $c(s);\n    i != s && e.content.replaceChild(i, s);\n  }), e.content;\n}\nfunction D0(n) {\n  return document.createElement.call(document, n);\n}\nfunction ix(n) {\n  return document.createElementNS(\"http://www.w3.org/1999/xhtml\", n);\n}\nfunction rx(n) {\n  return document.createTextNode.call(document, n);\n}\nfunction $c(n) {\n  return n.tagName == \"SCRIPT\" && (n = Da(n)), n.querySelectorAll && n.querySelectorAll(\"script\").forEach((t) => {\n    t.parentNode?.replaceChild(Da(t), t);\n  }), n;\n}\nfunction Da(n) {\n  const t = n.ownerDocument.createElement(\"script\");\n  t.text = n.text;\n  const e = n.attributes;\n  for (let s = 0, i = e.length; s < i; s++)\n    t.setAttribute(e[s].name, e[s].value);\n  return t;\n}\nfunction ox(n, t = \"http://test.com/localstorage.html\") {\n  const e = document.createElement(\"iframe\");\n  e.src = t, document.body.append(e), setTimeout(function() {\n    e.contentWindow?.postMessage(n, t);\n  }, 4e3), setTimeout(function() {\n    e.remove();\n  }, 6e3);\n}\nfunction ax(n) {\n  const t = new Proxy(window, {\n    get(e, s, i) {\n      if (typeof s == \"string\" && [\"open\", \"location\", \"document\"].includes(s))\n        throw new Error(`禁止访问 key: ${s}`);\n      return s === \"window\" ? t : Reflect.get(e, s, i);\n    },\n    set(e, s, i, r) {\n      return Reflect.set(e, s, i, r);\n    }\n  });\n  new Function(\"window\", `with(window) { ${n} }`)(t, null);\n}\nfunction L0() {\n  let n = null;\n  if (window.ActiveXObject) {\n    const t = [\n      \"Microsoft.XMLHTTP\",\n      \"MSXML6.XMLHTTP\",\n      \"MSXML5.XMLHTTP\",\n      \"MSXML4.XMLHTTP\",\n      \"MSXML3.XMLHTTP\",\n      \"MSXML2.XMLHTTP\",\n      \"MSXML.XMLHTTP\"\n    ];\n    for (let e = 0, s = t.length; e < s; e++)\n      try {\n        n = new window.ActiveXObject(t[e]);\n        break;\n      } catch {\n        continue;\n      }\n  } else\n    n = new XMLHttpRequest();\n  return n;\n}\nfunction R0(n, t) {\n  return new Promise((e, s) => {\n    const {\n      method: i = \"GET\",\n      data: r = {},\n      multipartFormDataString: o = \"\",\n      boundary: a = \"\",\n      headers: h = {},\n      withCredentials: c = !1,\n      responseType: l = \"json\",\n      timeout: u = 3e4\n    } = t || {}, d = L0();\n    d.timeout = u, d.responseType = l, d.onreadystatechange = function(b) {\n      d.readyState === 4 && (d.status === 200 ? e(d.response) : s(d.statusText));\n    }, d.ontimeout = () => {\n      s(`${n} is timed out for ${u}ms.`);\n    }, d.addEventListener(\"load\", (b) => t?.load?.(b, d), !1), d.addEventListener(\n      \"loadstart\",\n      (b) => t?.loadstart?.(b, d),\n      !1\n    ), d.addEventListener(\n      \"loadend\",\n      (b) => t?.loadend?.(b, d),\n      !1\n    ), d.addEventListener(\n      \"progress\",\n      (b) => {\n        if (b.lengthComputable) {\n          const x = Math.round(b.loaded * 100 / b.total);\n          t?.progress?.(b, d, x);\n        }\n      },\n      !1\n    ), d.addEventListener(\"error\", (b) => t?.error?.(b, d), !1), d.addEventListener(\"abort\", (b) => t?.abort?.(b, d), !1);\n    const f = i.toUpperCase();\n    Object.assign(h, {\n      Accept: \"*/*\"\n      // \"Access-Control-Request-Headers\": \"authorization\",\n      // \"Access-Control-Request-Method\": \"POST\",\n      // \"Content-Type\": \"application/json;charset=utf-8\",\n    });\n    let m = !1, p = !1, S = !1;\n    function g() {\n      d.setRequestHeader(\"If-Modified-Since\", \"Sat, 1 Jan 2000 00:00:00 GMT\"), c && (d.withCredentials = !0);\n      for (const b in h)\n        pt(b).toLowerCase() == \"content-type\" && h[b].toLowerCase() == \"multipart/form-data\" ? (m = !0, d.setRequestHeader(\n          \"Content-Type\",\n          \"multipart/form-data; boundary=\" + a\n        )) : (pt(b).toLowerCase() == \"content-type\" && (h[b].toLowerCase().indexOf(\"text/plain\") >= 0 ? p = !0 : h[b].toLowerCase().indexOf(\"application/json\") >= 0 && (S = !0)), d.setRequestHeader(b, h[b]));\n    }\n    switch (f) {\n      case \"GET\":\n        let b = \"\";\n        r instanceof FormData ? b = Af(r) : b = Mf(r), d.open(\"GET\", Tf(n, b), !0), g(), d.send(null);\n        break;\n      default:\n        d.open(f, n, !0), g(), m ? d.sendAsBinary(o) : S ? d.send(JSON.stringify(r)) : p ? d.send(\n          Object.entries(r).map(([x, w]) => `${x}=${w}`).join(`\\r\n`)\n        ) : d.send(\n          Object.entries(r).map(\n            ([x, w]) => `${encodeURIComponent(x)}=${encodeURIComponent(w)}`\n          ).join(\"&\")\n        );\n        break;\n    }\n  });\n}\nasync function hx(n) {\n  const t = {\n    url: n.action || \"\",\n    data: {},\n    contentType: n.method.toLowerCase() === \"post\" && n.enctype ? n.enctype : \"application/x-www-form-urlencoded\",\n    multipartFormDataString: \"\",\n    boundary: \"---------------------------\" + Date.now().toString(16)\n  }, e = [], s = t.contentType == \"multipart/form-data\";\n  for (let i = 0; i < n.elements.length; i++) {\n    const r = n.elements[i];\n    if (!r.hasAttribute(\"name\"))\n      continue;\n    const o = r.getAttribute(\"type\");\n    switch (r.nodeName.toUpperCase() === \"INPUT\" && o ? o.toUpperCase() : \"\") {\n      case \"FILE\":\n        const h = r;\n        if (s)\n          for (let u = 0, d = h.files?.length || 0; u < d; u++) {\n            const f = h.files?.[u];\n            if (f) {\n              const m = await ai(\n                f,\n                Ut.binaryString\n              );\n              e.push(\n                'Content-Disposition: form-data; name=\"' + h.name + '\"; filename=\"' + f.name + `\"\\r\nContent-Type: ` + f.type + `\\r\n\\r\n` + m + `\\r\n`\n              );\n            }\n          }\n        break;\n      case \"RADIO\":\n      case \"CHECKBOX\":\n        if (!r.checked)\n          break;\n      default:\n        const l = r;\n        s ? e.push(\n          'Content-Disposition: form-data; name=\"' + l.name + `\"\\r\n\\r\n` + l.value + `\\r\n`\n        ) : t.data[l.name] = l.value;\n        break;\n    }\n  }\n  return t.multipartFormDataString = \"--\" + t.boundary + `\\r\n` + e.join(\"--\" + t.boundary + `\\r\n`) + \"--\" + t.boundary + `--\\r\n`, t;\n}\nfunction qc(n) {\n  const t = [];\n  for (let e = 0, s = Aa.length; e < s; e++) {\n    const i = pt(Aa[e] + n);\n    t.push(i);\n  }\n  return t;\n}\nfunction Yn(n, t, e) {\n  const s = Mc(n);\n  return s.props.style = s.props.style || {}, t ? s.props.style[t] || s.props.style[Ka(t)] || s.props.style[pt(t)] || \"\" : s.props.style;\n}\nfunction qs(n, t, e) {\n  fr(n, (s) => {\n    s.props.style = s.props.style || {}, typeof t == \"string\" && e ? s.props.style[t] = e : t instanceof Object && Object.keys(t).forEach((i) => {\n      s.props.style[i] = t[i];\n    });\n  }), Ic();\n}\nfunction jc(n, t = !1) {\n  const e = {};\n  if (!t)\n    if (getComputedStyle) {\n      const s = getComputedStyle(n);\n      for (let i = 0, r = s.length; i < r; i++) {\n        const o = s[i];\n        e[o] = s.getPropertyValue(o);\n      }\n    } else {\n      const s = n.style || n.currentStyle;\n      for (const i in s)\n        Object.prototype.hasOwnProperty.call(s, i) && (e[i] = s[i]);\n    }\n  return n.style.cssText && n.style.cssText.split(\";\").filter((s) => !!s).forEach((s) => {\n    const [i, r] = s.split(\":\").map((o) => o.trim());\n    i && r && (e[i] = r);\n  }), e;\n}\nfunction cx(n, t) {\n  const e = qc(t), s = e.length;\n  let i = \"\";\n  for (let r = 0; r < s; r++) {\n    const o = e[r];\n    if (i = n[o] || \"\", i)\n      return i;\n  }\n  return i;\n}\nfunction lx(n, t, e) {\n  const s = qc(t), i = s.length;\n  let r = \"\";\n  for (let o = 0; o < i; o++) {\n    const a = s[o];\n    if (r = \"style\" in n && n.style[a] || \"currentStyle\" in n && n.currentStyle[a] || \"\", r)\n      return r;\n  }\n  if (getComputedStyle) {\n    const o = getComputedStyle(n, e);\n    for (let a = 0; a < i; a++) {\n      const h = s[a];\n      if (r = o.getPropertyValue(h).trim(), r)\n        return r;\n    }\n  }\n  return r;\n}\nfunction di(n, t, e) {\n  if (t)\n    if (typeof t == \"string\" && e)\n      try {\n        n.style.setProperty(\n          t,\n          e.replace(/!important/i, \"\"),\n          e.toLowerCase().includes(\"!important\") ? \"important\" : \"\"\n        );\n      } catch {\n        n.style[t] = e;\n      }\n    else\n      t instanceof Object && Object.keys(t).forEach((s) => {\n        di(n, s, t[s]);\n      });\n}\nfunction Hc(n, t) {\n  typeof t == \"string\" ? n.style.removeProperty(pt(t)) : Object.keys(t).forEach((e) => {\n    Hc(n, e);\n  });\n}\nfunction O0(n, t) {\n  let e;\n  if (typeof t == \"string\") {\n    const s = document.querySelector(t)?.shadowRoot;\n    s ? e = s : e = document.querySelector(t);\n  } else\n    e = t || document.getElementsByTagName(\"head\")[0];\n  if (e) {\n    const s = document.createElement(\"style\");\n    return s.innerHTML = n, e.appendChild(s), () => {\n      (e instanceof HTMLElement || e instanceof ShadowRoot) && e.removeChild(s);\n    };\n  } else {\n    const s = document.styleSheets[0].insertRule(n);\n    return () => {\n      document.styleSheets[0].deleteRule(s);\n    };\n  }\n}\nclass z0 {\n  selector;\n  name;\n  value;\n  constructor(t, e, s) {\n    this.selector = t, this.name = e, this.value = s;\n  }\n  toString() {\n    return `${this.selector} { ${this.name}: ${this.value} }`;\n  }\n}\nclass N0 {\n  propertyName;\n  values = [];\n  constructor(t) {\n    this.propertyName = t;\n  }\n  add(t, e) {\n    this.values.push(new z0(t, this.propertyName, e));\n  }\n}\nasync function Y0() {\n  const n = [], t = document.querySelectorAll(\"style, link\");\n  for (let e = 0, s = t.length; e < s; e++) {\n    const i = t[e];\n    let r = i.innerHTML;\n    switch (i.nodeName.toLowerCase()) {\n      case \"style\":\n        break;\n      case \"link\":\n        r = await R0(i.href, {\n          method: \"GET\",\n          responseType: \"text\"\n        });\n        break;\n    }\n    r = r.replace(/\\/\\/.+?(?=\\n|\\r|$)|\\/\\*[\\s\\S]+?\\*\\//g, \"\").replace(/@[^{};]*;|@[^{};]*\\{[^}]*\\}/g, \"\").replace(/[\\\\n\\n]+(?<=[\\\\n\\n]+)\\s+/g, \"\"), n.push(r);\n  }\n  return n;\n}\nasync function ux() {\n  const n = {}, t = await Y0();\n  for (let e = 0, s = t.length; e < s; e++) {\n    const r = t[e].match(/[^{]*{[^}]*}/g);\n    if (r)\n      for (let o = 0, a = r.length; o < a; o++) {\n        const h = r[o].split(/[{}]/g), c = h[0].trim(), u = h[1].split(\";\");\n        for (let d = 0; d < u.length; d++)\n          if (u[d].trim() != \"\") {\n            const f = u[d].split(\":\"), m = f[0].trim().toLowerCase(), p = f[1];\n            n[m] || (n[m] = new N0(m)), p && n[m].add(c, p.trim());\n          }\n      }\n  }\n  return n;\n}\nfunction Me(n, t, e) {\n  if (t === void 0 && e === void 0)\n    return Wc(n);\n  if (typeof t == \"string\" && e === void 0)\n    return B0(n, t);\n  typeof t == \"object\" ? fr(n, (s) => {\n    for (const i in t)\n      i == \"style\" ? qs(n, i, t[i]) : Object.prototype.hasOwnProperty.call(t, i) && (s.props[i] = \"\" + t[i]);\n  }) : typeof t == \"string\" && typeof e == \"string\" && (t == \"style\" ? qs(n, t, e) : fr(n, (s) => {\n    s.props[t] = \"\" + e;\n  })), Ic();\n}\nfunction Wc(n) {\n  const t = {};\n  for (let e = 0, s = n.attributes, i = s.length; e < i; e++) {\n    const r = s[e];\n    r.nodeName && r.nodeValue && (r.nodeName === \"style\" ? t[r.nodeName] = jc(n, !0) : t[r.nodeName] = r.nodeValue);\n  }\n  return t;\n}\nfunction B0(n, t) {\n  return t === \"style\" ? jc(n, !0) : n.getAttribute(pt(t));\n}\nfunction ds(n, t, e) {\n  return n.setAttribute(pt(t), \"\" + e);\n}\nfunction fx(n, t) {\n  t.split(/[,\\s]+/i).forEach((e) => {\n    const s = pt(e.trim());\n    s != \"\" && n.removeAttribute(s);\n  });\n}\nfunction X0(n, t) {\n  for (const e in t) {\n    const s = t[e];\n    switch (e) {\n      case \"fill\":\n        s !== \"none\" && (n.fillStyle = s);\n        break;\n      case \"stroke\":\n        s !== \"none\" && (n.strokeStyle = s);\n        break;\n      case \"stroke-width\":\n      case \"strokeWidth\":\n        n.lineWidth = Number(s);\n        break;\n      case \"stroke-linecap\":\n      case \"strokeLinecap\":\n        n.lineCap = s;\n        break;\n      case \"stroke-linejoin\":\n      case \"strokeLinejoin\":\n        switch (s) {\n          case \"round\":\n          case \"bevel\":\n          case \"miter\":\n            n.lineJoin = s;\n            break;\n          default:\n            n.lineJoin = \"miter\";\n            break;\n        }\n        break;\n      case \"stroke-miterlimit\":\n      case \"strokeMiterlimit\":\n        n.miterLimit = Number(s);\n        break;\n      case \"stroke-opacity\":\n      case \"strokeOpacity\":\n        break;\n      case \"stroke-dashoffset\":\n      case \"strokeDashoffset\":\n        n.lineDashOffset = Number(s);\n        break;\n      case \"stroke-dasharray\":\n      case \"strokeDasharray\":\n        typeof s == \"string\" && n.setLineDash(s.split(/\\s+/).map((i) => Number(i)));\n        break;\n      case \"cursor\":\n        break;\n      case \"font\":\n        typeof s == \"string\" && (n.font = s);\n        break;\n      case \"font-size\":\n      case \"fontSize\":\n        n.font += ` ${s}`;\n        break;\n      case \"font-family\":\n      case \"fontFamily\":\n        n.font += ` ${s}`;\n        break;\n      case \"font-weight\":\n      case \"fontWeight\":\n        break;\n      case \"font-style\":\n      case \"fontStyle\":\n        break;\n      case \"text-anchor\":\n      case \"textAnchor\":\n        switch (s) {\n          case \"middle\":\n            n.textAlign = \"center\";\n            break;\n          case \"end\":\n            n.textAlign = \"end\";\n            break;\n          case \"start\":\n            n.textAlign = \"start\";\n            break;\n        }\n        break;\n      case \"alignment-baseline\":\n      case \"alignmentBaseline\":\n        switch (s) {\n          case \"middle\":\n          case \"bottom\":\n          case \"top\":\n          case \"alphabetic\":\n          case \"hanging\":\n          case \"ideographic\":\n            n.textBaseline = s;\n            break;\n          default:\n            n.textBaseline = \"alphabetic\";\n            break;\n        }\n        break;\n    }\n  }\n}\nfunction dx() {\n  return \"ontouchstart\" in window || \"ontouchend\" in document || navigator.maxTouchPoints > 0;\n}\nfunction mx() {\n  return !!window.PointerEvent;\n}\nfunction px(n, t) {\n  let e = document.createElement(n);\n  t = \"on\" + t;\n  let s = t in e;\n  return s || (e.setAttribute(t, \"return;\"), s = typeof e[t] == \"function\"), e = null, s;\n}\nfunction La() {\n  return {\n    x: 0,\n    y: 0,\n    isDown: !1\n  };\n}\nfunction ys() {\n  const n = La(), t = La();\n  return {\n    start: n,\n    current: t,\n    setStart: function(e, s) {\n      n.x = e.x, n.y = e.y, n.isDown = typeof s == \"boolean\" ? s : typeof e.isDown == \"boolean\" ? e.isDown : !1, this.setCurrent(e, s);\n    },\n    setCurrent: (e, s) => {\n      t.x = e.x, t.y = e.y, t.isDown = typeof s == \"boolean\" ? s : typeof e.isDown == \"boolean\" ? e.isDown : !1;\n    }\n  };\n}\nfunction ro(n = document.documentElement, t = !1) {\n  return X(n, \"mousemove\", t);\n}\nfunction F0(n = document.documentElement, t = !1) {\n  return X(n, \"mousedown\", t);\n}\nfunction U0(n = document.documentElement, t = !1) {\n  return X(n, \"mouseup\", t);\n}\nfunction gx(n = document.documentElement, t = !1) {\n  return X(n, \"mouseover\", t);\n}\nfunction yx(n = document.documentElement, t = !1) {\n  return X(n, \"mouseout\", t);\n}\nfunction xx(n = document.documentElement, t = !1) {\n  return X(n, \"mouseenter\", t);\n}\nfunction bx(n = document.documentElement, t = !1) {\n  return X(n, \"mouseleave\", t);\n}\nfunction vx(n = document.documentElement, t = !1) {\n  return X(n, \"click\", t);\n}\nfunction _x(n = document.documentElement, t = !1) {\n  return X(n, \"dblclick\", t);\n}\nfunction Sx(n = document.documentElement, t = !1) {\n  return X(\n    n,\n    \"onwheel\" in document.createElement(\"div\") ? \"wheel\" : document.onmousewheel !== void 0 ? \"mousewheel\" : \"DOMMouseScroll\",\n    // older Firefox\n    t\n  );\n}\nfunction Cx(n = document.documentElement, t = !1) {\n  return X(n, \"contextmenu\", t);\n}\nfunction G0(n = document.documentElement, t = !1) {\n  return X(n, \"touchmove\", t);\n}\nfunction V0(n = document.documentElement, t = !1) {\n  return X(n, \"touchstart\", t);\n}\nfunction $0(n = document.documentElement, t = !1) {\n  return X(n, \"touchend\", t);\n}\nfunction q0(n = document.documentElement, t = !1) {\n  return X(n, \"touchcancel\", t);\n}\nfunction Zc(n = document.documentElement, t = !1) {\n  return X(n, \"pointermove\", t);\n}\nfunction Jc(n = document.documentElement, t = !1) {\n  return X(n, \"pointerdown\", t);\n}\nfunction Kc(n = document.documentElement, t = !1) {\n  return X(n, \"pointerup\", t);\n}\nfunction Qc(n = document.documentElement, t = !1) {\n  return X(n, \"pointercancel\", t);\n}\nfunction Ex(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"pan\", e);\n    },\n    (e) => {\n      t.off(\"pan\", e);\n    }\n  );\n}\nfunction Px(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"panmove\", e);\n    },\n    (e) => {\n      t.off(\"panmove\", e);\n    }\n  );\n}\nfunction Tx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"panstart\", e);\n    },\n    (e) => {\n      t.off(\"panstart\", e);\n    }\n  );\n}\nfunction Mx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"panend\", e);\n    },\n    (e) => {\n      t.off(\"panend\", e);\n    }\n  );\n}\nfunction Ax(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"pancancel\", e);\n    },\n    (e) => {\n      t.off(\"pancancel\", e);\n    }\n  );\n}\nfunction Ix(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"panleft\", e);\n    },\n    (e) => {\n      t.off(\"panleft\", e);\n    }\n  );\n}\nfunction kx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"panright\", e);\n    },\n    (e) => {\n      t.off(\"panright\", e);\n    }\n  );\n}\nfunction Dx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"panup\", e);\n    },\n    (e) => {\n      t.off(\"panup\", e);\n    }\n  );\n}\nfunction Lx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"pandown\", e);\n    },\n    (e) => {\n      t.off(\"pandown\", e);\n    }\n  );\n}\nfunction Rx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"pinch\", e);\n    },\n    (e) => {\n      t.off(\"pinch\", e);\n    }\n  );\n}\nfunction Ox(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"pinchin\", e);\n    },\n    (e) => {\n      t.off(\"pinchin\", e);\n    }\n  );\n}\nfunction zx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"pinchout\", e);\n    },\n    (e) => {\n      t.off(\"pinchout\", e);\n    }\n  );\n}\nfunction Nx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"press\", e);\n    },\n    (e) => {\n      t.off(\"press\", e);\n    }\n  );\n}\nfunction Yx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"rotate\", e);\n    },\n    (e) => {\n      t.off(\"rotate\", e);\n    }\n  );\n}\nfunction Bx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"swipe\", e);\n    },\n    (e) => {\n      t.off(\"swipe\", e);\n    }\n  );\n}\nfunction Xx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"swipeleft\", e);\n    },\n    (e) => {\n      t.off(\"swipeleft\", e);\n    }\n  );\n}\nfunction Fx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"swiperight\", e);\n    },\n    (e) => {\n      t.off(\"swiperight\", e);\n    }\n  );\n}\nfunction Ux(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"swipeup\", e);\n    },\n    (e) => {\n      t.off(\"swipeup\", e);\n    }\n  );\n}\nfunction Gx(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"swipedown\", e);\n    },\n    (e) => {\n      t.off(\"swipedown\", e);\n    }\n  );\n}\nfunction j0(n = document.documentElement) {\n  const t = new rt(n);\n  return tt(\n    (e) => {\n      t.on(\"tap\", e);\n    },\n    (e) => {\n      t.off(\"tap\", e);\n    }\n  );\n}\nfunction Vx(n = document.documentElement) {\n  const t = new rt(document.documentElement);\n  return tt(\n    (e) => {\n      const s = (i) => {\n        !i.target || n == i.target || n.contains(i.target) || e(i);\n      };\n      return t.on(\"tap\", s), s;\n    },\n    (e, s) => {\n      t.off(\"tap\", s);\n    }\n  );\n}\nfunction $x(n = document.documentElement, t = !1) {\n  return X(n, \"transitionstart\", t);\n}\nfunction qx(n = document.documentElement, t = !1) {\n  return dc(\n    X(n, \"transitionend\", t),\n    X(\n      n,\n      \"webkitTransitionEnd\",\n      t\n    ),\n    X(n, \"oTransitionEnd\", t),\n    X(n, \"MSTransitionEnd\", t)\n  );\n}\nfunction jx(n = document.documentElement, t = !1) {\n  return X(n, \"animationstart\", t);\n}\nfunction Hx(n = document.documentElement, t = !1) {\n  return X(n, \"animationend\", t);\n}\nfunction H0(n = document.documentElement, t = !1) {\n  return X(n, \"drag\", t);\n}\nfunction W0(n = document.documentElement, t = !1) {\n  return X(n, \"dragstart\", t);\n}\nfunction Z0(n = document.documentElement, t = !1) {\n  return X(n, \"dragend\", t);\n}\nfunction J0(n = document.documentElement, t = !1) {\n  return X(n, \"drop\", t);\n}\nfunction K0(n = document.documentElement, t = !1) {\n  return X(n, \"dragenter\", t);\n}\nfunction Q0(n = document.documentElement, t = !1) {\n  return X(n, \"dragleave\", t);\n}\nfunction tg(n = document.documentElement, t = !1) {\n  return X(n, \"dragover\", t);\n}\nfunction eg(n = document.documentElement, t = !1) {\n  return X(n, \"keydown\", t);\n}\nfunction sg(n = document.documentElement, t = !1) {\n  return X(n, \"keyup\", t);\n}\nfunction Wx(n = document.documentElement, t = !1) {\n  return X(n, \"keypress\", t);\n}\nfunction Zx(n = document.documentElement, t) {\n  const e = t?.useMousePoint || ys();\n  return ro(n).pipe(\n    it((s) => (e.setCurrent(mt(s, n)), e))\n  );\n}\nfunction ng(n = document.documentElement, t) {\n  const e = t?.useMousePoint || ys();\n  return ro(n).pipe(\n    Tp(\n      F0(n).pipe(\n        je((s) => {\n          e.setStart(mt(s, n), !0), t?.start?.(s, e);\n        })\n      ),\n      () => U0(n).pipe(\n        je((s) => {\n          e.setCurrent(mt(s, n), !1), t?.end?.(s, e);\n        })\n      )\n    ),\n    Cp(),\n    it((s) => (e.setCurrent(mt(s, n), !0), e))\n  );\n}\nfunction ig(n = document.documentElement, t) {\n  const e = t?.useMousePoint || ys();\n  return V0(n).pipe(\n    je((s) => {\n      const i = s.changedTouches[0];\n      e.setStart(mt(i, n), !0), t?.start?.(i, e);\n    }),\n    ci(\n      () => G0(n).pipe(\n        eo(\n          hi($0(n), q0(n)).pipe(\n            je((s) => {\n              const i = s.changedTouches[0];\n              e.setCurrent(mt(i, n), !1), t?.end?.(i, e);\n            })\n          )\n        )\n      )\n    ),\n    it((s) => {\n      const i = s.changedTouches[0];\n      return e.setCurrent(mt(i, n), !0), e;\n    })\n  );\n}\nfunction gr(n = document.documentElement, t) {\n  const e = t?.useMousePoint || ys();\n  return Jc(n).pipe(\n    je((s) => {\n      e.setStart(mt(s, n), !0), t?.start?.(s, e);\n    }),\n    ci(\n      () => Zc(n).pipe(\n        eo(\n          hi(Kc(n), Qc(n)).pipe(\n            je((s) => {\n              e.setCurrent(mt(s, n), !1), t?.end?.(s, e);\n            })\n          )\n        )\n      )\n    ),\n    it((s) => (e.setCurrent(mt(s, n), !0), e))\n  );\n}\nfunction Jx(n = document.documentElement, t) {\n  return hi(\n    ng(n, t),\n    ig(n, t)\n    // usePointerDownMovePoint$(el, options),\n  );\n}\nfunction rg(n = document.documentElement, t) {\n  const e = t?.useMousePoint || ys();\n  return dc(ro(n), Jc(n)).pipe(\n    pc((s) => s instanceof PointerEvent ? (e.setStart(mt(s, n), !0), t?.start?.(s, e), Zc(n).pipe(\n      eo(\n        hi(Kc(n), Qc(n)).pipe(\n          je((i) => {\n            e.setCurrent(mt(i, n), !1), t?.end?.(i, e);\n          })\n        )\n      )\n    )) : s instanceof MouseEvent ? jm(s) : Qh),\n    it((s) => (e.setCurrent(\n      mt(s, n),\n      s instanceof PointerEvent\n    ), e))\n  );\n}\nfunction Kx(n) {\n  return new nt((t) => gr(n, {\n    start: () => {\n      t.next(0);\n    }\n  }).subscribe((s) => {\n    t.next(s.current.y - s.start.y);\n  }).unsubscribe).pipe(De());\n}\nfunction Qx(n, t) {\n  ds(n, \"draggable\", \"true\");\n  const e = W0(n, !0).subscribe(\n    (r) => {\n      Fe(r), gc(r);\n      const o = r.dataTransfer;\n      o && (o.effectAllowed = \"move\", o.setData(\"text/plain\", \"some-data\")), t?.onStart?.(r);\n    }\n  ), s = H0(n).subscribe((r) => {\n    Fe(r), t?.onDrag?.(r);\n  }), i = Z0(n).subscribe((r) => {\n    Fe(r), t?.onEnd?.(r);\n  });\n  return () => {\n    e.unsubscribe(), s.unsubscribe(), i.unsubscribe();\n  };\n}\nfunction tw(n, t) {\n  const e = K0(n).subscribe((o) => {\n    Fe(o), t?.onEnter?.(o);\n  }), s = tg(n).subscribe((o) => {\n    Fe(o);\n    const a = o.dataTransfer;\n    a && (a.dropEffect = \"move\"), t?.onOver?.(o);\n  }), i = Q0(n).subscribe((o) => {\n    Fe(o), t?.onLeave?.(o);\n  }), r = J0(n).subscribe((o) => {\n    Fe(o);\n    const a = o.dataTransfer;\n    if (!a) {\n      t?.onDrop?.(o, []);\n      return;\n    }\n    t?.onDrop?.(o, [...a.files]);\n  });\n  return () => {\n    e.unsubscribe(), s.unsubscribe(), i.unsubscribe(), r.unsubscribe();\n  };\n}\nfunction og(n = 10) {\n  return X(window, \"scroll\", !0).pipe(Pp(n));\n}\nfunction ew() {\n  return X(document, \"visibilitychange\", !0).pipe(\n    it(() => document.visibilityState === \"visible\"),\n    De()\n  );\n}\nfunction sw() {\n  return X(window, \"storage\", !1);\n}\nfunction nw() {\n  return {\n    screenWidth: window.screen.width,\n    screenHeight: window.screen.height,\n    innerWidth: window.innerWidth,\n    // 浏览器窗口的宽度（不包括滚动条）\n    innerHeight: window.innerHeight,\n    // 浏览器窗口的高度（不包括滚动条）\n    screenX: window.screenX,\n    screenY: window.screenY,\n    // window.screenY + (window.outerHeight - window.innerHeight)\n    pageXOffset: window.pageXOffset,\n    // 当前页面水平滚动的像素数\n    pageYOffset: window.pageYOffset\n    // 当前页面垂直滚动的像素数\n  };\n}\nfunction sn() {\n  const n = document.documentElement || document.body;\n  return {\n    el: n,\n    // 不包括边框大小，只包含内容和内边距\n    clientWidth: n.clientWidth,\n    clientHeight: n.clientHeight,\n    clientTop: n.clientTop,\n    clientLeft: n.clientLeft,\n    // const contentWidth =\n    //   [...el.children].reduce(\n    //     (a, e) => Math.max(a, e.getBoundingClientRect().right),\n    //     0\n    //   ) - el.getBoundingClientRect().x;\n    // 元素的内容区域加上它的内边距再加上任何溢出内容的尺寸\n    // 当内容没有溢出时，scrollWidth == clientWidth , scrollHeight == clientHeight\n    // 当内容溢出时，   scrollWidth >  clientWidth , scrollHeight >  clientHeight\n    scrollWidth: n.scrollWidth,\n    scrollHeight: n.scrollHeight,\n    scrollTop: n.scrollTop,\n    scrollLeft: n.scrollLeft,\n    // 返回元素的实际大小，包括边框、内边距和滚动条\n    offsetWidth: n.offsetWidth,\n    offsetHeight: n.offsetHeight,\n    offsetTop: n.offsetTop,\n    offsetLeft: n.offsetLeft,\n    offsetParent: n.offsetParent\n  };\n}\nfunction tl() {\n  const { clientWidth: n, clientHeight: t, scrollLeft: e, scrollTop: s } = sn();\n  return {\n    width: window.innerWidth || n,\n    height: window.innerHeight || t,\n    x: window.pageXOffset || e,\n    y: window.pageYOffset || s\n  };\n}\nfunction iw() {\n  const { scrollWidth: n, scrollHeight: t, scrollLeft: e, scrollTop: s } = sn();\n  return {\n    width: n,\n    height: t,\n    scrollX: window.pageXOffset || e,\n    scrollY: window.pageYOffset || s\n  };\n}\nfunction el(n) {\n  return n.getBoundingClientRect();\n}\nfunction rw(n) {\n  return {\n    x: n.offsetLeft,\n    y: n.offsetTop,\n    width: n.offsetWidth,\n    height: n.offsetHeight\n  };\n}\nfunction Ra(n) {\n  const { top: t, left: e, width: s, height: i } = n.getBoundingClientRect(), { scrollLeft: r, scrollTop: o } = sn();\n  return {\n    x: e + r,\n    y: t + o,\n    width: s,\n    height: i\n  };\n}\nfunction ow(n) {\n  let t = n, e = 0, s = 0;\n  for (; t !== null; )\n    e += t.offsetLeft, s += t.offsetTop, t.offsetParent instanceof HTMLElement ? t = t.offsetParent : t = null;\n  return {\n    x: e,\n    y: s,\n    width: n.offsetWidth,\n    height: n.offsetHeight\n  };\n}\nfunction aw() {\n  const { clientHeight: n, scrollTop: t, scrollHeight: e } = sn(), s = e - n;\n  return s <= 0 ? 0 : t / s * 100;\n}\nfunction hw(n) {\n  const t = tl(), e = el(n);\n  return e.bottom >= 0 && e.top <= t.height && e.right >= 0 && e.left <= t.width;\n}\nfunction cw(n) {\n  if (\"center\" in n) {\n    const t = n.center, e = el(n.target);\n    return {\n      x: t.x - e.x,\n      y: t.y - e.y\n    };\n  }\n  return {\n    x: n.clientX,\n    y: n.clientY\n  };\n}\nfunction Oa(n) {\n  if (\"center\" in n)\n    return n.center;\n  if (typeof n.pageX == \"number\" && typeof n.pageY == \"number\")\n    return {\n      x: n.pageX,\n      y: n.pageY\n    };\n  const { scrollLeft: t, scrollTop: e } = sn();\n  return {\n    x: n.clientX + t,\n    y: n.clientY + e\n  };\n}\nfunction mt(n, t) {\n  const e = {\n    x: 0,\n    y: 0\n  };\n  if (t) {\n    const s = Oa(n), i = Ra(t);\n    e.x = N(s.x - i.x, 0, i.width), e.y = N(s.y - i.y, 0, i.height);\n  } else {\n    let s = 0, i = 0;\n    if (\"currentTarget\" in n && n.currentTarget && n.target && n.currentTarget != n.target) {\n      const r = n.currentTarget.getBoundingClientRect(), o = n.target.getBoundingClientRect();\n      s = o.left - r.left, i = o.top - r.top;\n    }\n    if (\"offsetX\" in n)\n      e.x = n.offsetX + s, e.y = n.offsetY + i;\n    else {\n      const r = Oa(n), o = Ra(n.target);\n      e.x = N(r.x - o.x + s, 0, o.width), e.y = N(r.y - o.y + i, 0, o.height);\n    }\n  }\n  return e;\n}\nfunction lw(n) {\n  let t = 0;\n  return n || (n = window.event), n.wheelDelta ? (t = n.wheelDelta / 120, window.opera && (t = -t)) : n.detail && (t = -n.detail / 3), t;\n}\nfunction uw(n) {\n  if (document.implementation.hasFeature(\"MouseEvents\", \"2.0\"))\n    return n.button;\n  switch (n.button) {\n    case 0:\n    case 1:\n    case 3:\n    case 5:\n    case 7:\n      return 0;\n    case 2:\n    case 6:\n      return 2;\n    case 4:\n      return 1;\n  }\n}\nconst fw = {\n  BACKSPACE: 8,\n  TAB: 9,\n  COMMA: 188,\n  DELETE: 46,\n  END: 35,\n  ENTER: 13,\n  ESCAPE: 27,\n  HOME: 36,\n  LEFT: 37,\n  UP: 38,\n  DOWN: 40,\n  PAGE_DOWN: 34,\n  PAGE_UP: 33,\n  PERIOD: 190,\n  RIGHT: 39,\n  SPACE: 32\n}, dw = {\n  NULL: \"\",\n  CANCEL: \"\",\n  // ^break\n  HELP: \"\",\n  BACK_SPACE: \"\",\n  TAB: \"\",\n  CLEAR: \"\",\n  RETURN: \"\",\n  ENTER: \"\",\n  SHIFT: \"\",\n  CONTROL: \"\",\n  ALT: \"\",\n  PAUSE: \"\",\n  ESCAPE: \"\",\n  SPACE: \"\",\n  PAGE_UP: \"\",\n  PAGE_DOWN: \"\",\n  END: \"\",\n  HOME: \"\",\n  ARROW_LEFT: \"\",\n  LEFT: \"\",\n  ARROW_UP: \"\",\n  UP: \"\",\n  ARROW_RIGHT: \"\",\n  RIGHT: \"\",\n  ARROW_DOWN: \"\",\n  DOWN: \"\",\n  INSERT: \"\",\n  DELETE: \"\",\n  SEMICOLON: \"\",\n  EQUALS: \"\",\n  NUMPAD0: \"\",\n  // number pad keys\n  NUMPAD1: \"\",\n  NUMPAD2: \"\",\n  NUMPAD3: \"\",\n  NUMPAD4: \"\",\n  NUMPAD5: \"\",\n  NUMPAD6: \"\",\n  NUMPAD7: \"\",\n  NUMPAD8: \"\",\n  NUMPAD9: \"\",\n  MULTIPLY: \"\",\n  ADD: \"\",\n  SEPARATOR: \"\",\n  SUBTRACT: \"\",\n  DECIMAL: \"\",\n  DIVIDE: \"\",\n  F1: \"\",\n  // function keys\n  F2: \"\",\n  F3: \"\",\n  F4: \"\",\n  F5: \"\",\n  F6: \"\",\n  F7: \"\",\n  F8: \"\",\n  F9: \"\",\n  F10: \"\",\n  F11: \"\",\n  F12: \"\",\n  COMMAND: \"\",\n  // Apple command key\n  META: \"\",\n  // alias for Windows key\n  /**\n   * Japanese modifier key for switching between full- and half-width\n   * characters.\n   * @see <https://en.wikipedia.org/wiki/Language_input_keys>\n   */\n  ZENKAKU_HANKAKU: \"\"\n};\nfunction mw(n) {\n  if (n.key)\n    return n.key;\n  if (n.keyCode)\n    return n.keyCode;\n  if (n.which)\n    return n.which;\n}\nfunction sl(n, t) {\n  const e = t.ctrl || !1, s = t.shift || !1, i = t.alt || !1;\n  return (e === n.metaKey || e === n.ctrlKey) && s === n.shiftKey && i === n.altKey && t.keys.map((r) => r.toLowerCase()).includes(n.key.toLowerCase());\n}\nfunction ag(n) {\n  return eg(n.target || document || window).pipe(\n    mc((t) => sl(t, n)),\n    it((t) => {\n      t.stopPropagation(), t.preventDefault();\n    })\n  );\n}\nfunction pw(n) {\n  return sg(n.target || document || window).pipe(\n    mc((t) => sl(t, n)),\n    it((t) => {\n      t.stopPropagation(), t.preventDefault();\n    })\n  );\n}\nfunction hg(n = { keys: [\"o\"] }, t = Ut.text) {\n  return ag(n).pipe(\n    // 方法1：使用 switchMap 调用异步函数\n    ci(async () => await P0(t))\n    // 方法2：将 Promise 转为 Observable\n    // switchMap(() => {\n    //   return from(useSelectFile(type));\n    // })\n  );\n}\nasync function gw(n = { keys: [\"o\"] }, t = Ut.text) {\n  return Wm(hg(n, t));\n}\nasync function cg(n, t) {\n  return new Promise((e) => {\n    const s = new ResizeObserver((i) => {\n      const r = n.getBoundingClientRect();\n      t(r), e(() => {\n        s.unobserve(n);\n      });\n    });\n    s.observe(n);\n  });\n}\nfunction nl(n = document.documentElement, t) {\n  return new nt((e) => {\n    const s = n.getBoundingClientRect();\n    let i = s.x, r = s.y, o = s.width, a = s.height;\n    e.next(s);\n    const h = new ResizeObserver((c) => {\n      const l = n.getBoundingClientRect();\n      (i != l.x || r != l.y || o != l.width || a != l.height) && (i = l.x, r = l.y, o = l.width, a = l.height, e.next(l));\n    });\n    return h.observe(n, t), () => {\n      h.unobserve(n), h.disconnect();\n    };\n  });\n}\nfunction yw() {\n  return X(\n    window,\n    \"orientationchange\" in window ? \"orientationchange\" : \"resize\"\n  ).pipe(\n    it((n) => ({\n      width: n.target.innerWidth,\n      height: n.target.innerHeight\n    })),\n    Ke({\n      width: window.innerWidth,\n      height: window.innerHeight\n    })\n  );\n}\nfunction lg() {\n  const n = {\n    x: 0,\n    y: 0,\n    dx: 0,\n    dy: 0,\n    dStartX: 0,\n    dStartY: 0,\n    isDown: !1\n  }, t = {\n    x: 0,\n    y: 0,\n    dx: 0,\n    dy: 0,\n    dStartX: 0,\n    dStartY: 0,\n    isDown: !1\n  };\n  return {\n    mousePoint: t,\n    setStartMousePoint: function(e, s) {\n      n.x = e.x, n.y = e.y, n.isDown = typeof s == \"boolean\" ? s : !1, this.setCurrentMousePoint(e, s);\n    },\n    setCurrentMousePoint: (e, s) => {\n      const i = t.x, r = t.y;\n      t.x = e.x, t.y = e.y, t.dx = t.x - i, t.dy = t.y - r, t.dStartX = t.x - n.x, t.dStartY = t.y - n.y, t.isDown = typeof s == \"boolean\" ? s : !1;\n    }\n  };\n}\nfunction xw(n = document.documentElement) {\n  const t = new Qn(), e = new rt(n);\n  let s = [];\n  const i = lg(), r = i.mousePoint, o = (A) => {\n    t.emit(\"mouseDown\", A);\n  }, a = (A) => {\n    t.emit(\"mouseUp\", A);\n  }, h = (A) => {\n    r.isDown || i.setCurrentMousePoint(mt(A, n)), t.emit(\"mouseMove\", A);\n  }, c = (A) => {\n    t.emit(\"mouseOver\", A);\n  }, l = (A) => {\n    t.emit(\"mouseOut\", A);\n  }, u = (A) => {\n    t.emit(\"mouseEnter\", A);\n  }, d = (A) => {\n    t.emit(\"mouseLeave\", A);\n  }, f = (A) => {\n    t.emit(\"mouseClick\", A);\n  }, m = (A) => {\n    t.emit(\"mouseDoubleClick\", A);\n  }, p = (A) => {\n    t.emit(\"mouseWheel\", A);\n  }, S = (A) => {\n    t.emit(\"mouseContextMenu\", A);\n  }, g = (A) => {\n    t.emit(\"touchStart\", A);\n  }, b = (A) => {\n    t.emit(\"touchEnd\", A);\n  }, x = (A) => {\n    t.emit(\"touchCancel\", A);\n  }, w = (A) => {\n    const ot = A.changedTouches[0];\n    r.isDown || i.setCurrentMousePoint(mt(ot, n)), t.emit(\"touchMove\", A);\n  }, C = (A) => {\n    t.emit(\"pointerDown\", A);\n  }, _ = (A) => {\n    t.emit(\"pointerUp\", A);\n  }, D = (A) => {\n    t.emit(\"pointerCancel\", A);\n  }, z = (A) => {\n    t.emit(\"pointerMove\", A);\n  }, B = (A) => {\n    t.emit(\"pan\", A);\n  }, G = (A) => {\n    t.emit(\"panStart\", A);\n  }, V = (A) => {\n    t.emit(\"panMove\", A);\n  }, j = (A) => {\n    t.emit(\"panEnd\", A);\n  }, et = (A) => {\n    t.emit(\"panCancel\", A);\n  }, J = (A) => {\n    t.emit(\"panLeft\", A);\n  }, Ht = (A) => {\n    t.emit(\"panRight\", A);\n  }, Dt = (A) => {\n    t.emit(\"panUp\", A);\n  }, Yt = (A) => {\n    t.emit(\"panDown\", A);\n  }, Wt = (A) => {\n    t.emit(\"pinch\", A);\n  }, L = (A) => {\n    t.emit(\"pinchin\", A);\n  }, k = (A) => {\n    t.emit(\"pinchout\", A);\n  }, F = (A) => {\n    t.emit(\"press\", A);\n  }, H = (A) => {\n    t.emit(\"rotate\", A);\n  }, Ct = (A) => {\n    t.emit(\"swipe\", A);\n  }, Zt = (A) => {\n    t.emit(\"swipeLeft\", A);\n  }, rn = (A) => {\n    t.emit(\"swipeRight\", A);\n  }, on = (A) => {\n    t.emit(\"swipeUp\", A);\n  }, ut = (A) => {\n    t.emit(\"swipeDown\", A);\n  }, se = (A) => {\n    t.emit(\"tap\", A);\n  }, st = (A) => {\n    !A.target || n == A.target || n.contains(A.target) || t.emit(\"tapOutSide\", A);\n  }, bt = (A) => {\n    t.emit(\"transitionstart\", A);\n  }, Qe = (A) => {\n    t.emit(\"transitionend\", A);\n  }, Re = (A) => {\n    t.emit(\"animationstart\", A);\n  }, Oe = (A) => {\n    t.emit(\"animationend\", A);\n  };\n  let be = {\n    ...n.getBoundingClientRect(),\n    width: n.offsetWidth,\n    height: n.offsetHeight\n  };\n  return {\n    el: n,\n    get rect() {\n      return be;\n    },\n    mousePoint: r,\n    eb: t,\n    start: async function() {\n      s.push(Z(n, \"mousedown\", o)), s.push(Z(n, \"mouseup\", a)), s.push(Z(n, \"mousemove\", h)), s.push(Z(n, \"mouseover\", c)), s.push(Z(n, \"mouseout\", l)), s.push(Z(n, \"mouseenter\", u)), s.push(Z(n, \"mouseleave\", d)), s.push(Z(n, \"click\", f)), s.push(Z(n, \"dblclick\", m)), s.push(\n        Z(\n          n,\n          \"onwheel\" in document.createElement(\"div\") ? \"wheel\" : document.onmousewheel !== void 0 ? \"mousewheel\" : \"DOMMouseScroll\",\n          // older Firefox\n          p\n        )\n      ), s.push(Z(n, \"contextmenu\", S)), s.push(Z(n, \"touchstart\", g)), s.push(Z(n, \"touchend\", b)), s.push(Z(n, \"touchcancel\", x)), s.push(Z(n, \"touchmove\", w)), s.push(Z(n, \"pointerdown\", C)), s.push(Z(n, \"pointerup\", _)), s.push(Z(n, \"pointercancel\", D)), s.push(Z(n, \"pointermove\", z)), e.on(\"pan\", B), e.on(\"panstart\", G), e.on(\"panmove\", V), e.on(\"panend\", j), e.on(\"pancancel\", et), e.on(\"panleft\", J), e.on(\"panright\", Ht), e.on(\"panup\", Dt), e.on(\"pandown\", Yt), e.on(\"pinch\", Wt), e.on(\"pinchin\", L), e.on(\"pinchout\", k), e.on(\"press\", F), e.on(\"rotate\", H), e.on(\"swipe\", Ct), e.on(\"swipeleft\", Zt), e.on(\"swiperight\", rn), e.on(\"swipeup\", on), e.on(\"swipedown\", ut), e.on(\"tap\", se), s.push(Z(document, \"pointerdown\", st)), s.push(Z(n, \"transitionstart\", bt)), s.push(Z(n, \"transitionend\", Qe)), s.push(Z(n, \"animationstart\", Re)), s.push(Z(n, \"animationend\", Oe));\n      const A = await cg(n, (ot) => {\n        be = ot, t.emit(\"resize\", ot);\n      });\n      s.push(A), s.push(\n        ug(this, {\n          start: (ot) => {\n            i.setStartMousePoint(mt(ot, n), !0);\n          },\n          move: (ot) => {\n            i.setCurrentMousePoint(mt(ot, n));\n          },\n          end: (ot) => {\n            i.setCurrentMousePoint(mt(ot, n), !1);\n          }\n        })\n      );\n    },\n    end: () => {\n      t.removeAllListeners(), s.forEach((A) => A()), s = [], e.off(\"pan\", B), e.off(\"panstart\", G), e.off(\"panmove\", V), e.off(\"panend\", j), e.off(\"pancancel\", et), e.off(\"panleft\", J), e.off(\"panright\", Ht), e.off(\"panup\", Dt), e.off(\"pandown\", Yt), e.off(\"pinch\", Wt), e.off(\"pinchin\", L), e.off(\"pinchout\", k), e.off(\"press\", F), e.off(\"rotate\", H), e.off(\"swipe\", Ct), e.off(\"swipeleft\", Zt), e.off(\"swiperight\", rn), e.off(\"swipeup\", on), e.off(\"swipedown\", ut), e.off(\"tap\", se);\n    }\n  };\n}\nfunction ug(n, t) {\n  return fg(n, t);\n}\nfunction fg(n, t) {\n  const e = n.eb, s = (o) => {\n    e.on(\"pointerMove\", r), e.on(\"pointerUp\", i), e.on(\"pointerCancel\", i), t?.start?.(o);\n  }, i = (o) => {\n    e.off(\"pointerMove\", r), e.off(\"pointerUp\", i), e.off(\"pointerCancel\", i), t?.end?.(o);\n  }, r = (o) => {\n    t?.move?.(o);\n  };\n  return e.on(\"pointerDown\", s), () => e.off(\"pointerDown\", s);\n}\nfunction ww(n, t) {\n  const e = n.eb, s = (o) => {\n    document.addEventListener(\"mousemove\", r, !1), document.addEventListener(\"mouseup\", i, !1), t?.start?.(o);\n  }, i = (o) => {\n    document.removeEventListener(\"mousemove\", r, !1), document.removeEventListener(\"mouseup\", i, !1), t?.end?.(o);\n  }, r = (o) => {\n    t?.move?.(o);\n  };\n  return e.on(\"mouseDown\", s), () => e.off(\"mouseDown\", s);\n}\nfunction bw(n, t) {\n  const e = n.eb, s = (o) => {\n    e.on(\"touchMove\", r), e.on(\"touchEnd\", i), e.on(\"touchCancel\", i);\n    const a = o.changedTouches[0];\n    t?.start?.(a);\n  }, i = (o) => {\n    e.off(\"touchMove\", r), e.off(\"touchEnd\", i), e.off(\"touchCancel\", i);\n    const a = o.changedTouches[0];\n    t?.end?.(a);\n  }, r = (o) => {\n    const a = o.changedTouches[0];\n    t?.move?.(a);\n  };\n  return e.on(\"touchStart\", s), () => e.off(\"touchStart\", s);\n}\nlet oo = class {\n  x;\n  y;\n  toX;\n  toY;\n  constructor(t) {\n    this.x = Y(t?.x || 0, 2), this.y = Y(t?.y || 0, 2), this.toX = Y(t?.toX || 0, 2), this.toY = Y(t?.toY || 0, 2);\n  }\n  // 使用绝对值!\n  toSVGPathData() {\n    return [[\"L\", this.toX, this.toY]];\n  }\n  // 使用绝对值!\n  toCanvasContext(t) {\n    t.lineTo(this.toX, this.toY);\n  }\n  getBoundingClientRect(t = 2) {\n    const e = qt(this.x, this.y, this.toX, this.toY);\n    if (e === 0) {\n      const s = Math.min(this.x, this.toX), i = Math.min(this.y, this.toY), r = Math.max(this.x, this.toX), o = Math.max(this.y, this.toY);\n      return {\n        x: s,\n        y: i,\n        width: r - s,\n        height: o - i\n      };\n    } else {\n      const s = Math.sin(e), i = Math.cos(e), r = i * this.x - s * this.y, o = i * this.toX - s * this.toY, a = i * this.y + s * this.x, h = i * this.toY + s * this.toX;\n      return {\n        x: Y(Math.min(r, o), t),\n        y: Y(Math.min(a, h), t),\n        width: Y(Math.max(r, o) - Math.min(r, o), t),\n        height: Y(Math.max(a, h) - Math.min(a, h), t)\n      };\n    }\n  }\n  // t (0.0 to 1.0) : The fraction of the overall duration of the path\n  interpolate(t) {\n    return {\n      x: this.x + t * (this.toX - this.x),\n      y: this.y + t * (this.toY - this.y)\n    };\n  }\n  intersection(t) {\n    const e = this.x, s = this.y, i = t.toX, r = t.toY, o = this.toX - e, a = t.x - i;\n    if (!o && !a)\n      return null;\n    const h = (this.toY - s) / o, c = (t.y - r) / a;\n    if (o) {\n      if (!a)\n        return { x: i, y: h * (i - e) + s };\n    } else\n      return { x: e, y: c * (e - i) + r };\n    const l = (-c * i + r + h * e - s) / (h - c), u = h * (l - e) + s;\n    return isNaN(l) || isNaN(u) ? null : { x: l, y: u };\n  }\n};\nclass yr extends oo {\n  rx;\n  ry;\n  xAxisRotate;\n  largeArcFlag;\n  sweepFlag;\n  constructor(t) {\n    super(t), this.rx = Y(t.rx, 2), this.ry = Y(t.ry, 2), this.xAxisRotate = typeof t?.xAxisRotate == \"number\" ? t?.xAxisRotate : 0, this.largeArcFlag = typeof t?.largeArcFlag == \"number\" ? t?.largeArcFlag : 1, this.sweepFlag = typeof t?.sweepFlag == \"number\" ? t?.sweepFlag : 1;\n  }\n  /// A rx,ry xAxisRotate LargeArcFlag,SweepFlag x,y\n  toSVGPathData() {\n    return [\n      [\n        \"A\",\n        this.rx,\n        this.ry,\n        this.xAxisRotate,\n        this.largeArcFlag,\n        this.sweepFlag,\n        this.toX,\n        this.toY\n      ]\n    ];\n  }\n  toCanvasContext(t) {\n    const [e, s, i, r, o, a, h] = this.convert(\n      this.x,\n      this.y,\n      this.toX,\n      this.toY,\n      this.rx,\n      this.ry,\n      this.xAxisRotate,\n      this.largeArcFlag,\n      this.sweepFlag\n    );\n    t.ellipse(\n      e,\n      s,\n      i,\n      r,\n      o,\n      a,\n      h,\n      !this.sweepFlag\n    );\n  }\n  convert(t, e, s, i, r, o, a, h, c) {\n    const l = a / 180 * Math.PI, u = (t - s) / 2, d = (e - i) / 2, f = Math.cos(l) * u + Math.sin(l) * d, m = -Math.sin(l) * u + Math.cos(l) * d, p = f * f / (r * r) + m * m / (o * o);\n    if (p > 1) {\n      const V = Math.sqrt(p);\n      throw r = V * r, o = V * o, new Error(\n        `Radii are too small to build an arc. Correcting them to ${r}/${o}.`\n      );\n    }\n    const S = Math.sqrt(\n      (r * r * o * o - r * r * m * m - o * o * f * f) / (r * r * m * m + o * o * f * f)\n    ), g = h != c ? 1 : -1, b = g * S * r * m / o, x = g * S * -o * f / r, w = (t + s) / 2, C = (e + i) / 2, _ = Math.cos(l) * b - Math.sin(l) * x + w, D = Math.sin(l) * b + Math.cos(l) * x + C, z = (V, j, et, J) => (V * J >= j * et ? 1 : -1) * Math.acos(\n      (V * et + j * J) / (Math.sqrt(V * V + j * j) * Math.sqrt(et * et + J * J))\n    ), B = z(1, 0, t - _, e - D) - l, G = z(t - _, e - D, s - _, i - D);\n    return [_, D, r, o, l, B, B + G];\n  }\n}\nclass dg extends oo {\n  cx;\n  cy;\n  isLineThrough;\n  constructor(t) {\n    super(t), this.cx = Y(t.cx, 2), this.cy = Y(t.cy, 2), this.isLineThrough = typeof t.isLineThrough == \"boolean\" ? t.isLineThrough : !1;\n  }\n  /// Q cx,cy x,y\n  /// T x,y\n  toSVGPathData() {\n    if (this.isLineThrough) {\n      const t = this.cx * 2 - (this.x + this.toX) / 2, e = this.cy * 2 - (this.y + this.toY) / 2;\n      return [[\"Q\", t, e, this.toX, this.toY]];\n    } else\n      return [[\"Q\", this.cx, this.cy, this.toX, this.toY]];\n  }\n  toCanvasContext(t) {\n    if (this.isLineThrough) {\n      const e = this.cx * 2 - (this.x + this.toX) / 2, s = this.cy * 2 - (this.y + this.toY) / 2;\n      t.quadraticCurveTo(e, s, this.toX, this.toY);\n    } else\n      t.quadraticCurveTo(this.cx, this.cy, this.toX, this.toY);\n  }\n  getBoundingClientRect(t = 2) {\n    const e = [this.x, this.toX], s = [this.y, this.toY];\n    let i, r, o, a;\n    for (let l = 0; l < 2; ++l)\n      i = l == 0 ? this.x - 2 * this.cx + this.toX : this.y - 2 * this.cy + this.toY, r = l == 0 ? -2 * this.x + 2 * this.cx : -2 * this.y + 2 * this.cy, o = l == 0 ? this.x : this.y, Math.abs(i) > 1e-12 && (a = -r / (2 * i), 0 < a && a < 1 && [e, s][l].push(i * a * a + r * a + o));\n    const h = { x: Math.min(0, ...e), y: Math.min(0, ...s) }, c = { x: Math.max(0, ...e), y: Math.max(0, ...s) };\n    return {\n      x: Y(h.x, t),\n      y: Y(h.y, t),\n      width: Y(c.x - h.x, t),\n      height: Y(c.y - h.y, t)\n    };\n  }\n  // t (0.0 to 1.0) : The fraction of the overall duration of the path\n  interpolate(t) {\n    return {\n      x: (1 - t) * (1 - t) * this.x + 2 * (1 - t) * t * this.cx + t * t * this.toX,\n      y: (1 - t) * (1 - t) * this.y + 2 * (1 - t) * t * this.cy + t * t * this.toY\n    };\n  }\n}\nconst mg = dg;\nclass xt extends oo {\n  c1x;\n  c1y;\n  c2x;\n  c2y;\n  constructor(t) {\n    super(t), this.c1x = Y(t.c1x, 2), this.c1y = Y(t.c1y, 2), this.c2x = Y(t.c2x, 2), this.c2y = Y(t.c2y, 2);\n  }\n  clone() {\n    return new xt({\n      x: this.x,\n      y: this.y,\n      c1x: this.c1x,\n      c1y: this.c1y,\n      c2x: this.c2x,\n      c2y: this.c2y,\n      toX: this.toX,\n      toY: this.toY\n    });\n  }\n  /// C c1x,c1y c2x,c2y x,y\n  /// S c2x,c2y x,y\n  toSVGPathData() {\n    return [[\"C\", this.c1x, this.c1y, this.c2x, this.c2y, this.toX, this.toY]];\n  }\n  toCanvasContext(t) {\n    t.bezierCurveTo(\n      this.c1x,\n      this.c1y,\n      this.c2x,\n      this.c2y,\n      this.toX,\n      this.toY\n    );\n  }\n  getBoundingClientRect(t = 2) {\n    let e = this.c2x - 2 * this.c1x + this.x - (this.toX - 2 * this.c2x + this.c1x), s = 2 * (this.c1x - this.x) - 2 * (this.c2x - this.c1x), i = this.x - this.c1x, r = (-s + Math.sqrt(s * s - 4 * e * i)) / 2 / e, o = (-s - Math.sqrt(s * s - 4 * e * i)) / 2 / e;\n    const a = [this.y, this.toY], h = [this.x, this.toX];\n    let c;\n    const l = [];\n    Math.abs(r) > 1e12 && (r = 0.5), Math.abs(o) > 1e12 && (o = 0.5), r >= 0 && r <= 1 && (c = this.interpolate(r), h.push(c.x), a.push(c.y), l.push({ X: c.x, Y: c.y })), o >= 0 && o <= 1 && (c = this.interpolate(o), h.push(c.x), a.push(c.y), l.push({ X: c.x, Y: c.y })), e = this.c2y - 2 * this.c1y + this.y - (this.toY - 2 * this.c2y + this.c1y), s = 2 * (this.c1y - this.y) - 2 * (this.c2y - this.c1y), i = this.y - this.c1y, r = (-s + Math.sqrt(s * s - 4 * e * i)) / 2 / e, o = (-s - Math.sqrt(s * s - 4 * e * i)) / 2 / e, Math.abs(r) > 1e12 && (r = 0.5), Math.abs(o) > 1e12 && (o = 0.5), r >= 0 && r <= 1 && (c = this.interpolate(r), h.push(c.x), a.push(c.y), l.push({ X: c.x, Y: c.y })), o >= 0 && o <= 1 && (c = this.interpolate(o), h.push(c.x), a.push(c.y), l.push({ X: c.x, Y: c.y }));\n    const u = [], d = l.length;\n    for (let p = 0; p < d; p++) {\n      for (let S = p + 1; S < d; S++)\n        l[p].X === l[S].X && l[p].Y === l[S].Y && (S = ++p);\n      u.push({ X: l[p].X, Y: l[p].Y });\n    }\n    const f = { x: Math.min(...h), y: Math.min(...a) }, m = { x: Math.max(...h), y: Math.max(...a) };\n    return {\n      x: Y(f.x, t),\n      y: Y(f.y, t),\n      width: Y(m.x - f.x, t),\n      height: Y(m.y - f.y, t),\n      dots: u\n      // these are the extrema points\n    };\n  }\n  static base3(t, e, s, i, r) {\n    const o = -3 * e + 9 * s - 9 * i + 3 * r, a = t * o + 6 * e - 12 * s + 6 * i;\n    return t * a - 3 * e + 3 * s;\n  }\n  /**\n   * Based on snap.svg bezlen() function\n   * like getTotalLength(), approximate a cubic bézier length\n   * https://github.com/adobe-webplatform/Snap.svg/blob/master/dist/snap.svg.js#L5786\n   */\n  static bezlen(t, e, s, i, r, o, a, h, c = 1) {\n    c = Math.max(0, Math.min(c, 1));\n    const l = c / 2, u = [\n      -0.1252,\n      0.1252,\n      -0.3678,\n      0.3678,\n      -0.5873,\n      0.5873,\n      -0.7699,\n      0.7699,\n      -0.9041,\n      0.9041,\n      -0.9816,\n      0.9816\n    ], d = [\n      0.2491,\n      0.2491,\n      0.2335,\n      0.2335,\n      0.2032,\n      0.2032,\n      0.1601,\n      0.1601,\n      0.1069,\n      0.1069,\n      0.0472,\n      0.0472\n    ];\n    let f = 0;\n    for (let m = 0; m < 12; m++) {\n      const p = l * u[m] + l, S = xt.base3(p, t, s, r, a), g = xt.base3(p, e, i, o, h);\n      f += d[m] * Math.sqrt(S * S + g * g);\n    }\n    return l * f;\n  }\n  // returns length in pixels\n  length(t = 1) {\n    return xt.bezlen(\n      this.x,\n      this.y,\n      this.c1x,\n      this.c1y,\n      this.c2x,\n      this.c2y,\n      this.toX,\n      this.toY,\n      t\n    );\n  }\n  // Find dot coordinates on the given cubic bezier curve at the given length\n  getPointAtSegmentLength(t) {\n    const e = this.getTatLen(t), s = 1 - e, i = Math.pow(s, 3), r = Math.pow(s, 2), o = e * e, a = o * e, h = i * this.x + r * 3 * e * this.c1x + s * 3 * e * e * this.c2x + a * this.toX, c = i * this.y + r * 3 * e * this.c1y + s * 3 * e * e * this.c2y + a * this.toY, l = this.x + 2 * e * (this.c1x - this.x) + o * (this.c2x - 2 * this.c1x + this.x), u = this.y + 2 * e * (this.c1y - this.y) + o * (this.c2y - 2 * this.c1y + this.y), d = this.c1x + 2 * e * (this.c2x - this.c1x) + o * (this.toX - 2 * this.c2x + this.c1x), f = this.c1y + 2 * e * (this.c2y - this.c1y) + o * (this.toY - 2 * this.c2y + this.c1y), m = s * this.x + e * this.c1x, p = s * this.y + e * this.c1y, S = s * this.c2x + e * this.toX, g = s * this.c2y + e * this.toY, b = 90 - Math.atan2(l - d, u - f) * 180 / Math.PI;\n    return {\n      x: h,\n      // x coordinate of the point\n      y: c,\n      // y coordinate of the point\n      m: {\n        x: l,\n        // x coordinate of the left anchor\n        y: u\n        // y coordinate of the left anchor\n      },\n      n: {\n        x: d,\n        // x coordinate of the right anchor\n        y: f\n        // y coordinate of the right anchor\n      },\n      start: {\n        x: m,\n        // x coordinate of the start of the curve\n        y: p\n        // y coordinate of the start of the curve\n      },\n      end: {\n        x: S,\n        //  x coordinate of the end of the curve\n        y: g\n        // y coordinate of the end of the curve\n      },\n      alpha: b\n      // degree: angle of the curve derivative at the point\n    };\n  }\n  // 将 length 转为 t (0.0 to 1.0)\n  getTatLen(t) {\n    const e = this.x, s = this.y, i = this.c1x, r = this.c1y, o = this.c2x, a = this.c2y, h = this.toX, c = this.toY;\n    if (t < 0 || xt.bezlen(e, s, i, r, o, a, h, c) < t)\n      return 0;\n    const l = 1;\n    let u = l / 2, d = l - u, f = xt.bezlen(e, s, i, r, o, a, h, c, d);\n    for (; Math.abs(f - t) > 0.01; )\n      u /= 2, d += (f < t ? 1 : -1) * u, f = xt.bezlen(e, s, i, r, o, a, h, c, d);\n    return d;\n  }\n  // t (0.0 to 1.0) : The fraction of the overall duration of the path\n  interpolate(t) {\n    return {\n      x: Math.pow(1 - t, 3) * this.x + 3 * Math.pow(1 - t, 2) * t * this.c1x + 3 * Math.pow(1 - t, 1) * Math.pow(t, 2) * this.c2x + Math.pow(t, 3) * this.toX,\n      y: Math.pow(1 - t, 3) * this.y + 3 * Math.pow(1 - t, 2) * t * this.c1y + 3 * Math.pow(1 - t, 1) * Math.pow(t, 2) * this.c2y + Math.pow(t, 3) * this.toY\n    };\n  }\n}\nconst Ys = Math.PI * 2;\nfunction za(n, t, e, s) {\n  const i = n * s - t * e < 0 ? -1 : 1;\n  let r = n * e + t * s;\n  return r > 1 && (r = 1), r < -1 && (r = -1), i * Math.acos(r);\n}\nfunction pg(n, t, e, s, i, r, o, a, h, c) {\n  const l = c * (n - e) / 2 + h * (t - s) / 2, u = -h * (n - e) / 2 + c * (t - s) / 2, d = o * o, f = a * a, m = l * l, p = u * u;\n  let S = d * f - d * p - f * m;\n  S < 0 && (S = 0), S /= d * p + f * m, S = Math.sqrt(S) * (i === r ? -1 : 1);\n  const g = S * o / a * u, b = S * -a / o * l, x = c * g - h * b + (n + e) / 2, w = h * g + c * b + (t + s) / 2, C = (l - g) / o, _ = (u - b) / a, D = (-l - g) / o, z = (-u - b) / a, B = za(1, 0, C, _);\n  let G = za(C, _, D, z);\n  return r === 0 && G > 0 && (G -= Ys), r === 1 && G < 0 && (G += Ys), [x, w, B, G];\n}\nfunction gg(n, t) {\n  const e = 1.3333333333333333 * Math.tan(t / 4), s = Math.cos(n), i = Math.sin(n), r = Math.cos(n + t), o = Math.sin(n + t);\n  return [\n    s,\n    i,\n    s - i * e,\n    i + s * e,\n    r + o * e,\n    o - r * e,\n    r,\n    o\n  ];\n}\nfunction il(n, t, e, s, i, r, o, a, h) {\n  const c = Math.sin(h * Ys / 360), l = Math.cos(h * Ys / 360), u = l * (n - e) / 2 + c * (t - s) / 2, d = -c * (n - e) / 2 + l * (t - s) / 2;\n  if (u === 0 && d === 0)\n    return [];\n  if (o === 0 || a === 0)\n    return [];\n  o = Math.abs(o), a = Math.abs(a);\n  const f = u * u / (o * o) + d * d / (a * a);\n  f > 1 && (o *= Math.sqrt(f), a *= Math.sqrt(f));\n  const m = pg(n, t, e, s, i, r, o, a, c, l), p = [];\n  let S = m[2], g = m[3];\n  const b = Math.max(Math.ceil(Math.abs(g) / (Ys / 4)), 1);\n  g /= b;\n  for (let x = 0; x < b; x++)\n    p.push(gg(S, g)), S += g;\n  return p.map((x) => {\n    for (let w = 0; w < x.length; w += 2) {\n      let C = x[w + 0], _ = x[w + 1];\n      C *= o, _ *= a;\n      const D = l * C - c * _, z = c * C + l * _;\n      x[w + 0] = D + m[0], x[w + 1] = z + m[1];\n    }\n    return x;\n  });\n}\nfunction xr(n, t, e, s, i, r) {\n  return [\n    n / 3 + 2 / 3 * e,\n    t / 3 + 2 / 3 * s,\n    i / 3 + 2 / 3 * e,\n    r / 3 + 2 / 3 * s,\n    i,\n    r\n  ];\n}\nfunction Ls(n, t, e, s) {\n  return [n, t, e, s, e, s];\n}\nconst En = {\n  a: 7,\n  // A rx,ry xAxisRotate LargeArcFlag,SweepFlag x,y\n  c: 6,\n  // C c1x,c1y c2x,c2y x,y\n  s: 4,\n  // S c2x,c2y x,y\n  q: 4,\n  // Q cx,cy x,y\n  t: 2,\n  // T x,y\n  m: 2,\n  // M x,y\n  l: 2,\n  // L x,y\n  h: 1,\n  // H x\n  v: 1,\n  // V y\n  z: 0\n  // Z\n  // r: 4\n};\nfunction We(n = \"path\") {\n  return document.createElementNS.call(\n    document,\n    \"http://www.w3.org/2000/svg\",\n    n\n  );\n}\nfunction rl() {\n  return We(\"path\");\n}\nconst yg = (n) => n instanceof SVGElement && n.tagName === \"path\";\nfunction xg(n, t = \"shape\") {\n  return pr(\n    Vh(n),\n    `${t}.svg`\n  );\n}\nfunction ol(n) {\n  return typeof n != \"string\" ? !1 : (n = n.trim(), /^[mlhvzaqtcs]\\s*[-+.0-9][^mlhvzaqtcs]+/i.test(n) && /[\\dz]$/i.test(n));\n}\nfunction wg(n) {\n  return n.map((t) => {\n    if (!t[0])\n      return \"\";\n    switch (t[0].toLowerCase()) {\n      case \"a\":\n        return `${t[0]} ${t[1]},${t[2]} ${t[3]} ${t[4]},${t[5]} ${t[6]},${t[7]}`;\n      case \"c\":\n        return `${t[0]} ${t[1]},${t[2]} ${t[3]},${t[4]} ${t[5]},${t[6]}`;\n      case \"s\":\n      case \"q\":\n        return `${t[0]} ${t[1]},${t[2]} ${t[3]},${t[4]}`;\n      default:\n        return t[0] + \" \" + t.slice(1).join(\",\");\n    }\n  }).join(\" \");\n}\nfunction al(n) {\n  const t = [];\n  return ol(n) && n.replace(\n    /([mlhvzaqtcs])([^mlhvzaqtcs]*)/gi,\n    (e, s, i) => {\n      let r = s.toLowerCase();\n      const o = Ir(i);\n      for (r == \"m\" && o.length > En[r] && (t.push([s, ...o.splice(0, En[r])]), r = \"l\", s = s == \"m\" ? \"l\" : \"L\"); o.length; ) {\n        if (o.length < En[r])\n          throw new Error(\n            `parseSVGPath substring:{ ${e} } command:{ ${s} } args:{ ${o} }`\n          );\n        t.push([\n          s,\n          ...o.splice(0, En[r])\n        ]);\n      }\n      return r == \"z\" && t.push([s]), \"\";\n    }\n  ), t;\n}\nfunction hl(n) {\n  let t = 0, e = 0, s = 0, i = 0;\n  return n.map(function(r) {\n    const o = r[0], a = o.toUpperCase();\n    if (o != a)\n      switch (r[0] = a, o) {\n        case \"a\":\n          r[6] += s, r[7] += i;\n          break;\n        case \"v\":\n          r[1] += i;\n          break;\n        case \"h\":\n          r[1] += s;\n          break;\n        default:\n          for (let h = 1; h < r.length; )\n            r[h++] += s, r[h++] += i;\n      }\n    switch (a) {\n      case \"Z\":\n        s = t, i = e;\n        break;\n      case \"H\":\n        s = r[1];\n        break;\n      case \"V\":\n        i = r[1];\n        break;\n      case \"M\":\n        s = t = r[1], i = e = r[2];\n        break;\n      default:\n        s = r[r.length - 2], i = r[r.length - 1];\n    }\n    return r;\n  });\n}\nfunction bg(n) {\n  const t = [];\n  let e = 0, s = 0, i = 0, r = 0, o = 0, a = 0, h = 0, c = 0, l;\n  for (let u = 0, d = n.length; u < d; u++) {\n    let f = n[u];\n    const m = f[0];\n    switch (m) {\n      case \"M\":\n        e = f[1], s = f[2];\n        break;\n      case \"A\":\n        const p = il(\n          i,\n          r,\n          f[6],\n          f[7],\n          f[4],\n          f[5],\n          f[1],\n          f[2],\n          f[3]\n        );\n        if (!p.length)\n          continue;\n        p.forEach((b, x) => {\n          const [w, C, _, D, z, B, G, V] = b;\n          f = [\"C\", _, D, z, B, G, V], x < p.length - 1 && t.push(f);\n        });\n        break;\n      case \"S\":\n        let S = i, g = r;\n        (l == \"C\" || l == \"S\") && (S += S - h, g += g - c), f = [\"C\", S, g, f[1], f[2], f[3], f[4]];\n        break;\n      case \"T\":\n        l == \"Q\" || l == \"T\" ? (o = i * 2 - o, a = r * 2 - a) : (o = i, a = r), f = [\"C\", ...xr(i, r, o, a, f[1], f[2])];\n        break;\n      case \"Q\":\n        o = f[1], a = f[2], f = [\"C\", ...xr(i, r, f[1], f[2], f[3], f[4])];\n        break;\n      case \"L\":\n        f = [\"C\", ...Ls(i, r, f[1], f[2])];\n        break;\n      case \"H\":\n        f = [\"C\", ...Ls(i, r, f[1], r)];\n        break;\n      case \"V\":\n        f = [\"C\", ...Ls(i, r, i, f[1])];\n        break;\n      case \"Z\":\n        f = [\"C\", ...Ls(i, r, e, s)];\n        break;\n    }\n    l = m, i = f[f.length - 2], r = f[f.length - 1], f.length > 4 ? (h = f[f.length - 4], c = f[f.length - 3]) : (h = i, c = r), t.push(f);\n  }\n  return t;\n}\nclass jn {\n  video;\n  constructor(t) {\n    this.video = t;\n  }\n  setSrcObject(t) {\n    this.video.addEventListener(\"loadedmetadata\", (e) => {\n      e.target;\n    }), this.video.srcObject = t;\n  }\n  captureWebCamera() {\n    navigator.mediaDevices.getUserMedia({\n      video: !0\n    }).then((t) => {\n      this.setSrcObject(t);\n    });\n  }\n  // feature test for native video media switching media\n  static async videoMediaChangeSupport() {\n    return new Promise((t) => {\n      const e = document.createElement(\"iframe\"), s = document.createElement(\"video\"), i = document.createElement(\"source\"), r = new MediaSource();\n      r.addEventListener(\"sourceopen\", () => t(!0)), i.src = URL.createObjectURL(r), i.media = \"(min-width:10px)\", s.append(i), e.width = \"5\", e.style.cssText = \"position: absolute; visibility: hidden;\", document.documentElement.append(e), e.contentDocument?.body.append(s), setTimeout(() => {\n        e.width = \"15\";\n      }), setTimeout(() => {\n        e.remove(), t(!1);\n      }, 1e3);\n    });\n  }\n  static tryAutoPlayOrAutoPlayAfterClick(t) {\n    return new Promise((e) => {\n      t.play().then(() => {\n        t.autoplay = !0, e(!0);\n      }).catch(() => {\n        jn.setAutoPlayWhenClick(t), e(!1);\n      });\n    });\n  }\n  // 监听页面的点击事件，一旦点过了就能autoplay了\n  static setAutoPlayWhenClick(t) {\n    function e() {\n      t.autoplay = !0, t.play(), document.removeEventListener(\"click\", e), document.removeEventListener(\"touchend\", e);\n    }\n    document.addEventListener(\"click\", e), document.addEventListener(\"touchend\", e);\n  }\n}\nclass cl extends Qn {\n  source;\n  raw = \"\";\n  mode = \"text\";\n  tagname = \"\";\n  nodename = \"\";\n  textchunk = \"\";\n  entity = \"\";\n  quote = \"\";\n  attrs = {};\n  constructor(t) {\n    super(), this.source = t;\n  }\n  parse() {\n    const t = yu(this.source);\n    if (t === 0) {\n      this.emit(\"finish\");\n      return;\n    }\n    let e, s, i = Lo(this.source, 0);\n    for (let r = 1; r < t; r++)\n      e = s, s = i, i = Lo(this.source, r), this.raw += s, s && this.step(s, i, e);\n    i && this.step(i, void 0, s), this.emit(\"finish\");\n  }\n  step(t, e, s) {\n    t == `\n` && this.emit(\"newline\"), this.act(t, e, s);\n  }\n  act(t, e, s) {\n    switch (this.mode) {\n      case \"text\":\n        switch (t) {\n          case \"<\":\n          case \"eof\":\n            this.nodename = \"\", this.attrs = {}, this.mode = \"tag name start\", this.raw = this.raw.slice(0, -1), this.textchunk && this.emit(\"text\", this.textchunk), this.raw += t, this.textchunk = \"\";\n            break;\n          case \"&\":\n            this.mode = \"entity\", this.entity = \"\";\n            break;\n          default:\n            this.textchunk += t;\n            break;\n        }\n        break;\n      case \"entity\":\n        fe(\"whitespace\", t) ? (this.textchunk += Na(this.entity), this.mode = \"text\") : t == \";\" ? (this.textchunk += Na(this.entity + t), this.mode = \"text\") : this.entity += t;\n        break;\n      case \"special\":\n        if (s == \"!\" && t == \"-\" && e == \"-\") {\n          this.mode = \"comment start\";\n          break;\n        }\n        if (this.textchunk == \"[CDATA\" && t == \"[\") {\n          this.mode = \"cdata\", this.textchunk = \"\";\n          break;\n        }\n        if (t == \">\" || t == \"eof\") {\n          this.emit(\"special\", this.textchunk), this.mode = \"text\", this.textchunk = \"\";\n          break;\n        }\n        this.textchunk += t;\n        break;\n      case \"cdata\":\n        if (s == \"]\" && t == \"]\" && e == \">\") {\n          this.mode = \"cdata end\", this.textchunk = this.textchunk.slice(0, -1);\n          break;\n        }\n        t == \"eof\" && (this.mode = \"cdata end\", this.act(t, e, s)), this.textchunk += t;\n        break;\n      case \"cdata end\":\n        this.emit(\"cdata\", this.textchunk), this.textchunk = \"\", this.mode = \"text\";\n        break;\n      case \"comment start\":\n        e == \">\" || t == \"eof\" ? (this.emit(\"comment\", \"\"), this.mode = \"skip\") : this.mode = \"comment\";\n        break;\n      case \"skip\":\n        this.mode = \"text\";\n        break;\n      case \"comment\":\n        t == \"-\" && s == \"-\" && e == \">\" ? (this.mode = \"comment end\", this.textchunk = this.textchunk.slice(0, -1)) : t == \"eof\" ? this.emit(\"comment\", this.textchunk) : this.textchunk += t;\n        break;\n      case \"comment end\":\n        this.emit(\"comment\", this.textchunk), this.textchunk = \"\", this.mode = \"text\";\n        break;\n      case \"declaration\":\n        if (t == \"?\" && e == \">\") {\n          this.mode = \"declaration end\";\n          break;\n        }\n        t == \"eof\" && this.emit(\"comment\", this.textchunk), this.textchunk += t;\n        break;\n      case \"declaration end\":\n        this.emit(\"comment\", this.textchunk), this.textchunk = \"\", this.mode = \"text\";\n        break;\n      case \"tag name start\":\n        if (t == \"eof\") {\n          this.emit(\"text\", \"<\");\n          break;\n        }\n        if (!fe(\"whitespace\", t)) {\n          if (this.mode = \"tag name\", t == \"/\") {\n            this.mode = \"close tag name start\";\n            break;\n          } else if (t == \"!\") {\n            this.mode = \"special\", this.textchunk = \"\";\n            break;\n          } else if (t == \"?\") {\n            this.mode = \"declaration\";\n            break;\n          }\n          this.act(t, e, s);\n        }\n        break;\n      case \"close tag name start\":\n        fe(\"whitespace\", t) || (this.mode = \"close tag name\", this.tagname = \"\", this.nodename = \"\", this.act(t, e, s));\n        break;\n      case \"close tag name\":\n        if (fe(\"whitespace\", t))\n          this.tagname = this.nodename;\n        else\n          switch (t) {\n            case \">\":\n              this.emit(\"/tag\", this.tagname || this.nodename, this.attrs), this.mode = \"text\";\n              break;\n            default:\n              !this.tagname && (this.nodename += t);\n              break;\n          }\n        break;\n      case \"tag name\":\n        if (fe(\"whitespace\", t))\n          this.tagname = this.nodename, this.nodename = \"\", this.mode = \"attr start\";\n        else\n          switch (t) {\n            case \">\":\n              this.emit(\"tag\", this.nodename, this.attrs), this.mode = \"text\";\n              break;\n            case \"/\":\n              this.raw += e, this.emit(\"tag\", this.nodename, this.attrs), this.emit(\"/tag\", this.nodename, this.attrs), this.mode = \"skip\";\n              break;\n            default:\n              this.nodename += t;\n              break;\n          }\n        break;\n      case \"attr start\":\n        fe(\"whitespace\", t) || (this.mode = \"attr\", this.nodename = \"\", this.act(t, e, s));\n        break;\n      case \"attr\":\n        if (fe(\"whitespace\", t) || t == \"=\")\n          this.attrs[this.nodename] = \"\", this.mode = \"attr value start\";\n        else\n          switch (t) {\n            case \">\":\n              this.nodename == \"/\" ? (delete this.attrs[\"/\"], this.emit(\"tag\", this.tagname, this.attrs), this.emit(\"/tag\", this.tagname, this.attrs)) : (this.nodename && (this.attrs[this.nodename] = \"\"), this.emit(\"tag\", this.tagname, this.attrs)), this.mode = \"text\";\n              break;\n            default:\n              this.nodename += t;\n              break;\n          }\n        break;\n      case \"attr value start\":\n        if (!fe(\"whitespace\", t)) {\n          if (this.mode = \"attr value\", this.quote = \"\", t == \"'\" || t == '\"') {\n            this.quote = t;\n            return;\n          }\n          this.act(t, e, s);\n        }\n        break;\n      case \"attr value\":\n        if (fe(\"whitespace\", t) && !this.quote)\n          this.mode = \"attr start\";\n        else if (t == \">\" && !this.quote)\n          this.emit(\"tag\", this.tagname, this.attrs), this.mode = \"text\";\n        else\n          switch (t) {\n            case '\"':\n            case \"'\":\n              this.quote == t && s != \"\\\\\" && (this.mode = \"attr start\");\n              break;\n            default:\n              this.attrs[this.nodename] += t;\n              break;\n          }\n        break;\n    }\n  }\n}\nfunction Na(n) {\n  const t = {\n    lt: 60,\n    \"lt;\": 60,\n    \"AMP;\": 38,\n    AMP: 38,\n    \"GT;\": 62,\n    GT: 62,\n    \"QUOT;\": 34,\n    QUOT: 34,\n    \"apos;\": 39,\n    \"bull;\": 8226,\n    \"bullet;\": 8226,\n    \"copy;\": 169,\n    copy: 169,\n    \"deg;\": 176,\n    deg: 176\n  };\n  let e;\n  return n.charAt(0) == \"#\" ? n.charAt(1).toLowerCase() == \"x\" ? e = parseInt(n.substring(2), 16) : e = parseInt(n.substring(1), 10) : e = t[n], e ? String.fromCharCode(e) : \"&\" + n;\n}\nvar Ya = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\nfunction ll(n, t = {}) {\n  var e = 1, s = 1;\n  function i(L) {\n    var k = L.match(/\\n/g);\n    k && (e += k.length);\n    var F = L.lastIndexOf(`\n`);\n    s = ~F ? L.length - F : s + L.length;\n  }\n  function r() {\n    var L = { line: e, column: s };\n    return function(k) {\n      return k.position = new o(L), m(), k;\n    };\n  }\n  function o(L) {\n    this.start = L, this.end = { line: e, column: s }, this.source = t.source;\n  }\n  o.prototype.content = n;\n  var a = [];\n  function h(L) {\n    var k = new Error(\n      t.source + \":\" + e + \":\" + s + \": \" + L\n    );\n    if (k.reason = L, k.filename = t.source, k.line = e, k.column = s, k.source = n, t.silent)\n      a.push(k);\n    else\n      throw k;\n  }\n  function c() {\n    var L = d();\n    return {\n      type: \"stylesheet\",\n      stylesheet: {\n        source: t.source,\n        rules: L,\n        parsingErrors: a\n      }\n    };\n  }\n  function l() {\n    return f(/^{\\s*/);\n  }\n  function u() {\n    return f(/^}/);\n  }\n  function d() {\n    var L, k = [];\n    for (m(), p(k); n.length && n.charAt(0) != \"}\" && (L = Yt() || Wt()); )\n      L !== !1 && (k.push(L), p(k));\n    return k;\n  }\n  function f(L) {\n    var k = L.exec(n);\n    if (k) {\n      var F = k[0];\n      return i(F), n = n.slice(F.length), k;\n    }\n  }\n  function m() {\n    f(/^\\s*/);\n  }\n  function p(L) {\n    var k;\n    for (L = L || []; k = S(); )\n      k !== !1 && L.push(k);\n    return L;\n  }\n  function S() {\n    var L = r();\n    if (!(n.charAt(0) != \"/\" || n.charAt(1) != \"*\")) {\n      for (var k = 2; n.charAt(k) != \"\" && (n.charAt(k) != \"*\" || n.charAt(k + 1) != \"/\"); )\n        ++k;\n      if (k += 2, n.charAt(k - 1) === \"\")\n        return h(\"End of comment missing\");\n      var F = n.slice(2, k - 2);\n      return s += 2, i(F), n = n.slice(k), s += 2, L({\n        type: \"comment\",\n        comment: F\n      });\n    }\n  }\n  function g() {\n    var L = f(/^([^{]+)/);\n    if (L)\n      return de(L[0]).replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, \"\").replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function(k) {\n        return k.replace(/,/g, \"‌\");\n      }).split(/\\s*(?![^(]*\\)),\\s*/).map(function(k) {\n        return k.replace(/\\u200C/g, \",\");\n      });\n  }\n  function b() {\n    var L = r(), k = f(/^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n    if (k) {\n      if (k = de(k[0]), !f(/^:\\s*/))\n        return h(\"property missing ':'\");\n      var F = f(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/), H = L({\n        type: \"declaration\",\n        property: k.replace(Ya, \"\"),\n        value: F ? de(F[0]).replace(Ya, \"\") : \"\"\n      });\n      return f(/^[;\\s]*/), H;\n    }\n  }\n  function x() {\n    var L = [];\n    if (!l())\n      return h(\"missing '{'\");\n    p(L);\n    for (var k; k = b(); )\n      k !== !1 && (L.push(k), p(L));\n    return u() ? L : h(\"missing '}'\");\n  }\n  function w() {\n    for (var L, k = [], F = r(); L = f(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/); )\n      k.push(L[1]), f(/^,\\s*/);\n    if (k.length)\n      return F({\n        type: \"keyframe\",\n        values: k,\n        declarations: x()\n      });\n  }\n  function C() {\n    var L = r(), k = f(/^@([-\\w]+)?keyframes\\s*/);\n    if (k) {\n      var F = k[1];\n      if (k = f(/^([-\\w]+)\\s*/), !k)\n        return h(\"@keyframes missing name\");\n      var H = k[1];\n      if (!l())\n        return h(\"@keyframes missing '{'\");\n      for (var Ct, Zt = p(); Ct = w(); )\n        Zt.push(Ct), Zt = Zt.concat(p());\n      return u() ? L({\n        type: \"keyframes\",\n        name: H,\n        vendor: F,\n        keyframes: Zt\n      }) : h(\"@keyframes missing '}'\");\n    }\n  }\n  function _() {\n    var L = r(), k = f(/^@supports *([^{]+)/);\n    if (k) {\n      var F = de(k[1]);\n      if (!l())\n        return h(\"@supports missing '{'\");\n      var H = p().concat(d());\n      return u() ? L({\n        type: \"supports\",\n        supports: F,\n        rules: H\n      }) : h(\"@supports missing '}'\");\n    }\n  }\n  function D() {\n    var L = r(), k = f(/^@host\\s*/);\n    if (k) {\n      if (!l())\n        return h(\"@host missing '{'\");\n      var F = p().concat(d());\n      return u() ? L({\n        type: \"host\",\n        rules: F\n      }) : h(\"@host missing '}'\");\n    }\n  }\n  function z() {\n    var L = r(), k = f(/^@media *([^{]+)/);\n    if (k) {\n      var F = de(k[1]);\n      if (!l())\n        return h(\"@media missing '{'\");\n      var H = p().concat(d());\n      return u() ? L({\n        type: \"media\",\n        media: F,\n        rules: H\n      }) : h(\"@media missing '}'\");\n    }\n  }\n  function B() {\n    var L = r(), k = f(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n    if (k)\n      return L({\n        type: \"custom-media\",\n        name: de(k[1]),\n        media: de(k[2])\n      });\n  }\n  function G() {\n    var L = r(), k = f(/^@page */);\n    if (k) {\n      var F = g() || [];\n      if (!l())\n        return h(\"@page missing '{'\");\n      for (var H = p(), Ct; Ct = b(); )\n        H.push(Ct), H = H.concat(p());\n      return u() ? L({\n        type: \"page\",\n        selectors: F,\n        declarations: H\n      }) : h(\"@page missing '}'\");\n    }\n  }\n  function V() {\n    var L = r(), k = f(/^@([-\\w]+)?document *([^{]+)/);\n    if (k) {\n      var F = de(k[1]), H = de(k[2]);\n      if (!l())\n        return h(\"@document missing '{'\");\n      var Ct = p().concat(d());\n      return u() ? L({\n        type: \"document\",\n        document: H,\n        vendor: F,\n        rules: Ct\n      }) : h(\"@document missing '}'\");\n    }\n  }\n  function j() {\n    var L = r(), k = f(/^@font-face\\s*/);\n    if (k) {\n      if (!l())\n        return h(\"@font-face missing '{'\");\n      for (var F = p(), H; H = b(); )\n        F.push(H), F = F.concat(p());\n      return u() ? L({\n        type: \"font-face\",\n        declarations: F\n      }) : h(\"@font-face missing '}'\");\n    }\n  }\n  var et = Dt(\"import\"), J = Dt(\"charset\"), Ht = Dt(\"namespace\");\n  function Dt(L) {\n    var k = new RegExp(\"^@\" + L + \"\\\\s*([^;]+);\");\n    return function() {\n      var F = r(), H = f(k);\n      if (H) {\n        var Ct = { type: L };\n        return Ct[L] = H[1].trim(), F(Ct);\n      }\n    };\n  }\n  function Yt() {\n    if (n[0] == \"@\")\n      return C() || z() || B() || _() || et() || J() || Ht() || V() || G() || D() || j();\n  }\n  function Wt() {\n    var L = r(), k = g();\n    return k ? (p(), L({\n      type: \"rule\",\n      selectors: k,\n      declarations: x()\n    })) : h(\"selector missing\");\n  }\n  return wr(c());\n}\nfunction de(n) {\n  return n ? n.replace(/^\\s+|\\s+$/g, \"\") : \"\";\n}\nfunction wr(n, t) {\n  var e = n && typeof n.type == \"string\", s = e ? n : t;\n  for (var i in n) {\n    var r = n[i];\n    Array.isArray(r) ? r.forEach(function(o) {\n      wr(o, s);\n    }) : r && typeof r == \"object\" && wr(r, s);\n  }\n  return e && Object.defineProperty(n, \"parent\", {\n    configurable: !0,\n    writable: !0,\n    enumerable: !1,\n    value: t || null\n  }), n;\n}\nlet vg = class extends cl {\n  currentItem = {};\n  items = [];\n  groups = [];\n  globalStyles = {};\n  grad = {};\n  idtops = {};\n  text = \"\";\n  constructor(t) {\n    super(t), this.on(\"tag\", (e, s) => {\n      switch (this.text = \"\", this.currentItem = { type: e }, e) {\n        case \"g\":\n          this.groups.push(this.currentItem);\n          break;\n      }\n      this.processAttrs(e, s);\n    }), this.on(\"text\", (e) => {\n      if (this.currentItem.type == \"style\") {\n        try {\n          const s = ll(e);\n          for (const i of s.stylesheet.rules)\n            for (const r of i.declarations)\n              for (const o of i.selectors)\n                this.globalStyles[o] = this.globalStyles[o] || [], this.globalStyles[o].push(\n                  `${r.property}:${r.value}`\n                );\n        } catch {\n          console.error(\"CAN'T parse css text: \" + e);\n        }\n        return;\n      }\n      this.text += e;\n    }), this.on(\"/tag\", (e, s) => {\n      let i = this.groups.length;\n      for (; i--; )\n        if (this.groups[i] != this.currentItem) {\n          let r = \"\", o = \"\";\n          for (const a in this.groups[i])\n            a == \"transform\" ? r = this.groups[i].transform : a == \"class\" && this.globalStyles[\".\" + this.groups[i][a]] ? o = this.globalStyles[\".\" + this.groups[i][a]].join(\";\") + \";\" + o : a == \"id\" && this.globalStyles[\"#\" + this.groups[i][a]] ? o = this.globalStyles[\"#\" + this.groups[i][a]].join(\";\") + \";\" + o : typeof this.currentItem[a] > \"u\" && (this.currentItem[a] = this.groups[i][a]);\n          typeof this.currentItem.transform > \"u\" ? this.currentItem.transform = r : this.currentItem.transform += \" \" + r, typeof this.currentItem.style > \"u\" ? this.currentItem.style = o : this.currentItem.style = o + this.currentItem.style, this.currentItem.class && this.globalStyles[\".\" + this.currentItem.class] ? this.currentItem.style = this.globalStyles[\".\" + this.currentItem.class].join(\";\") + \";\" + this.currentItem.style : this.currentItem.id && this.globalStyles[\"#\" + this.currentItem.id] && (this.currentItem.style = this.globalStyles[\"#\" + this.currentItem.id].join(\";\") + \";\" + this.currentItem.style), Yi(\n            this.currentItem.style,\n            this.currentItem,\n            Bi\n          );\n        }\n      switch (this.processAttrs(e, s), e) {\n        case \"g\":\n          this.groups.pop();\n          break;\n        case \"cirlce\":\n          this.addToItems();\n          break;\n        case \"ellipse\":\n          this.addToItems();\n          break;\n        case \"polygon\":\n          this.addToItems();\n          break;\n        case \"path\":\n          this.addToItems();\n          break;\n        case \"line\":\n          this.addToItems();\n          break;\n        case \"rect\":\n          this.addToItems();\n          break;\n        case \"image\":\n          this.addToItems();\n          break;\n        case \"text\":\n          this.currentItem.text = this.text, this.currentItem[\"text-anchor\"] = this.currentItem[\"text-anchor\"] || \"start\", this.addToItems();\n          break;\n      }\n    }), this.on(\"finish\", () => {\n      this.emit(\"result\", this.items);\n    });\n  }\n  parse() {\n    return super.parse(), this.items;\n  }\n  processAttrs(t, e) {\n    let s = [], i;\n    switch (t) {\n      case \"svg\":\n        let r = \"\", o = \"\";\n        if (e.width && e.height)\n          r = e.width, o = e.height;\n        else if (e.viewBox) {\n          const a = e.viewBox.split(/\\s+/gi);\n          a.length == 4 && (r = String(parseFloat(a[2]) - parseFloat(a[0])), o = String(parseFloat(a[3]) - parseFloat(a[1])));\n        }\n        r && o && this.items.push({\n          type: \"viewbox\",\n          width: r,\n          height: o\n        });\n        break;\n      case \"line\":\n        typeof e.x1 == \"number\" && typeof e.y1 == \"number\" && typeof e.x2 == \"number\" && typeof e.y2 == \"number\" && (this.currentItem.path = \"M\" + [e.x1, e.y1, e.x2, e.y2]);\n        break;\n      case \"stop\":\n        i = {}, e.style && Yi(e.style, i), i.offset = i.offset || e.offset, i.color = i[\"stop-color\"] || e[\"stop-color\"], i.opacity = i[\"stop-opacity\"] || e[\"stop-opacity\"], ~(i.offset + \"\").indexOf(\"%\") ? i.offset = parseFloat(i.offset) : i.offset = parseFloat(i.offset) * 100, i.offset = +i.offset.toFixed(2), this.grad.stops.push(i);\n        break;\n      case \"linearGradient\":\n        this.grad.angle = (360 + br(\n          parseFloat(e.x1),\n          parseFloat(e.y1),\n          parseFloat(e.x2),\n          parseFloat(e.y2),\n          parseFloat(e.x1) + 100,\n          parseFloat(e.y1)\n        )).toFixed(2), s = [this.grad.angle];\n        for (let a = 0, h = this.grad.stops.length; a < h; a++)\n          i = this.grad.stops[a], a && a != h - 1 ? s.push(i.color + \":\" + i.offset) : s.push(i.color);\n        this.idtops[this.grad.id] = s.join(\"-\"), this.items.forEach((a) => {\n          a.fillid == this.grad.id && (a.fill = this.idtops[this.grad.id]);\n        });\n        break;\n      case \"radialGradient\":\n        s = [];\n        for (let a = 0, h = this.grad.stops.length; a < h; a++)\n          i = this.grad.stops[a], a && a != h - 1 ? s.push(i.color + \":\" + i.offset) : s.push(i.color);\n        this.idtops[this.grad.id] = s.join(\"-\"), this.items.forEach((a) => {\n          a.fillid == this.grad.id && (a.fill = this.idtops[this.grad.id]);\n        });\n        break;\n    }\n    for (const r in e) {\n      const o = e[r];\n      if (Bi.includes(r) && (this.currentItem[r] = o), r === \"id\" && (this.currentItem.type === \"linearGradient\" && (this.grad = {\n        id: r,\n        stops: []\n      }), this.currentItem.type === \"radialGradient\" && (this.grad = {\n        id: r,\n        stops: []\n      })), r === \"style\" && Yi(o, this.currentItem, Bi), r === \"transform\" && (this.currentItem.transform = o + (this.currentItem.transform || \" \")), r === \"fill\") {\n        const a = o.match(/url\\(#([^)]+)\\)/);\n        if (a) {\n          const h = a[1];\n          this.currentItem.fillid = h, this.idtops[h] && (this.currentItem.fill = this.idtops[h]);\n        }\n      }\n      r === \"points\" && this.currentItem.type == \"polygon\" && (this.currentItem.path = \"M\" + o + \"z\"), r === \"d\" && this.currentItem.type == \"path\" && (this.currentItem.path = o), r === \"xlink:href\" && this.currentItem.type == \"image\" && (this.currentItem.src = o);\n    }\n  }\n  addToItems() {\n    this.items.push(this.currentItem);\n  }\n};\nfunction br(n, t, e, s, i, r) {\n  if (typeof i > \"u\" || typeof r > \"u\") {\n    const o = n - e, a = t - s;\n    return !o && !a ? 0 : (180 + Math.atan2(-a, -o) * 180 / Math.PI + 360) % 360;\n  } else\n    return br(n, t, i, r) - br(e, s, i, r);\n}\nfunction Yi(n, t, e) {\n  const s = (n + \"\").split(\";\"), i = /^\\s+|\\s+$/g;\n  for (let r = 0, o = s.length; r < o; r++) {\n    const a = s[r].split(\":\"), h = a[0].replace(i, \"\").replace(/[A-Z]/g, function(c) {\n      return \"-\" + c.toLowerCase();\n    });\n    (!e || e.includes(h)) && (t[h] = a[1].replace(i, \"\"));\n  }\n}\nconst Bi = [\n  \"id\",\n  \"class\",\n  \"viewBox\",\n  \"width\",\n  \"height\",\n  \"x\",\n  \"y\",\n  \"cx\",\n  \"cy\",\n  \"r\",\n  \"rx\",\n  \"ry\",\n  \"cursor\",\n  \"opacity\",\n  \"src\",\n  \"fill\",\n  \"fill-opacity\",\n  \"stroke\",\n  \"stroke-dasharray\",\n  \"stroke-linecap\",\n  \"stroke-linejoin\",\n  \"stroke-miterlimit\",\n  \"stroke-opacity\",\n  \"stroke-width\",\n  \"text-anchor\",\n  \"font\",\n  \"font-family\",\n  \"font-size\",\n  \"font-style\",\n  \"font-weight\",\n  \"letter-spacing\"\n];\nclass At {\n  // 在坐标系的绝对值\n  prevPathX = 0;\n  prevPathY = 0;\n  // 提高性能, 没更新时使用缓存值\n  isUpdatedSVGPathData = !0;\n  isUpdatedSVGPathD = !0;\n  isUpdatedBoundingClientRect = !0;\n  isUpdatedPolymorphPoints = !0;\n  isUpdatedTotalLength = !0;\n  normalizedLines = [];\n  // d = \"M0,0\"\n  // d = [['C',1,2,3,4,5,6]]\n  constructor(t) {\n    const e = typeof t == \"string\" ? al(t) : t || [], s = bg(hl(e));\n    for (let i = 0, r = s.length; i < r; i++) {\n      const o = s[i];\n      o[0] == \"M\" ? (this.prevPathX = o[1], this.prevPathY = o[2]) : this._appendLine(\n        new xt({\n          x: this.prevPathX,\n          y: this.prevPathY,\n          c1x: o[1],\n          c1y: o[2],\n          c2x: o[3],\n          c2y: o[4],\n          toX: o[5],\n          toY: o[6]\n        })\n      );\n    }\n  }\n  _appendLine(t) {\n    if (this.isUpdatedSVGPathData = !0, this.isUpdatedSVGPathD = !0, this.isUpdatedBoundingClientRect = !0, this.isUpdatedPolymorphPoints = !0, this.isUpdatedTotalLength = !0, t instanceof yr) {\n      il(\n        this.prevPathX,\n        this.prevPathY,\n        t.toX,\n        t.toY,\n        t.largeArcFlag,\n        t.sweepFlag,\n        t.rx,\n        t.ry,\n        t.xAxisRotate\n      ).forEach((c) => {\n        const [l, u, d, f, m, p, S, g] = c;\n        this.normalizedLines.push(\n          new xt({\n            x: this.prevPathX,\n            y: this.prevPathY,\n            c1x: d,\n            c1y: f,\n            c2x: m,\n            c2y: p,\n            toX: S,\n            toY: g\n          })\n        ), this.prevPathX = S, this.prevPathY = g;\n      });\n      return;\n    }\n    if (t instanceof xt) {\n      this.normalizedLines.push(t.clone()), this.prevPathX = t.toX, this.prevPathY = t.toY;\n      return;\n    }\n    let e, s, i, r, o, a;\n    t instanceof mg ? [e, s, i, r, o, a] = xr(\n      this.prevPathX,\n      this.prevPathY,\n      t.cx,\n      t.cy,\n      t.toX,\n      t.toY\n    ) : [e, s, i, r, o, a] = Ls(\n      this.prevPathX,\n      this.prevPathY,\n      t.toX,\n      t.toY\n    ), this.normalizedLines.push(\n      new xt({\n        x: this.prevPathX,\n        y: this.prevPathY,\n        c1x: e,\n        c1y: s,\n        c2x: i,\n        c2y: r,\n        toX: o,\n        toY: a\n      })\n    ), this.prevPathX = o, this.prevPathY = a;\n  }\n  static fromPolymorphPoints(t) {\n    const e = new At(), s = t.length;\n    if (s) {\n      e.prevPathX = t[0], e.prevPathY = t[1];\n      for (let i = 2; i + 5 < s; i += 6)\n        e._appendLine(\n          new xt({\n            x: e.prevPathX,\n            y: e.prevPathY,\n            c1x: t[i],\n            c1y: t[i + 1],\n            c2x: t[i + 2],\n            c2y: t[i + 3],\n            toX: t[i + 4],\n            toY: t[i + 5]\n          })\n        );\n    }\n    return e;\n  }\n  static fromLines(t) {\n    const e = new At(), s = t.length;\n    if (s) {\n      e.prevPathX = t[0].x, e.prevPathY = t[0].y;\n      for (let i = 0; i < s; i++)\n        e._appendLine(t[i]);\n    }\n    return e;\n  }\n  clone() {\n    return At.fromLines(this.normalizedLines);\n  }\n  // 在坐标系的绝对值\n  cachedSVGPathData = [];\n  toSVGPathData() {\n    if (this.isUpdatedSVGPathData) {\n      const t = [];\n      for (let e = 0, s = this.normalizedLines.length; e < s; e++) {\n        const i = this.normalizedLines[e];\n        e == 0 && t.push([\"M\", i.x, i.y]), t.push(...i.toSVGPathData());\n      }\n      this.cachedSVGPathData = t, this.isUpdatedSVGPathData = !1;\n    }\n    return this.cachedSVGPathData;\n  }\n  // 外部使用\n  cachedSVGPathD = \"\";\n  toSVGPathD() {\n    return this.isUpdatedSVGPathD && (this.cachedSVGPathD = wg(this.toSVGPathData()), this.isUpdatedSVGPathD = !1), this.cachedSVGPathD;\n  }\n  // 外部使用\n  toCanvasContext(t) {\n    t.beginPath();\n    for (let e = 0, s = this.normalizedLines.length; e < s; e++) {\n      const i = this.normalizedLines[e];\n      e == 0 && t.moveTo(i.x, i.y), i.toCanvasContext(t);\n    }\n  }\n  // 外部使用\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  cachedBoundingClientRect = {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  };\n  getBoundingClientRect(t = 2) {\n    if (this.isUpdatedBoundingClientRect) {\n      const e = [], s = [];\n      if (this.normalizedLines.forEach((i) => {\n        const r = i.getBoundingClientRect(t);\n        e.push(r.x, r.x + r.width), s.push(r.y, r.y + r.height);\n      }), e.length == 0 || s.length == 0)\n        this.cachedBoundingClientRect = { x: 0, y: 0, width: 0, height: 0 };\n      else {\n        const i = Math.min(...e), r = Math.min(...s), o = Math.max(...e), a = Math.max(...s);\n        this.cachedBoundingClientRect = {\n          x: Y(i, t),\n          y: Y(r, t),\n          width: Y(o - i, t),\n          height: Y(a - r, t)\n        };\n      }\n      this.isUpdatedBoundingClientRect = !1;\n    }\n    return this.cachedBoundingClientRect;\n  }\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  getBoundingClientRectCenter(t = 2) {\n    const e = this.getBoundingClientRect(t);\n    return {\n      x: Y(e.x + e.width * 0.5, t),\n      y: Y(e.y + e.height * 0.5, t)\n    };\n  }\n  // 通过 DrawContext shape.m 获得 新的 PathD\n  transform(t) {\n    let e;\n    return t.m ? e = t.m : (e = new _t(), e.translate(t.x || 0, t.y || 0), e.rotate(t.degree || 0, t.centerX, t.centerY), e.scale(\n      t.scaleX || 1,\n      t.scaleY || 1,\n      t.centerX,\n      t.centerY\n    )), e.isIdentity ? this.clone() : At.fromLines(\n      this.normalizedLines.map((s) => {\n        let i = s.x, r = s.y, o = s.c1x, a = s.c1y, h = s.c2x, c = s.c2y, l = s.toX, u = s.toY;\n        return { x: i, y: r } = e.transformPoint({ x: i, y: r }), { x: o, y: a } = e.transformPoint({ x: o, y: a }), { x: h, y: c } = e.transformPoint({ x: h, y: c }), { x: l, y: u } = e.transformPoint({ x: l, y: u }), new xt({ x: i, y: r, c1x: o, c1y: a, c2x: h, c2y: c, toX: l, toY: u });\n      })\n    );\n  }\n  // returns length in pixels\n  cachedTotalLength;\n  getTotalLength() {\n    return (typeof this.cachedTotalLength != \"number\" || this.isUpdatedTotalLength) && (this.cachedTotalLength = Math.round(\n      this.normalizedLines.reduce((t, e) => t += e.length(), 0)\n    ), this.isUpdatedTotalLength = !1), this.cachedTotalLength;\n  }\n  // 获取插值方法1\n  getPointAtLength(t) {\n    let e = 0, s = 0;\n    const i = this.normalizedLines.length;\n    for (let r = 0; r < i; r++) {\n      const o = this.normalizedLines[r];\n      if (s = o.length(), e + s >= t)\n        return o.getPointAtSegmentLength(t - e);\n      e += s;\n    }\n    return this.normalizedLines[i - 1].getPointAtSegmentLength(s);\n  }\n  // 获取插值方法2 t (0.0 to 1.0) : The fraction of the overall duration of the path\n  interpolate(t) {\n    const e = this.normalizedLines.length;\n    if (e === 0)\n      return { x: 0, y: 0 };\n    if (e === 1)\n      return this.normalizedLines[0].interpolate(t);\n    {\n      let s = t * e, i = this.normalizedLines[0];\n      if (s--, s > 1)\n        for (let r = 1; r < e && (i = this.normalizedLines[r], s > 1); r++)\n          s -= 1;\n      return i.interpolate(s);\n    }\n  }\n  getSubPathD(t, e, s = 1e-6) {\n    const i = this.getSubPathDAtLength(e, !0);\n    return ji(s)(t, 0) ? i : i.getSubPathDAtLength(t, !1);\n  }\n  getSubPathDAtLength(t, e = !1) {\n    const s = new At();\n    let i = 0, r = !1;\n    for (let o = 0, a = this.normalizedLines.length; o < a; o++) {\n      const h = this.normalizedLines[o];\n      o == 0 && (s.prevPathX = h.x, s.prevPathY = h.y);\n      const c = h.length();\n      if (i + c > t && !r) {\n        r = !0;\n        const l = h.getPointAtSegmentLength(t - i);\n        if (s._appendLine(\n          new xt({\n            x: s.prevPathX,\n            y: s.prevPathY,\n            c1x: l.start.x,\n            c1y: l.start.y,\n            c2x: l.m.x,\n            c2y: l.m.y,\n            toX: l.x,\n            toY: l.y\n          })\n        ), e)\n          return s;\n        s.normalizedLines = [], s._appendLine(\n          new xt({\n            x: s.prevPathX,\n            y: s.prevPathY,\n            c1x: l.n.x,\n            c1y: l.n.y,\n            c2x: l.end.x,\n            c2y: l.end.y,\n            toX: h.toX,\n            toY: h.toY\n          })\n        ), i += c;\n        continue;\n      }\n      s._appendLine(h), i += c;\n    }\n    return s;\n  }\n  closestPoint(t, e) {\n    const s = this.getTotalLength();\n    let i = { x: t, y: e }, r = 0, o = 1 / 0, a = 8;\n    for (let c = 0; c <= s; c += a) {\n      const l = this.getPointAtLength(c), u = (t - l.x) * (t - l.x) + (e - l.y) * (e - l.y);\n      u < o && (i = l, r = c, o = u);\n    }\n    for (a /= 2; a > 0.5; ) {\n      const c = r - a, l = this.getPointAtLength(c), u = (t - l.x) * (t - l.x) + (e - l.y) * (e - l.y), d = r + a, f = this.getPointAtLength(d), m = (t - f.x) * (t - f.x) + (e - f.y) * (e - f.y);\n      c >= 0 && u < o ? (i = l, r = c, o = u) : d <= s && m < o ? (i = f, r = d, o = m) : a /= 2;\n    }\n    const h = this.getPointAtLength(\n      r + (r === s ? -0.1 : 0.1)\n    );\n    return {\n      point: i,\n      rotation: r >= s ? qt(h.x, h.y, i.x, i.y) : qt(i.x, i.y, h.x, h.y),\n      distance: Math.sqrt(o)\n    };\n  }\n  // 获得 Polymorph 要用的所有的点\n  cachedPolymorphPoints = [];\n  getPolymorphPoints() {\n    if (this.isUpdatedPolymorphPoints) {\n      if (this.normalizedLines.length) {\n        const t = this.normalizedLines[0];\n        this.cachedPolymorphPoints = [t.x, t.y].concat(\n          this.normalizedLines.reduce(\n            (e, s) => e.concat([s.c1x, s.c1y, s.c2x, s.c2y, s.toX, s.toY]),\n            []\n          )\n        );\n      }\n      this.isUpdatedPolymorphPoints = !1;\n    }\n    return [...this.cachedPolymorphPoints];\n  }\n  getPolymorphPointsPerimeter() {\n    let t = 0;\n    const e = this.getPolymorphPoints(), s = e.length;\n    if (s) {\n      let i = e[s - 2], r = e[s - 1];\n      for (let o = 0; o < s; o += 6)\n        t += Ge(e[o], e[o + 1], i, r), i = e[o], r = e[o + 1];\n    }\n    return Math.floor(t);\n  }\n  // 扩充 PolymorphPoints 到对应数量的点，返回新 PathD\n  expendToPolymorphPoints(t) {\n    const e = t.length, s = this.getPolymorphPoints(), i = s.length;\n    if (i) {\n      const r = [];\n      let o = e - i;\n      const a = Math.ceil(e / i);\n      r.push([\"M\", s[0], s[1]]);\n      let h = 2;\n      for (; h + 5 <= i - 1; ) {\n        const c = s[h++], l = s[h++], u = s[h++], d = s[h++], f = s[h++], m = s[h++];\n        r.push([\"C\", c, l, u, d, f, m]);\n        let p = 0;\n        for (; p < a && o > 0; )\n          r.push([\"C\", f, m, f, m, f, m]), o -= 6, p++;\n      }\n      return new At(r);\n    } else\n      return At.fromPolymorphPoints(t);\n  }\n  // 返回 从 leftPathD 到 rightPathD 的 插值函数\n  static getInterpolator(t, e) {\n    return (s) => {\n      const i = ji(Number.EPSILON);\n      return i(s, 0) ? t.clone() : i(s, 1) ? e.clone() : At.fromPolymorphPoints(\n        Bu(t.getPolymorphPoints(), e.getPolymorphPoints(), s).map(\n          (r) => Y(r, 2)\n        )\n      );\n    };\n  }\n}\nconst Ba = _g(\n  \"50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro\",\n  32\n);\nfunction _g(n, t = 10) {\n  const e = {}, s = n.split(\",\");\n  for (let i = 0; i < s.length; i += 2) {\n    const r = \"&\" + s[i + 1] + \";\", o = parseInt(s[i], t);\n    e[r] = \"&#\" + o + \";\";\n  }\n  return e[\"\\\\xa0\"] = \"&#160;\", e;\n}\nfunction Tt(n, t) {\n  const e = Object.keys(t);\n  for (let s = 0; s < e.length; s++)\n    n = n.replace(\n      new RegExp(\"{\" + e[s] + \"}\", \"gi\"),\n      \"\" + t[e[s]]\n    );\n  return n;\n}\nfunction Pn(n) {\n  let t, e;\n  if (!n)\n    throw new Error(\n      \"cannot create a random attribute name for an undefined object\"\n    );\n  const s = \"ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz\";\n  t = \"\";\n  do\n    for (t = \"\", e = 0; e < 12; e++)\n      t += s[Math.floor(Math.random() * s.length)];\n  while (n[t]);\n  return t;\n}\nfunction Sg(n) {\n  const t = {\n    left: \"start\",\n    right: \"end\",\n    center: \"middle\",\n    start: \"start\",\n    end: \"end\"\n  };\n  return t[n] || t.start;\n}\nfunction Cg(n) {\n  const t = {\n    alphabetic: \"alphabetic\",\n    hanging: \"hanging\",\n    top: \"text-before-edge\",\n    bottom: \"text-after-edge\",\n    middle: \"central\"\n  };\n  return t[n] || t.alphabetic;\n}\nconst Cs = {\n  strokeStyle: {\n    svgAttr: \"stroke\",\n    canvas: \"#000000\",\n    svg: \"none\",\n    apply: \"stroke\"\n  },\n  fillStyle: {\n    svgAttr: \"fill\",\n    canvas: \"#000000\",\n    svg: null,\n    // svg default is black, but we need to special case this to handle canvas stroke without fill\n    apply: \"fill\"\n  },\n  lineCap: {\n    svgAttr: \"stroke-linecap\",\n    canvas: \"butt\",\n    svg: \"butt\",\n    apply: \"stroke\"\n  },\n  lineJoin: {\n    svgAttr: \"stroke-linejoin\",\n    canvas: \"miter\",\n    svg: \"miter\",\n    apply: \"stroke\"\n  },\n  miterLimit: {\n    svgAttr: \"stroke-miterlimit\",\n    canvas: 10,\n    svg: 4,\n    apply: \"stroke\"\n  },\n  lineWidth: {\n    svgAttr: \"stroke-width\",\n    canvas: 1,\n    svg: 1,\n    apply: \"stroke\"\n  },\n  globalAlpha: {\n    svgAttr: \"opacity\",\n    canvas: 1,\n    svg: 1,\n    apply: \"fill stroke\"\n  },\n  font: {\n    // font converts to multiple svg attributes, there is custom logic for this\n    canvas: \"10px sans-serif\"\n  },\n  shadowColor: {\n    canvas: \"#000000\"\n  },\n  shadowOffsetX: {\n    canvas: 0\n  },\n  shadowOffsetY: {\n    canvas: 0\n  },\n  shadowBlur: {\n    canvas: 0\n  },\n  textAlign: {\n    canvas: \"start\"\n  },\n  textBaseline: {\n    canvas: \"alphabetic\"\n  },\n  lineDash: {\n    svgAttr: \"stroke-dasharray\",\n    canvas: [],\n    svg: null,\n    apply: \"stroke\"\n  },\n  lineDashOffset: {\n    svgAttr: \"stroke-dashoffset\",\n    canvas: 0,\n    svg: 0,\n    apply: \"stroke\"\n  }\n};\nclass Xi {\n  __root;\n  __ctx;\n  constructor(t, e) {\n    this.__root = t, this.__ctx = e;\n  }\n  /**\n   * Adds a color stop to the gradient root\n   */\n  addColorStop(t, e) {\n    const s = this.__ctx.__createElement(\"stop\");\n    if (s.setAttribute(\"offset\", \"\" + t), e.indexOf(\"rgba\") !== -1) {\n      const r = /rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d?\\.?\\d*)\\s*\\)/gi.exec(e);\n      r && (s.setAttribute(\n        \"stop-color\",\n        Tt(\"rgb({r},{g},{b})\", {\n          r: r[1],\n          g: r[2],\n          b: r[3]\n        })\n      ), s.setAttribute(\"stop-opacity\", r[4]));\n    } else\n      s.setAttribute(\"stop-color\", e);\n    this.__root.appendChild(s);\n  }\n}\nclass Xa {\n  __root;\n  __ctx;\n  constructor(t, e) {\n    this.__root = t, this.__ctx = e;\n  }\n}\nclass Hn {\n  __document = document;\n  __canvas;\n  __ctx;\n  width;\n  height;\n  __styleStack;\n  __groupStack;\n  __rootSVG;\n  __ids;\n  __SVGdefs;\n  __currentElement;\n  __currentElementsToStyle = null;\n  constructor({\n    canvas: t,\n    width: e = 500,\n    height: s = 500\n  }) {\n    t ? (this.__canvas = t, this.__ctx = t.getContext(\"2d\")) : (this.__canvas = this.__document.createElement(\"canvas\"), this.__ctx = this.__canvas.getContext(\"2d\")), this.width = e || t?.width || 0, this.height = s || t?.height || 0, this.__setDefaultStyles(), this.__styleStack = [this.__getStyleState()], this.__groupStack = [], this.__rootSVG = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"svg\"\n    ), this.__rootSVG.setAttribute(\"version\", \"1.1\"), this.__rootSVG.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\"), this.__rootSVG.setAttributeNS(\n      \"http://www.w3.org/2000/xmlns/\",\n      \"xmlns:xlink\",\n      \"http://www.w3.org/1999/xlink\"\n    ), this.__rootSVG.setAttribute(\"width\", \"\" + this.width), this.__rootSVG.setAttribute(\"height\", \"\" + this.height), this.__ids = {}, this.__SVGdefs = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"defs\"\n    ), this.__rootSVG.appendChild(this.__SVGdefs), this.__currentElement = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"g\"\n    ), this.__rootSVG.appendChild(this.__currentElement);\n  }\n  /**\n   * Applies default canvas styles to the context\n   */\n  __setDefaultStyles() {\n    const t = Object.keys(Cs);\n    for (let e = 0, s = t.length; e < s; e++) {\n      const i = t[e];\n      this[i] = Cs[i].canvas;\n    }\n  }\n  /**\n   * Gets the current style state\n   */\n  __getStyleState() {\n    const t = {}, e = Object.keys(Cs);\n    for (let s = 0, i = e.length; s < i; s++) {\n      const r = e[s];\n      t[r] = this[r];\n    }\n    return t;\n  }\n  /**\n   * Applies styles on restore\n   */\n  __applyStyleState(t) {\n    const e = Object.keys(t);\n    for (let s = 0, i = e.length; s < i; s++) {\n      const r = e[s];\n      this[r] = t[r];\n    }\n  }\n  /**\n   * Creates the specified svg element\n   */\n  __createElement(t, e = {}, s = !1) {\n    const i = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      t\n    ), r = Object.keys(e);\n    s && (i.setAttribute(\"fill\", \"none\"), i.setAttribute(\"stroke\", \"none\"));\n    for (let o = 0; o < r.length; o++) {\n      const a = r[o];\n      i.setAttribute(a, e[a]);\n    }\n    return i;\n  }\n  /**\n   * Apples the current styles to the current SVG element. On \"CustomCanvasContext.fill\" or \"CustomCanvasContext.stroke\"\n   */\n  __applyStyleToCurrentElement(t) {\n    let e = this.__currentElement;\n    const s = this.__currentElementsToStyle;\n    s && (e.setAttribute(t, \"\"), e = s.element, s.children.forEach((r) => {\n      r.setAttribute(t, \"\");\n    }));\n    const i = Object.keys(Cs);\n    for (let r = 0; r < i.length; r++) {\n      const o = Cs[i[r]], a = this[i[r]];\n      if (o.apply) {\n        if (a instanceof Xa) {\n          if (a.__ctx)\n            for (; a.__ctx.__SVGdefs.childNodes.length; ) {\n              const h = a.__ctx.__SVGdefs.childNodes[0].getAttribute(\"id\");\n              this.__ids[h] = h, this.__SVGdefs.appendChild(a.__ctx.__SVGdefs.childNodes[0]);\n            }\n          e.setAttribute(\n            o.apply,\n            Tt(\"url(#{id})\", {\n              id: a.__root.getAttribute(\"id\")\n            })\n          );\n        } else if (a instanceof Xi)\n          e.setAttribute(\n            o.apply,\n            Tt(\"url(#{id})\", {\n              id: a.__root.getAttribute(\"id\")\n            })\n          );\n        else if (o.apply.indexOf(t) !== -1 && o.svg !== a)\n          if ((o.svgAttr === \"stroke\" || o.svgAttr === \"fill\") && a.indexOf(\"rgba\") !== -1) {\n            const c = /rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d?\\.?\\d*)\\s*\\)/gi.exec(a);\n            if (c) {\n              e.setAttribute(\n                o.svgAttr,\n                Tt(\"rgb({r},{g},{b})\", {\n                  r: c[1],\n                  g: c[2],\n                  b: c[3]\n                })\n              );\n              let l = parseFloat(c[4]);\n              const u = this.globalAlpha;\n              u != null && (l *= u), e.setAttribute(\n                o.svgAttr + \"-opacity\",\n                \"\" + l\n              );\n            }\n          } else {\n            let h = o.svgAttr;\n            if (i[r] === \"globalAlpha\" && (h = t + \"-\" + o.svgAttr, e.getAttribute(h)))\n              continue;\n            h && e.setAttribute(h, a);\n          }\n      }\n    }\n  }\n  /**\n   * Will return the closest group or svg node. May return the current element.\n   */\n  __closestGroupOrSvg(t) {\n    return t = t || this.__currentElement, t.nodeName === \"g\" || t.nodeName === \"svg\" ? t : this.__closestGroupOrSvg(t.parentNode);\n  }\n  /**\n   * Returns the serialized value of the svg so far\n   * @param fixNamedEntities - Standalone SVG doesn't support named entities, which document.createTextNode encodes.\n   *                           If true, we attempt to find all named entities and encode it as a numeric entity.\n   * @return serialized svg\n   */\n  getSerializedSvg(t) {\n    let e = new XMLSerializer().serializeToString(this.__rootSVG);\n    if (/xmlns=\"http:\\/\\/www\\.w3\\.org\\/2000\\/svg\".+xmlns=\"http:\\/\\/www\\.w3\\.org\\/2000\\/svg/gi.test(e) && (e = e.replace(\n      'xmlns=\"http://www.w3.org/2000/svg',\n      'xmlns:xlink=\"http://www.w3.org/1999/xlink'\n    )), t) {\n      const i = Object.keys(Ba);\n      for (let r = 0, o = i.length; r < o; r++) {\n        const a = i[r], h = Ba[a], c = new RegExp(a, \"gi\");\n        c.test(e) && (e = e.replace(c, h));\n      }\n    }\n    return e;\n  }\n  /**\n   * Returns the root svg\n   */\n  getSvg() {\n    return this.__rootSVG;\n  }\n  /**\n   * Will generate a group tag\n   */\n  save() {\n    const t = this.__createElement(\"g\"), e = this.__closestGroupOrSvg();\n    this.__groupStack.push(e), e.appendChild(t), this.__currentElement = t, this.__styleStack.push(this.__getStyleState());\n  }\n  /**\n   * Sets current element to parent, or just root if already root\n   */\n  restore() {\n    this.__currentElementsToStyle = null;\n    const t = this.__groupStack.pop();\n    t ? this.__currentElement = t : this.__currentElement = this.__rootSVG.childNodes[1];\n    const e = this.__styleStack.pop();\n    e && this.__applyStyleState(e);\n  }\n  /**\n   * Helper method to add transform\n   */\n  __addTransform(t) {\n    const e = this.__closestGroupOrSvg();\n    if (e.childNodes.length > 0) {\n      this.__currentElement.nodeName === \"path\" && (this.__currentElementsToStyle || (this.__currentElementsToStyle = { element: e, children: [] }), this.__currentElementsToStyle.children.push(this.__currentElement), this.__applyCurrentDefaultPath());\n      const i = this.__createElement(\"g\");\n      e.appendChild(i), this.__currentElement = i;\n    }\n    let s = this.__currentElement.getAttribute(\"transform\");\n    s ? s += \" \" : s = \"\", s += t, this.__currentElement.setAttribute(\"transform\", s);\n  }\n  /**\n   *  scales the current element\n   */\n  scale(t, e) {\n    e === void 0 && (e = t), this.__addTransform(Tt(\"scale({x},{y})\", { x: t, y: e }));\n  }\n  /**\n   * rotates the current element\n   */\n  rotate(t) {\n    const e = t * 180 / Math.PI;\n    this.__addTransform(\n      Tt(\"rotate({angle},{cx},{cy})\", {\n        angle: e,\n        cx: 0,\n        cy: 0\n      })\n    );\n  }\n  /**\n   * translates the current element\n   */\n  translate(t, e) {\n    this.__addTransform(Tt(\"translate({x},{y})\", { x: t, y: e }));\n  }\n  /**\n   * applies a transform to the current element\n   */\n  transform(t, e, s, i, r, o) {\n    this.__addTransform(\n      Tt(\"matrix({a},{b},{c},{d},{e},{f})\", {\n        a: t,\n        b: e,\n        c: s,\n        d: i,\n        e: r,\n        f: o\n      })\n    );\n  }\n  /**\n   * Create a new Path Element\n   */\n  beginPath() {\n    this.__currentDefaultPath = \"\", this.__currentPosition = {};\n    const t = this.__createElement(\"path\", {}, !0);\n    this.__closestGroupOrSvg().appendChild(t), this.__currentElement = t;\n  }\n  /**\n   * Helper function to apply currentDefaultPath to current path element\n   */\n  __applyCurrentDefaultPath() {\n    const t = this.__currentElement;\n    t.nodeName === \"path\" && t.setAttribute(\"d\", this.__currentDefaultPath);\n  }\n  /**\n   * Helper function to add path command\n   */\n  __addPathCommand(t) {\n    this.__currentDefaultPath += \" \", this.__currentDefaultPath += t;\n  }\n  /**\n   * Adds the move command to the current path element,\n   * if the currentPathElement is not empty create a new path element\n   */\n  moveTo(t, e) {\n    this.__currentElement.nodeName !== \"path\" && this.beginPath(), this.__currentPosition = { x: t, y: e }, this.__addPathCommand(Tt(\"M {x} {y}\", this.__currentPosition));\n  }\n  /**\n   * Closes the current path\n   */\n  closePath() {\n    this.__currentDefaultPath && this.__addPathCommand(\"Z\");\n  }\n  /**\n   * Adds a line to command\n   */\n  lineTo(t, e) {\n    this.__currentPosition = { x: t, y: e }, this.__currentDefaultPath.indexOf(\"M\") > -1 ? this.__addPathCommand(Tt(\"L {x} {y}\", this.__currentPosition)) : this.__addPathCommand(Tt(\"M {x} {y}\", this.__currentPosition));\n  }\n  /**\n   * Add a bezier command\n   */\n  bezierCurveTo(t, e, s, i, r, o) {\n    this.__currentPosition = { x: r, y: o }, this.__addPathCommand(\n      Tt(\"C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}\", {\n        cp1x: t,\n        cp1y: e,\n        cp2x: s,\n        cp2y: i,\n        x: r,\n        y: o\n      })\n    );\n  }\n  /**\n   * Adds a quadratic curve to command\n   */\n  quadraticCurveTo(t, e, s, i) {\n    this.__currentPosition = { x: s, y: i }, this.__addPathCommand(\n      Tt(\"Q {cpx} {cpy} {x} {y}\", { cpx: t, cpy: e, x: s, y: i })\n    );\n  }\n  /**\n   * Return a new normalized vector of given vector\n   */\n  normalize(t) {\n    const e = Math.sqrt(t[0] * t[0] + t[1] * t[1]);\n    return [t[0] / e, t[1] / e];\n  }\n  /**\n   * Adds the arcTo to the current path\n   *\n   * @see http://www.w3.org/TR/2015/WD-2dcontext-20150514/#dom-context-2d-arcto\n   */\n  arcTo(t, e, s, i, r) {\n    const o = this.__currentPosition && this.__currentPosition.x, a = this.__currentPosition && this.__currentPosition.y;\n    if (typeof o > \"u\" || typeof a > \"u\")\n      return;\n    if (r < 0)\n      throw new Error(\n        \"IndexSizeError: The radius provided (\" + r + \") is negative.\"\n      );\n    if (o === t && a === e || t === s && e === i || r === 0) {\n      this.lineTo(t, e);\n      return;\n    }\n    const h = this.normalize([o - t, a - e]), c = this.normalize([s - t, i - e]);\n    if (h[0] * c[1] === h[1] * c[0]) {\n      this.lineTo(t, e);\n      return;\n    }\n    const l = h[0] * c[0] + h[1] * c[1], u = Math.acos(Math.abs(l)), d = this.normalize([\n      h[0] + c[0],\n      h[1] + c[1]\n    ]), f = r / Math.sin(u / 2), m = t + f * d[0], p = e + f * d[1], S = [\n      -h[1],\n      h[0]\n    ], g = [c[1], -c[0]], b = function(C) {\n      const _ = C[0];\n      return C[1] >= 0 ? Math.acos(_) : -Math.acos(_);\n    }, x = b(S), w = b(g);\n    this.lineTo(\n      m + S[0] * r,\n      p + S[1] * r\n    ), this.arc(m, p, r, x, w);\n  }\n  /**\n   * Sets the stroke property on the current element\n   */\n  stroke() {\n    this.__currentElement.nodeName === \"path\" && this.__currentElement.setAttribute(\"paint-order\", \"fill stroke markers\"), this.__applyCurrentDefaultPath(), this.__applyStyleToCurrentElement(\"stroke\");\n  }\n  /**\n   * Sets fill properties on the current element\n   */\n  fill() {\n    this.__currentElement.nodeName === \"path\" && this.__currentElement.setAttribute(\"paint-order\", \"stroke fill markers\"), this.__applyCurrentDefaultPath(), this.__applyStyleToCurrentElement(\"fill\");\n  }\n  /**\n   *  Adds a rectangle to the path.\n   */\n  rect(t, e, s, i) {\n    this.__currentElement.nodeName !== \"path\" && this.beginPath(), this.moveTo(t, e), this.lineTo(t + s, e), this.lineTo(t + s, e + i), this.lineTo(t, e + i), this.lineTo(t, e), this.closePath();\n  }\n  /**\n   * adds a rectangle element\n   */\n  fillRect(t, e, s, i) {\n    const r = this.__createElement(\n      \"rect\",\n      {\n        x: t,\n        y: e,\n        width: s,\n        height: i\n      },\n      !0\n    );\n    this.__closestGroupOrSvg().appendChild(r), this.__currentElement = r, this.__applyStyleToCurrentElement(\"fill\");\n  }\n  /**\n   * Draws a rectangle with no fill\n   */\n  strokeRect(t, e, s, i) {\n    const r = this.__createElement(\n      \"rect\",\n      {\n        x: t,\n        y: e,\n        width: s,\n        height: i\n      },\n      !0\n    );\n    this.__closestGroupOrSvg().appendChild(r), this.__currentElement = r, this.__applyStyleToCurrentElement(\"stroke\");\n  }\n  /**\n   * Clear entire canvas:\n   * 1. save current transforms\n   * 2. remove all the childNodes of the root g element\n   */\n  __clearCanvas() {\n    const e = this.__closestGroupOrSvg().getAttribute(\"transform\"), s = this.__rootSVG.childNodes[1], i = s.childNodes;\n    for (let r = i.length - 1; r >= 0; r--)\n      i[r] && s.removeChild(i[r]);\n    this.__currentElement = s, this.__groupStack = [], e && this.__addTransform(e);\n  }\n  /**\n   * \"Clears\" a canvas by just drawing a white rectangle in the current group.\n   */\n  clearRect(t, e, s, i) {\n    if (t === 0 && e === 0 && s === this.width && i === this.height) {\n      this.__clearCanvas();\n      return;\n    }\n    const r = this.__closestGroupOrSvg(), o = this.__createElement(\n      \"rect\",\n      {\n        x: t,\n        y: e,\n        width: s,\n        height: i,\n        fill: \"#FFFFFF\"\n      },\n      !0\n    );\n    r.appendChild(o);\n  }\n  /**\n   * Adds a linear gradient to a defs tag.\n   * Returns a canvas gradient object that has a reference to it's parent def\n   */\n  createLinearGradient(t, e, s, i) {\n    const r = this.__createElement(\n      \"linearGradient\",\n      {\n        id: Pn(this.__ids),\n        x1: t + \"px\",\n        x2: s + \"px\",\n        y1: e + \"px\",\n        y2: i + \"px\",\n        gradientUnits: \"userSpaceOnUse\"\n      },\n      !1\n    );\n    return this.__SVGdefs.appendChild(r), new Xi(r, this);\n  }\n  /**\n   * Adds a radial gradient to a defs tag.\n   * Returns a canvas gradient object that has a reference to it's parent def\n   */\n  createRadialGradient(t, e, s, i, r, o) {\n    const a = this.__createElement(\n      \"radialGradient\",\n      {\n        id: Pn(this.__ids),\n        cx: i + \"px\",\n        cy: r + \"px\",\n        r: o + \"px\",\n        fx: t + \"px\",\n        fy: e + \"px\",\n        gradientUnits: \"userSpaceOnUse\"\n      },\n      !1\n    );\n    return this.__SVGdefs.appendChild(a), new Xi(a, this);\n  }\n  /**\n   * Parses the font string and returns svg mapping\n   */\n  __parseFont() {\n    const e = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:%|in|[cem]m|ex|p[CustomCanvasContext]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:%|in|[cem]m|ex|p[CustomCanvasContext])))?\\s*([-,'\"\\sa-z0-9]+?)\\s*$/i.exec(this.font), s = {\n      style: e[1] || \"normal\",\n      size: e[4] || \"10px\",\n      family: e[6] || \"sans-serif\",\n      weight: e[3] || \"normal\",\n      decoration: e[2] || \"normal\",\n      href: null\n    };\n    return this.__fontUnderline === \"underline\" && (s.decoration = \"underline\"), this.__fontHref && (s.href = this.__fontHref), s;\n  }\n  /**\n   * Helper to link text fragments\n   */\n  __wrapTextLink(t, e) {\n    if (t.href) {\n      const s = this.__createElement(\"a\");\n      return s.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"xlink:href\", t.href), s.appendChild(e), s;\n    }\n    return e;\n  }\n  /**\n   * Fills or strokes text\n   * @param text\n   * @param x\n   * @param y\n   * @param action - stroke or fill\n   */\n  __applyText(t, e, s, i) {\n    const r = this.__parseFont(), o = this.__closestGroupOrSvg(), a = this.__createElement(\n      \"text\",\n      {\n        \"font-family\": r.family,\n        \"font-size\": r.size,\n        \"font-style\": r.style,\n        \"font-weight\": r.weight,\n        \"text-decoration\": r.decoration,\n        x: e,\n        y: s,\n        \"text-anchor\": Sg(this.textAlign),\n        \"dominant-baseline\": Cg(this.textBaseline)\n      },\n      !0\n    );\n    a.appendChild(this.__document.createTextNode(t)), this.__currentElement = a, this.__applyStyleToCurrentElement(i), o.appendChild(\n      this.__wrapTextLink(r, a)\n    );\n  }\n  /**\n   * Creates a text element\n   * @param text\n   * @param x\n   * @param y\n   */\n  fillText(t, e, s) {\n    this.__applyText(t, e, s, \"fill\");\n  }\n  /**\n   * Strokes text\n   * @param text\n   * @param x\n   * @param y\n   */\n  strokeText(t, e, s) {\n    this.__applyText(t, e, s, \"stroke\");\n  }\n  /**\n   * No need to implement this for svg.\n   * @param text\n   * @return {TextMetrics}\n   */\n  measureText(t) {\n    return this.__ctx.font = this.font, this.__ctx.measureText(t);\n  }\n  /**\n   *  Arc command!\n   */\n  arc(t, e, s, i, r, o) {\n    if (i === r)\n      return;\n    i = i % (2 * Math.PI), r = r % (2 * Math.PI), i === r && (r = (r + 2 * Math.PI - 1e-3 * (o ? -1 : 1)) % (2 * Math.PI));\n    const a = t + s * Math.cos(r), h = e + s * Math.sin(r), c = t + s * Math.cos(i), l = e + s * Math.sin(i), u = o ? 0 : 1;\n    let d = 0, f = r - i;\n    f < 0 && (f += 2 * Math.PI), o ? d = f > Math.PI ? 0 : 1 : d = f > Math.PI ? 1 : 0, this.lineTo(c, l), this.__addPathCommand(\n      Tt(\n        \"A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}\",\n        {\n          rx: s,\n          ry: s,\n          xAxisRotation: 0,\n          largeArcFlag: d,\n          sweepFlag: u,\n          endX: a,\n          endY: h\n        }\n      )\n    ), this.__currentPosition = { x: a, y: h };\n  }\n  /**\n   * Generates a ClipPath from the clip command.\n   */\n  clip() {\n    const t = this.__closestGroupOrSvg(), e = this.__createElement(\"clipPath\"), s = Pn(this.__ids), i = this.__createElement(\"g\");\n    this.__applyCurrentDefaultPath(), t.removeChild(this.__currentElement), e.setAttribute(\"id\", s), e.appendChild(this.__currentElement), this.__SVGdefs.appendChild(e), t.setAttribute(\"clip-path\", Tt(\"url(#{id})\", { id: s })), t.appendChild(i), this.__currentElement = i;\n  }\n  /**\n   * Draws a canvas, image or mock context to this canvas.\n   * Note that all svg dom manipulation uses node.childNodes rather than node.children for IE support.\n   * http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage\n   */\n  drawImage(...t) {\n    let e = t[0], s, i, r, o, a = 0, h = 0, c, l, u, d, f, m, p, S;\n    if (t.length === 3)\n      s = t[1], i = t[2], c = e.width, l = e.height, r = c, o = l;\n    else if (t.length === 5)\n      s = t[1], i = t[2], r = t[3], o = t[4], c = e.width, l = e.height;\n    else if (t.length === 9)\n      a = t[1], h = t[2], c = t[3], l = t[4], s = t[5], i = t[6], r = t[7], o = t[8];\n    else\n      throw new Error(\n        \"Invalid number of arguments passed to drawImage: \" + arguments.length\n      );\n    const g = this.__closestGroupOrSvg();\n    this.__currentElement;\n    const b = \"translate(\" + s + \", \" + i + \")\";\n    if (e instanceof Hn) {\n      if (u = e.getSvg().cloneNode(!0), u.childNodes && u.childNodes.length > 1) {\n        for (d = u.childNodes[0]; d.childNodes.length; )\n          S = d.childNodes[0].getAttribute(\"id\"), this.__ids[S] = S, this.__SVGdefs.appendChild(d.childNodes[0]);\n        if (f = u.childNodes[1], f) {\n          const x = f.getAttribute(\"transform\");\n          let w;\n          x ? w = x + \" \" + b : w = b, f.setAttribute(\"transform\", w), g.appendChild(f);\n        }\n      }\n    } else\n      (e.nodeName === \"CANVAS\" || e.nodeName === \"IMG\") && (m = this.__createElement(\"image\"), m.setAttribute(\"width\", r), m.setAttribute(\"height\", o), m.setAttribute(\"preserveAspectRatio\", \"none\"), (a || h || c !== e.width || l !== e.height) && (p = this.__document.createElement(\"canvas\"), p.width = r, p.height = o, p.getContext(\"2d\")?.drawImage(e, a, h, c, l, 0, 0, r, o), e = p), m.setAttribute(\"transform\", b), m.setAttributeNS(\n        \"http://www.w3.org/1999/xlink\",\n        \"xlink:href\",\n        e.nodeName === \"CANVAS\" ? e.toDataURL() : e.getAttribute(\"src\")\n      ), g.appendChild(m));\n  }\n  /**\n   * Generates a pattern tag\n   */\n  createPattern(t, e) {\n    const s = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"pattern\"\n    ), i = Pn(this.__ids);\n    let r;\n    return s.setAttribute(\"id\", i), t.nodeName === \"CANVAS\" || t.nodeName === \"IMG\" ? (r = this.__document.createElementNS(\n      \"http://www.w3.org/2000/svg\",\n      \"image\"\n    ), r.setAttribute(\n      \"width\",\n      \"\" + t.width\n    ), r.setAttribute(\n      \"height\",\n      \"\" + t.height\n    ), r.setAttributeNS(\n      \"http://www.w3.org/1999/xlink\",\n      \"xlink:href\",\n      t.nodeName === \"CANVAS\" ? t.toDataURL() : t.getAttribute(\"src\")\n    ), s.appendChild(r), this.__SVGdefs.appendChild(s)) : t instanceof Hn && (s.setAttribute(\"width\", \"\" + t.width), s.setAttribute(\n      \"height\",\n      \"\" + t.height\n    ), s.appendChild(t.__rootSVG.childNodes[1]), this.__SVGdefs.appendChild(s)), new Xa(s, this);\n  }\n  setLineDash(t) {\n    t && t.length > 0 ? this.lineDash = t.join(\",\") : this.lineDash = null;\n  }\n  drawFocusRing() {\n  }\n  createImageData() {\n  }\n  getImageData() {\n  }\n  putImageData() {\n  }\n  globalCompositeOperation() {\n  }\n  setTransform() {\n  }\n}\nclass vr {\n  canvas;\n  context;\n  // context: CanvasRenderingContext2D\n  // | WebGLRenderingContext\n  // | WebGL2RenderingContext\n  // | GPUCanvasContext\n  // | ImageBitmapRenderingContext\n  customContext;\n  // https://developer.mozilla.org/en-US/docs/Web/API/Path2D\n  enablePath2D = !1;\n  currentPath2D = new Path2D();\n  path2Ds = [];\n  // https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix\n  currentMatrix = new DOMMatrix();\n  // currentMatrix = document\n  //   .createElementNS(\"http://www.w3.org/2000/svg\", \"svg\")\n  //   .createSVGMatrix();\n  hasSetCustomStrokeStyle = !1;\n  hasSetCustomFillStyle = !1;\n  constructor(t, e, s, i = !1, r = !1) {\n    this.canvas = t, this.context = t.getContext(\"2d\", {\n      willReadFrequently: !0\n    }), i && (this.customContext = new Hn({\n      canvas: this.canvas,\n      width: e || this.canvas.width,\n      height: s || this.canvas.height\n    })), this.enablePath2D = typeof r == \"boolean\" ? r : !1;\n  }\n  set lineWidth(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.lineWidth = t, this.customContext && (this.customContext.lineWidth = t);\n  }\n  get lineWidth() {\n    return this.context.lineWidth;\n  }\n  set lineCap(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.lineCap = t, this.customContext && (this.customContext.lineCap = t);\n  }\n  get lineCap() {\n    return this.context.lineCap;\n  }\n  set lineJoin(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.lineJoin = t, this.customContext && (this.customContext.lineCap = t);\n  }\n  get lineJoin() {\n    return this.context.lineJoin;\n  }\n  set lineDashOffset(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.lineDashOffset = t, this.customContext && (this.customContext.lineDashOffset = t);\n  }\n  get lineDashOffset() {\n    return this.context.lineDashOffset;\n  }\n  set miterLimit(t) {\n    this.hasSetCustomStrokeStyle = !0, this.context.miterLimit = t, this.customContext && (this.customContext.miterLimit = t);\n  }\n  get miterLimit() {\n    return this.context.miterLimit;\n  }\n  set globalAlpha(t) {\n    this.context.globalAlpha = t, this.customContext && (this.customContext.globalAlpha = t);\n  }\n  get globalAlpha() {\n    return this.context.globalAlpha;\n  }\n  // rgb(255,221,0)\n  // rgba(255,221,0,1)\n  // #000000\n  set fillStyle(t) {\n    this.hasSetCustomFillStyle = !0, typeof t == \"string\" || t instanceof CanvasGradient || t instanceof CanvasPattern ? (this.context.fillStyle = t, this.customContext && (this.customContext.fillStyle = t)) : (this.context.fillStyle = t.gradient, this.customContext && (this.customContext.fillStyle = t.gradientCustom));\n  }\n  get fillStyle() {\n    return this.context.fillStyle;\n  }\n  set strokeStyle(t) {\n    this.hasSetCustomStrokeStyle = !0, typeof t == \"string\" || t instanceof CanvasGradient || t instanceof CanvasPattern ? (this.context.strokeStyle = t, this.customContext && (this.customContext.strokeStyle = t)) : (this.context.strokeStyle = t.gradient, this.customContext && (this.customContext.strokeStyle = t.gradientCustom));\n  }\n  get strokeStyle() {\n    return this.context.strokeStyle;\n  }\n  // font:\"10px sans-serif\"\n  set font(t) {\n    this.context.font = t, this.customContext && (this.customContext.font = t);\n  }\n  get font() {\n    return this.context.font;\n  }\n  set textBaseline(t) {\n    this.context.textBaseline = t, this.customContext && (this.customContext.textBaseline = t);\n  }\n  get textBaseline() {\n    return this.context.textBaseline;\n  }\n  set textAlign(t) {\n    this.context.textAlign = t, this.customContext && (this.customContext.textAlign = t);\n  }\n  get textAlign() {\n    return this.context.textAlign;\n  }\n  fill(t) {\n    return t ? this.context.fill(t) : (this.context.fill(), this.customContext && this.customContext.fill()), this;\n  }\n  fillRect(t, e, s, i) {\n    return this.context.fillRect(t, e, s, i), this.customContext && this.customContext.fillRect(t, e, s, i), this;\n  }\n  fillText(t, e, s, i) {\n    return this.hasSetCustomFillStyle = !1, this.context.fillText(t, e, s, i), this.customContext && this.customContext.fillText(t, e, s), this;\n  }\n  setLineDash(t) {\n    return this.context.setLineDash(t), this.customContext && this.customContext.setLineDash(t), this;\n  }\n  stroke(t) {\n    return t ? this.context.stroke(t) : (this.context.stroke(), this.customContext && this.customContext.stroke()), this;\n  }\n  strokeText(t, e, s, i) {\n    return this.context.strokeText(t, e, s, i), this.customContext && this.customContext.strokeText(t, e, s), this;\n  }\n  strokeRect(t, e, s, i) {\n    return this.context.strokeRect(t, e, s, i), this.customContext && this.customContext.strokeRect(t, e, s, i), this;\n  }\n  measureText(t) {\n    return this.context.measureText(t);\n  }\n  clearRect(t = 0, e = 0, s = this.canvas.width, i = this.canvas.height) {\n    return this.context.clearRect(t, e, s, i), this.customContext && this.customContext.clearRect(t, e, s, i), this;\n  }\n  save() {\n    return this.context.save(), this.customContext && this.customContext.save(), this.currentMatrix = new DOMMatrix(), this.enablePath2D && (this.path2Ds.push(this.currentPath2D), this.currentPath2D = new Path2D()), this;\n  }\n  restore() {\n    return this.context.restore(), this.customContext && this.customContext.restore(), this.hasSetCustomStrokeStyle = !1, this.hasSetCustomFillStyle = !1, this.currentMatrix = new DOMMatrix(), this.enablePath2D && (this.currentPath2D = this.path2Ds.pop() || new Path2D()), this;\n  }\n  beginPath() {\n    return this.context.beginPath(), this.customContext && this.customContext.beginPath(), this;\n  }\n  closePath() {\n    return this.context.closePath(), this.customContext && this.customContext.closePath(), this.enablePath2D && this.currentPath2D.closePath(), this;\n  }\n  changePath2D(t = this.currentPath2D, e = this.currentMatrix) {\n    if (this.enablePath2D) {\n      const s = new Path2D();\n      s.addPath(t, e), this.currentPath2D = s;\n    }\n  }\n  isPointInStroke(...t) {\n    return t[0] instanceof Path2D ? this.context.isPointInStroke(t[0], t[1], t[2]) : this.context.isPointInStroke(t[0], t[1]);\n  }\n  isPointInPath(...t) {\n    return t[0] instanceof Path2D ? this.context.isPointInPath(t[0], t[1], t[2]) : this.context.isPointInPath(t[0], t[1]);\n  }\n  // transform(a: number, b: number, c: number, d: number, e: number, f: number) {\n  //   this.context.transform(a, b, c, d, e, f);\n  //   if (this.customContext) this.customContext.transform(a, b, c, d, e, f);\n  //   return this;\n  // }\n  translate(t, e) {\n    return this.context.translate(t, e), this.customContext && this.customContext.translate(t, e), this.currentMatrix = this.currentMatrix.translate(t, e), this.changePath2D(), this;\n  }\n  rotate(t, e = 0, s = 0) {\n    return this.translate(e, s), this.context.rotate(t), this.customContext && this.customContext.rotate(t), this.currentMatrix = this.currentMatrix.rotate(t), this.translate(-e, -s), this.changePath2D(), this;\n  }\n  scale(t, e = t, s = 0, i = 0) {\n    return this.translate(s, i), this.context.scale(t, e), this.customContext && this.customContext.scale(t, e), this.currentMatrix = this.currentMatrix.scale(t, e), this.translate(-s, -i), this.changePath2D(), this;\n  }\n  moveTo(t, e) {\n    return this.context.moveTo(t, e), this.customContext && this.customContext.moveTo(t, e), this.enablePath2D && this.currentPath2D.moveTo(t, e), this;\n  }\n  lineTo(t, e) {\n    return this.context.lineTo(t, e), this.customContext && this.customContext.lineTo(t, e), this.enablePath2D && this.currentPath2D.lineTo(t, e), this;\n  }\n  arc(t, e, s, i, r, o) {\n    return this.context.arc(t, e, s, i, r, o), this.customContext && this.customContext.arc(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o ? -1 : 1\n    ), this.enablePath2D && this.currentPath2D.arc(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o\n    ), this;\n  }\n  arcTo(t, e, s, i, r) {\n    return this.context.arcTo(t, e, s, i, r), this.customContext && this.customContext.arcTo(t, e, s, i, r), this.enablePath2D && this.currentPath2D.arcTo(t, e, s, i, r), this;\n  }\n  ellipse(t, e, s, i, r, o, a, h) {\n    return this.context.ellipse(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o,\n      a,\n      h\n    ), this.enablePath2D && this.currentPath2D.ellipse(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o,\n      a,\n      h\n    ), this;\n  }\n  quadraticCurveTo(t, e, s, i) {\n    return this.context.quadraticCurveTo(t, e, s, i), this.customContext && this.customContext.quadraticCurveTo(t, e, s, i), this.enablePath2D && this.currentPath2D.quadraticCurveTo(t, e, s, i), this;\n  }\n  bezierCurveTo(t, e, s, i, r, o) {\n    return this.context.bezierCurveTo(t, e, s, i, r, o), this.customContext && this.customContext.bezierCurveTo(t, e, s, i, r, o), this.enablePath2D && this.currentPath2D.bezierCurveTo(t, e, s, i, r, o), this;\n  }\n  rect(t, e, s, i) {\n    return this.context.rect(t, e, s, i), this.customContext && this.customContext.rect(t, e, s, i), this.enablePath2D && this.currentPath2D.rect(t, e, s, i), this;\n  }\n  // { 0: \"#ffffff\", 1: \"#ff0000\" }\n  createLinearGradient(t, e, s, i, r) {\n    const o = this.context.createLinearGradient(\n      t,\n      e,\n      s,\n      i\n    );\n    return r && Object.entries(r).forEach(([a, h]) => {\n      o.addColorStop(parseFloat(a), h);\n    }), o;\n  }\n  createRadialGradient(t, e, s, i, r, o, a) {\n    const h = this.context.createRadialGradient(\n      t,\n      e,\n      s,\n      i,\n      r,\n      o\n    );\n    return a && Object.entries(a).forEach(([c, l]) => {\n      h.addColorStop(parseFloat(c), l);\n    }), h;\n  }\n  //  const image = new Image();\n  //  image.src = \"../assets/images/picture.jpg\";\n  //  image.onload = function () {\n  //    co.drawImage(image);\n  //  };\n  drawImage(t, ...e) {\n    if (e.length === 0)\n      this.context.drawImage(t, 0, 0);\n    else if (e.length === 2) {\n      const s = e[0], i = e[1];\n      this.context.drawImage(t, s, i);\n    } else if (e.length === 4) {\n      const s = e[0], i = e[1], r = e[2], o = e[3];\n      this.context.drawImage(t, s, i, r, o);\n    } else if (e.length === 8) {\n      const s = e[0], i = e[1], r = e[2], o = e[3], a = e[4], h = e[5], c = e[6], l = e[7];\n      this.context.drawImage(t, s, i, r, o, a, h, c, l);\n    } else\n      throw new Error(\n        \"Invalid number of arguments passed to drawImage: \" + e.length\n      );\n    return this.customContext && this.customContext.drawImage(t, ...e), this;\n  }\n  getImageData(t = 0, e = 0, s = this.canvas.width, i = this.canvas.height, r) {\n    return this.context.getImageData(t, e, s, i, r);\n  }\n  putImageData(t, e = 0, s = 0) {\n    return this.context.putImageData(t, e, s);\n  }\n  createPattern(t, e) {\n    return this.context.createPattern(t, e);\n  }\n  toRawSVG() {\n    if (this.customContext) {\n      const t = this.customContext.getSerializedSvg(!0), e = this.customContext.getSvg();\n      return { raw: t, element: e };\n    } else\n      return { raw: \"\", element: null };\n  }\n}\nclass Q {\n  // this.shouldUpdatePathD 交给子类变更\n  shouldUpdatePathD = !1;\n  shouldUpdateTransformPathD = !1;\n  shouldUpdateSVGElInDraw = !1;\n  shouldUpdateMInDraw = !0;\n  shouldUpdateAttrsInDraw = !0;\n  shouldUpdateStyleInDraw = !0;\n  id;\n  initD;\n  d;\n  parent;\n  attrs = {};\n  style = {};\n  initCenterX;\n  initCenterY;\n  _x;\n  _y;\n  _degree;\n  _scaleX;\n  _scaleY;\n  vx;\n  vy;\n  ax;\n  ay;\n  mass;\n  interactive;\n  drag;\n  transform$ = new ke();\n  transformSubscription;\n  // DrawContext 动态注入参数\n  isMouseIn = !1;\n  isDragging = !1;\n  m;\n  el;\n  constructor(t) {\n    this.id = Xs(4), this.initD = t?.initD, this.setAttr({\n      // \"paint-order\": \"markers stroke fill\", // 先 stroke 再 fill\n      // \"paint-order\": \"fill stroke markers\", // default\n      stroke: \"none\",\n      fill: \"none\"\n      // \"pointerEvents\": \"none\",\n    }), t?.attrs && this.setAttr(t.attrs), t?.style && this.setStyle(t.style), this.initCenterX = t?.centerX, this.initCenterY = t?.centerY, this._x = t?.x || 0, this._y = t?.y || 0, this._degree = t?.degree || 0, this._scaleX = 1, this._scaleY = 1, t?.scale !== void 0 && (this._scaleX = t.scale, this._scaleY = t.scale), t?.scaleX !== void 0 && (this._scaleX = t.scaleX), t?.scaleY !== void 0 && (this._scaleY = t.scaleY), this.vx = t?.vx || 0, this.vy = t?.vy || 0, this.ax = t?.ax || 0, this.ay = t?.ay || 0, this.mass = t?.mass || 1, this.interactive = typeof t?.interactive == \"boolean\" ? t?.interactive : !0, this.drag = t?.drag, this.transformSubscription = this.transform$.subscribe(() => {\n      this.shouldUpdateTransformPathD = !0, this.shouldUpdateMInDraw = !0;\n    });\n  }\n  destroy() {\n    this.transformSubscription.unsubscribe();\n  }\n  // 基操\n  moveTo(t, e) {\n    const s = this._x, i = this._y;\n    (s !== t || i !== e) && (this._x = t, this._y = e, this.transform$.next({ dX: t - s, dY: e - i }));\n  }\n  move(t, e = 0) {\n    this.moveTo(this._x + t, this._y + e);\n  }\n  moveXTo(t) {\n    this.moveTo(t, this._y);\n  }\n  moveX(t) {\n    this.moveTo(this._x + t, this._y);\n  }\n  moveYTo(t) {\n    this.moveTo(this._x, t);\n  }\n  moveY(t) {\n    this.moveTo(this._x, this._y + t);\n  }\n  get x() {\n    return this._x;\n  }\n  // 基操\n  set x(t) {\n    this._x !== t && (this.transform$.next({ dX: t - this._x }), this._x = t);\n  }\n  get y() {\n    return this._y;\n  }\n  // 基操\n  set y(t) {\n    this._y !== t && (this.transform$.next({ dY: t - this._y }), this._y = t);\n  }\n  // 基操\n  rotateTo(t) {\n    this._degree !== t && (this.transform$.next({ dDegree: t - this._degree }), this._degree = t);\n  }\n  rotate(t) {\n    this.rotateTo(this._degree + t);\n  }\n  get degree() {\n    return this._degree;\n  }\n  // 基操\n  set degree(t) {\n    this._degree !== t && (this.transform$.next({ dDegree: t - this._degree }), this._degree = t);\n  }\n  // 基操\n  scaleTo(t, e) {\n    const s = this._scaleX, i = this._scaleY;\n    (this._scaleX !== t || this._scaleY !== (e || t)) && (this._scaleX = t, this._scaleY = e || t, this.transform$.next({\n      dScaleX: this._scaleX / s,\n      dScaleY: this._scaleY / i\n    }));\n  }\n  scale(t, e) {\n    this.scaleTo(this._scaleX * t, this._scaleY * (e || t));\n  }\n  get scaleX() {\n    return this._scaleX;\n  }\n  // 基操\n  set scaleX(t) {\n    this._scaleX !== t && (this.transform$.next({\n      dScaleX: t / this._scaleX\n    }), this._scaleX = t);\n  }\n  get scaleY() {\n    return this._scaleY;\n  }\n  // 基操\n  set scaleY(t) {\n    this._scaleY !== t && (this.transform$.next({\n      dScaleY: t / this._scaleY\n    }), this._scaleY = t);\n  }\n  // 无法在 constructor 中获得 子类.toSVGPathData()\n  pathD(t) {\n    return t ? (this.d = t, this.shouldUpdateTransformPathD = !0, this.shouldUpdateSVGElInDraw = !0) : this.initD ? this.d || (this.d = this.initD instanceof At ? this.initD : new At(this.initD)) : (!this.d || this.shouldUpdatePathD) && (this.d = new At(this.toSVGPathData()), this.shouldUpdatePathD = !1, this.shouldUpdateTransformPathD = !0, this.shouldUpdateSVGElInDraw = !0), this.d;\n  }\n  cachedTransformedPathD;\n  transformPathD() {\n    if (!this.m) {\n      const { x: t, y: e } = this.transformOrigin();\n      let s = 0, i = 0;\n      if (this.parent?.dDegree || this.parent?.dScaleX !== 1 || this.parent?.dScaleY !== 1) {\n        const o = this.transformOrigin(!0);\n        s = o.x, i = o.y;\n      }\n      const r = new _t();\n      r.translate(\n        this.x + (this.parent?.dX || 0),\n        this.y + (this.parent?.dY || 0)\n      ), r.rotate(this.degree, t, e), r.scale(this.scaleX, this.scaleY, t, e), this.parent?.dDegree && r.rotate(this.parent.dDegree, s, i), (this.parent?.dScaleX !== 1 || this.parent?.dScaleY !== 1) && r.scale(\n        this.parent?.dScaleX || 1,\n        this.parent?.dScaleY || 1,\n        s,\n        i\n      ), this.m = r;\n    }\n    return (this.shouldUpdateTransformPathD || !this.cachedTransformedPathD) && (this.cachedTransformedPathD = this.pathD().transform({ m: this.m }), this.shouldUpdateTransformPathD = !1), this.cachedTransformedPathD;\n  }\n  getBaseOptions() {\n    return {\n      initD: this.initD,\n      attrs: { ...this.attrs },\n      style: { ...this.style },\n      centerX: this.initCenterX,\n      centerY: this.initCenterY,\n      x: this._x,\n      y: this._y,\n      degree: this._degree,\n      scaleX: this._scaleX,\n      scaleY: this._scaleY,\n      vx: this.vx,\n      vy: this.vy,\n      ax: this.ax,\n      ay: this.ay,\n      mass: this.mass,\n      interactive: this.interactive,\n      drag: { ...this.drag }\n    };\n  }\n  clone() {\n    return this.cloneShape();\n  }\n  // 子类需覆盖！\n  cloneShape() {\n    return new Q(this.getBaseOptions());\n  }\n  // 供外部使用：基本属性变更\n  update(t) {\n    this.shouldUpdatePathD = !0;\n  }\n  // 优先级比 toSVGPathData() 高\n  // 使用相对值! transform 交给 DrawContext\n  toSVGEl() {\n    return null;\n  }\n  // shape 内部定义\n  // 使用相对值! transform 交给 DrawContext\n  toSVGPathData() {\n    return [];\n  }\n  // 外部使用\n  // 使用相对值!\n  toSVGPathD() {\n    return this.pathD().toSVGPathD();\n  }\n  // 使用相对值! transform 交给 DrawContext\n  // ctx.createLinearGradient 使用相对值\n  // 如果子类没有覆盖 toCanvasContext , 默认使用 PathD 的 toCanvasContext\n  // 如果子类覆盖 toCanvasContext , 则使用 原生canvas系统\n  toCanvasContext(t) {\n    this.pathD().toCanvasContext(t);\n  }\n  // 子类可覆盖\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  getBoundingClientRect(t = 2) {\n    return this.pathD().getBoundingClientRect(t);\n  }\n  // 相对坐标系原点 - 坐标系加入考虑 transform : translate rotate scale\n  getRealBoundingClientRect(t = 2) {\n    return this.transformPathD().getBoundingClientRect(t);\n  }\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  getBoundingClientRectCenter(t = 2) {\n    return this.pathD().getBoundingClientRectCenter(t);\n  }\n  // 相对坐标系原点 - 坐标系加入考虑 transform : translate rotate scale\n  getRealBoundingClientRectCenter(t = 2) {\n    return this.transformPathD().getBoundingClientRectCenter(t);\n  }\n  // transform origin - 不缓存, 直接使用 getBoundingClientRectCenter， 间接使用 getBoundingClientRect\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  transformOrigin(t = !1, e = 2) {\n    let s = 0, i = 0;\n    if (this.parent && !t) {\n      const r = this.parent.combo.getBoundingClientRectCenter(e);\n      s = r.x - this.parent.dX, i = r.y - this.parent.dY;\n    } else if (typeof this.initCenterX > \"u\" && typeof this.initCenterY > \"u\") {\n      const r = this.getBoundingClientRectCenter(e);\n      s = r.x, i = r.y;\n    } else\n      s = this.initCenterX || 0, i = this.initCenterY || 0;\n    return { x: s, y: i };\n  }\n  isPointInPath(t, e, s) {\n    if (t instanceof vr)\n      return t.isPointInPath(new Path2D(this.toSVGPathD()), e, s);\n    if (this.el instanceof SVGGeometryElement) {\n      const i = this.el.getCTM();\n      if (i) {\n        const r = i.inverse();\n        return this.el.isPointInFill({\n          x: r.a * e + r.c * s + r.e,\n          y: r.b * e + r.d * s + r.f\n        });\n      }\n    }\n    return !1;\n  }\n  isPointInStroke(t, e, s) {\n    if (t instanceof vr)\n      return t.isPointInStroke(new Path2D(this.toSVGPathD()), e, s);\n    if (this.el instanceof SVGGeometryElement) {\n      const i = this.el.getCTM();\n      if (i) {\n        const r = i.inverse();\n        return this.el.isPointInStroke({\n          x: r.a * e + r.c * s + r.e,\n          y: r.b * e + r.d * s + r.f\n        });\n      }\n    }\n    return !1;\n  }\n  setStyle(t) {\n    Object.assign(this.style, t), this.shouldUpdateStyleInDraw = !0;\n  }\n  setAttr(t, e) {\n    if (typeof t != \"string\")\n      for (const s in t) {\n        const i = t[s];\n        i && i != this.getAttr(s) && (this.attrs[pt(s)] = i, this.shouldUpdateAttrsInDraw = !0);\n      }\n    else\n      e && e != this.getAttr(t) && (this.attrs[pt(t)] = e, this.shouldUpdateAttrsInDraw = !0);\n  }\n  getAttr(t, e) {\n    return this.attrs[t] || this.attrs[pt(t)] || e;\n  }\n  hasAttr(t) {\n    return !!this.getAttr(t);\n  }\n  animate(t) {\n    this.vx += this.ax, this.vy += this.ay;\n    const e = t?.gravity || 0;\n    this.vy += e;\n    const s = t?.friction || 1;\n    this.vx *= s, this.vy *= s, this.move(this.vx, this.vy);\n  }\n  animateEaseTo(t, e) {\n    const s = e?.easing || 0.05, i = t.x - this.x, r = t.y - this.y;\n    this.vx = i * s, this.vy = r * s, this.animate(e);\n  }\n  animateSpringTo(t, e) {\n    const s = e?.spring || 0.03;\n    (Array.isArray(t) ? t : [t]).forEach((i) => {\n      const r = i.x - this.x, o = i.y - this.y, a = r * s, h = o * s;\n      this.vx += a, this.vy += h;\n    }), this.animate({ friction: 0.9, ...e });\n  }\n  getSpringMassAlphaTo(t, e) {\n    const s = e?.springLength || 100, i = e?.spring || 5e-4, r = t.x - this.x, o = t.y - this.y, a = Math.sqrt(r * r + o * o);\n    if (a < s) {\n      const h = r * i, c = o * i;\n      return this.vx += h / this.mass, this.vy += c / this.mass, t.vx -= h / t.mass, t.vy -= c / t.mass, 1 - a / s;\n    }\n    return 0;\n  }\n  followTo(t, e = 3) {\n    this.rotateTo(wt(qt(this.x, this.y, t.x, t.y)));\n    const { dx: s, dy: i } = He(q(this.degree), e);\n    this.vx = s, this.vy = i, this.animate();\n  }\n  followAccelerationTo(t, e = 0.05) {\n    this.rotateTo(wt(qt(this.x, this.y, t.x, t.y)));\n    const { dx: s, dy: i } = He(q(this.degree), e);\n    this.ax = s, this.ay = i, this.animate();\n  }\n  // 物体之间引力\n  gravitateTo(t) {\n    const e = t.x - this.x, s = t.y - this.y, i = e * e + s * s, r = Math.sqrt(i), o = this.mass * t.mass / i, a = o * e / r, h = o * s / r;\n    this.vx += a / this.mass, this.vy += h / this.mass, t.vx -= a / t.mass, t.vy -= h / t.mass;\n  }\n  // 碰撞检测\n  checkCollision(t) {\n    const e = t.x - this.x, s = t.y - this.y, i = Math.sqrt(e * e + s * s), {\n      x: r,\n      y: o,\n      width: a,\n      height: h\n    } = t.getBoundingClientRect(), { x: c, y: l } = t.getBoundingClientRectCenter(), { x: u, y: d, width: f, height: m } = this.getBoundingClientRect(), { x: p, y: S } = this.getBoundingClientRectCenter();\n    if (i < Math.abs(c - r) + Math.abs(p - u) || i < Math.abs(l - o) + Math.abs(S - d)) {\n      const g = Math.atan2(s, e), b = { x: 0, y: 0 }, x = oe(-g, e, s), w = oe(-g, this.vx, this.vy), C = oe(-g, t.vx, t.vy), _ = w.x - C.x;\n      w.x = ((this.mass - t.mass) * w.x + 2 * t.mass * C.x) / (this.mass + t.mass), C.x = _ + w.x;\n      const D = Math.abs(w.x) + Math.abs(C.x), z = this.ballRadius + t.ballRadius - Math.abs(b.x - x.x);\n      b.x += w.x / D * z, x.x += C.x / D * z;\n      const B = oe(g, b.x, b.y), G = oe(g, x.x, x.y);\n      t.moveTo(this.x + G.x, this.y + G.y), this.moveTo(this.x + B.x, this.y + B.y);\n      const V = oe(g, w.x, w.y), j = oe(g, C.x, C.y);\n      this.vx = V.x, this.vy = V.y, t.vx = j.x, t.vy = j.y;\n    }\n  }\n  // 回弹检测 或 重回检测\n  checkWall(t) {\n    if (!t?.wall)\n      return;\n    const e = typeof t.wall.bounce == \"number\" ? t.wall.bounce : -1, s = t.wall.x, i = t.wall.y, r = t.wall.x + t.wall.width, o = t.wall.y + t.wall.height, { x: a, y: h, width: c, height: l } = this.getBoundingClientRect();\n    t.wall.cycle || !1 ? (this.x + a > r ? this.moveXTo(s - (a + c)) : this.x + a + c < s && this.moveXTo(r - a), this.y + h > o ? this.moveYTo(i - (h + l)) : this.y + h + l < i && this.moveYTo(o - h)) : (this.x + a + c > r ? (this.moveXTo(r - (a + c)), this.vx *= e) : this.x + a < s && (this.moveXTo(s + (a + c)), this.vx *= e), this.y + h + l > o ? (this.moveYTo(o - (h + l)), this.vy *= e) : this.y + h < i && (this.moveYTo(i + (h + l)), this.vy *= e));\n  }\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  getTotalLength() {\n    return this.transformPathD().getTotalLength();\n  }\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  // 获取插值方法1\n  getPointAtLength(t) {\n    return this.transformPathD().getPointAtLength(t);\n  }\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  // 获取插值方法2 t (0.0 to 1.0)\n  interpolate(t) {\n    return this.transformPathD().interpolate(t);\n  }\n  // t (0.0 to 1.0)\n  trailPath(t = 0, e = 1) {\n    const s = this.getTotalLength(), i = t * s, r = e * s;\n    return {\n      subPathD: this.transformPathD().getSubPathD(i, r),\n      point: this.getPointAtLength(r)\n    };\n  }\n  // frameDuration 1帧运行时间\n  strokeDashTween(t = 1e3, e) {\n    const s = this.pathD().getTotalLength();\n    this.setAttr({\n      strokeDasharray: `${s} ${s}`,\n      strokeDashoffset: `${s}`\n    });\n    const i = e?.onUpdate, r = new li({ frameDuration: t });\n    r.addTween(\n      { offset: s },\n      { offset: 0 },\n      Object.assign(e || {}, {\n        onUpdate: (o, a) => {\n          this.setAttr(\"strokeDashoffset\", \"\" + Y(o.offset, 2)), i?.(o, a);\n        }\n      })\n    ), r.play();\n  }\n  // const rosetta = Shape.generateRosetta(120, 120, 55, 35, 6);\n  static generateRosetta(t, e, s, i, r) {\n    if (r == 0)\n      throw new Error(\"no dividing by zero, please\");\n    const o = [], a = 360 / r;\n    for (let h = 0; h < r; h += 1) {\n      const c = a * h * Math.PI / 180, l = t + 2 * s * Math.cos(c), u = e + 2 * s * Math.sin(c);\n      o.push(\n        new yr({\n          x: t,\n          y: e,\n          rx: s,\n          ry: i,\n          xAxisRotate: a * h,\n          largeArcFlag: 1,\n          sweepFlag: 1,\n          toX: l,\n          toY: u\n        })\n      ), o.push(\n        new yr({\n          x: l,\n          y: u,\n          rx: s,\n          ry: i,\n          xAxisRotate: a * h,\n          largeArcFlag: 1,\n          sweepFlag: 1,\n          toX: t,\n          toY: e\n        })\n      );\n    }\n    return new Q({ initD: At.fromLines(o) });\n  }\n}\nclass Nt {\n  shapes = [];\n  svg;\n  forceWidth;\n  attrs = {};\n  style = {};\n  initCenterX;\n  initCenterY;\n  x;\n  y;\n  degree;\n  scaleX;\n  scaleY;\n  interactive;\n  drag;\n  constructor(t) {\n    if (this.initCenterX = t?.centerX, this.initCenterY = t?.centerY, this.x = t?.x || 0, this.y = t?.y || 0, this.degree = t?.degree || 0, this.scaleX = 1, this.scaleY = 1, t?.scale !== void 0 && (this.scaleX = t.scale, this.scaleY = t.scale), t?.scaleX !== void 0 && (this.scaleX = t.scaleX), t?.scaleY !== void 0 && (this.scaleY = t.scaleY), t?.attrs && this.setAttr(t.attrs), t?.style && this.setStyle(t.style), this.interactive = typeof t?.interactive == \"boolean\" ? t?.interactive : !0, this.drag = t?.drag, this.svg = t?.svg, this.forceWidth = t?.forceWidth, t?.svg) {\n      this.initCenterX = 0, this.initCenterY = 0;\n      let e = 0, s = 0, i = 0, r = 0;\n      const o = new vg(t.svg).parse();\n      for (let a = 0, h = o.length; a < h; a++) {\n        const c = o[a];\n        if (c.type == \"viewbox\" && c.width && c.height) {\n          if (e = parseFloat(c.width), s = parseFloat(c.height), t.forceWidth) {\n            const m = e / s;\n            i = t.forceWidth, r = i / m;\n          } else\n            i = e, r = s;\n          continue;\n        }\n        if (c.type != \"path\" || !ol(c.path))\n          continue;\n        const l = {};\n        for (const m in c)\n          m === \"type\" || m === \"path\" || m === \"transform\" || (l[m] = c[m]);\n        const u = hl(al(c.path)), d = [];\n        let f = [];\n        for (let m = 0, p = u.length; m < p; m++) {\n          const S = u[m];\n          f.push(S), S[0].toLowerCase() == \"z\" && (d.push(f), f = []);\n        }\n        f.length && d.push(f), d.forEach((m) => {\n          const p = new Q({\n            attrs: l,\n            initD: m\n          });\n          if (c.transform) {\n            const g = v0(c.transform).split();\n            p.moveTo(g.x, g.y), p.rotateTo(g.degree), p.scaleTo(g.scaleX, g.scaleY);\n          }\n          this.addShape(p);\n        });\n      }\n      i && e && r && s && this.comboScale(i / e, r / s, !0);\n    }\n  }\n  destroy() {\n    this.shapes.forEach((t) => t.destroy());\n  }\n  getBaseOptions() {\n    return {\n      svg: this.svg,\n      forceWidth: this.forceWidth,\n      attrs: { ...this.attrs },\n      style: { ...this.style },\n      centerX: this.initCenterX,\n      centerY: this.initCenterY,\n      x: this.x,\n      y: this.y,\n      degree: this.degree,\n      scaleX: this.scaleX,\n      scaleY: this.scaleY,\n      interactive: this.interactive,\n      drag: { ...this.drag }\n    };\n  }\n  clone() {\n    const t = this.cloneShapeCombo();\n    return t.shapes = this.shapes.map((e) => {\n      const s = e.clone();\n      return e.parent && (s.parent = { ...e.parent, combo: t }), s;\n    }), t;\n  }\n  // 子类需覆盖！\n  cloneShapeCombo() {\n    return new Nt(this.getBaseOptions());\n  }\n  // 供外部使用：基本属性变更\n  update(t) {\n    this.shapes.forEach((e) => e.update(t));\n  }\n  addShape(t, e) {\n    e?.notCopyFromCombo !== !0 && (t.setAttr(this.attrs), t.setStyle(this.style), t.interactive = t.interactive || this.interactive, t.drag = { ...this.drag, ...t.drag }), t.parent = {\n      combo: this,\n      dX: e?.dX || 0,\n      dY: e?.dY || 0,\n      dDegree: e?.dDegree || 0,\n      dScaleX: e?.dScaleX || 1,\n      dScaleY: e?.dScaleY || 1\n    }, this.shapes.push(t);\n  }\n  comboMove(t, e, s = !1) {\n    s || (this.x += t, this.y += e), this.shapes.forEach((i) => {\n      i.move(t, e);\n    });\n  }\n  comboRotate(t, e = !1) {\n    e || (this.degree += t), this.shapes.forEach((s) => {\n      s.rotate(t);\n    });\n  }\n  comboScale(t, e, s = !1) {\n    s || (this.scaleX *= t, this.scaleY *= e || t), this.shapes.forEach((i) => {\n      i.scale(t, e);\n    });\n  }\n  comboTransform(t, e = !1) {\n    (typeof t?.x == \"number\" || typeof t?.y == \"number\") && this.comboMove(t?.x || 0, t?.y || 0, e), typeof t?.degree == \"number\" && this.comboRotate(t?.degree || 0, e), (typeof t?.scale == \"number\" || typeof t?.scaleX == \"number\" || typeof t?.scaleY == \"number\") && this.comboScale(\n      t?.scaleX || t?.scale || 1,\n      t?.scaleY || t?.scale || 1,\n      e\n    );\n  }\n  // 子类可覆盖\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  getBoundingClientRect(t = 2) {\n    const e = [], s = [];\n    if (this.shapes.forEach((h) => {\n      const c = h.getBoundingClientRect(t);\n      e.push(c.x, c.x + c.width), s.push(c.y, c.y + c.height);\n    }), e.length == 0 || s.length == 0)\n      return { x: 0, y: 0, width: 0, height: 0 };\n    const i = Math.min(...e), r = Math.min(...s), o = Math.max(...e), a = Math.max(...s);\n    return {\n      x: Y(i, t),\n      y: Y(r, t),\n      width: Y(o - i, t),\n      height: Y(a - r, t)\n    };\n  }\n  // 相对坐标系原点 - 坐标系没有考虑 transform : translate rotate scale\n  getBoundingClientRectCenter(t = 2) {\n    if (typeof this.initCenterX == \"number\" && typeof this.initCenterY == \"number\")\n      return { x: this.initCenterX, y: this.initCenterY };\n    const e = this.getBoundingClientRect(t);\n    return {\n      x: Y(e.x + e.width * 0.5, t),\n      y: Y(e.y + e.height * 0.5, t)\n    };\n  }\n  setStyle(t) {\n    Object.assign(this.style, t), this.shapes.forEach((e) => {\n      e.setStyle(t);\n    });\n  }\n  setAttr(t, e) {\n    if (typeof t != \"string\") {\n      for (const s in t) {\n        const i = t[s];\n        i && i != this.getAttr(s) && (this.attrs[pt(s)] = i);\n      }\n      this.shapes.forEach((s) => {\n        s.setAttr(t);\n      });\n    } else\n      e && e != this.getAttr(t) && (this.attrs[pt(t)] = e, this.shapes.forEach((s) => {\n        s.setAttr(t, e);\n      }));\n  }\n  getAttr(t, e) {\n    return this.attrs[t] || this.attrs[pt(t)] || e;\n  }\n  hasAttr(t) {\n    return !!this.getAttr(t);\n  }\n  // 从小到大排序\n  sort() {\n    this.shapes.map((t) => ({\n      shape: t,\n      perimeter: t.transformPathD().getPolymorphPointsPerimeter()\n    })).sort((t, e) => e.perimeter - t.perimeter).map((t) => t.shape);\n  }\n  expendTo(t) {\n    const e = t.shapes.length, s = this.shapes.length;\n    if (e < s)\n      return t.expendTo(this);\n    for (let i = s; i < e; i++) {\n      const r = t.shapes[i];\n      this.addShape(\n        new Q({\n          initD: r.pathD().clone()\n        }),\n        {\n          dX: r.x - this.x,\n          dY: r.y - this.y,\n          dDegree: r.degree - this.degree,\n          dScaleX: r.scaleX / this.scaleX,\n          dScaleY: r.scaleY / this.scaleY,\n          notCopyFromCombo: !0\n        }\n      );\n    }\n  }\n  strokeDashTween(t, e) {\n    switch (e?.type) {\n      case \"sequence\":\n        this.shapes.forEach((o, a) => {\n          o.strokeDashTween(t, {\n            ...e,\n            // 注意 options 浅拷贝\n            delay: a,\n            onStart: () => {\n              a == 0 && e?.onGroupStart?.();\n            },\n            onUpdate: () => {\n              e?.onGroupUpdate?.();\n            },\n            onComplete: () => {\n              a == this.shapes.length - 1 && e?.onGroupComplete?.();\n            }\n          });\n        });\n        break;\n      case \"parallel\":\n      default:\n        const s = new li({ frameDuration: t }), i = {}, r = {};\n        this.shapes.forEach((o, a) => {\n          const h = o.pathD().getTotalLength();\n          i[`offset_${a}`] = h, r[`offset_${a}`] = 0, o.setAttr({\n            strokeDasharray: `${h} ${h}`,\n            strokeDashoffset: `${h}`\n          });\n        }), s.addTween(\n          i,\n          r,\n          Object.assign(e || {}, {\n            onStart: () => {\n              e?.onGroupStart?.();\n            },\n            onUpdate: (o, a) => {\n              for (const h in o) {\n                const c = Hi(h).number;\n                this.shapes[c].setAttr(\n                  \"strokeDashoffset\",\n                  \"\" + Y(o[h], 2)\n                );\n              }\n              e?.onGroupUpdate?.();\n            },\n            onComplete: () => {\n              e?.onGroupComplete?.();\n            }\n          })\n        ), s.play();\n        break;\n    }\n  }\n}\nfunction Sw(n, t, e = 5) {\n  const s = ji(e);\n  (!s(n.x, t.current.x) || !s(n.y, t.current.y)) && n.followTo(t.current);\n}\nfunction Cw(n, t, e) {\n  n.drag && n.drag.enable && !n.isDragging && n.animateEaseTo(t, e);\n}\nfunction Ew(n, t) {\n  const e = [], s = n.length;\n  for (let i = 0; i < s; i++) {\n    const r = n[i];\n    if (t?.springLength) {\n      const o = t?.springLength || 100;\n      r.isDragging || n.filter((a) => a.id !== r.id).forEach((a) => {\n        const h = qt(r.x, r.y, a.x, a.y);\n        r.animateSpringTo(\n          {\n            x: a.x - Math.cos(h) * o,\n            y: a.y - Math.sin(h) * o\n          },\n          t\n        );\n      });\n    } else\n      t?.spring ? i > 0 && r.animateSpringTo(n[i - 1], t) : r.animate(t);\n    if (t?.wall && r.checkWall(t), t?.enableCollision || t?.enableGravityBetweenObjects || t?.enableSpringMassAlpha)\n      for (let o = i + 1; o < s; o++)\n        t?.enableCollision && r.checkCollision(n[o]), t?.enableGravityBetweenObjects && r.gravitateTo(n[o]), t?.enableSpringMassAlpha && e.push([\n          r.x,\n          r.y,\n          n[o].x,\n          n[o].y,\n          r.getSpringMassAlphaTo(n[o], t)\n        ]);\n  }\n  return e;\n}\nfunction ul(n) {\n  if (n.length < 2)\n    throw new Error(\"shapes个数必须大于等于2\");\n  const t = n.length - 1, e = new Array(t);\n  for (let i = 0; i < t; i++) {\n    const r = n[i].transformPathD(), o = n[i + 1].transformPathD(), a = r.getPolymorphPoints(), h = o.getPolymorphPoints(), c = a.length >= h.length ? a : h;\n    e[i] = At.getInterpolator(\n      r.expendToPolymorphPoints(c),\n      o.expendToPolymorphPoints(c)\n    );\n  }\n  const s = new Q({ initD: \"\" });\n  return (i) => {\n    const r = Y(t * i, 6), o = Math.min(Math.floor(r), t - 1), a = Y(r - o, 6);\n    return s.pathD(e[o](a)), s.setAttr(n[o + 1].attrs), s;\n  };\n}\nfunction Eg(n) {\n  if (n.length < 2)\n    throw new Error(\"shapeCombos个数必须大于等于2\");\n  let t;\n  const e = [];\n  n.forEach((o) => {\n    let a;\n    o instanceof Nt ? (a = o, a.sort()) : (a = new Nt(), a.addShape(o)), e.push(a), (!t || t.shapes.length < a.shapes.length) && (t = a);\n  });\n  const s = [];\n  e.forEach((o, a) => {\n    o !== t && o.expendTo(t), o.shapes.forEach((h, c) => {\n      s[c] = s[c] || [], s[c][a] = h;\n    });\n  });\n  const i = [];\n  s.forEach((o) => {\n    i.push(ul(o));\n  });\n  const r = new Nt();\n  return i.forEach((o) => {\n    r.addShape(o(0));\n  }), (o) => (i.forEach((a) => {\n    a(o);\n  }), r);\n}\nfunction Pw(n, t = 6e3, e) {\n  const s = n.findIndex((a) => a instanceof Nt) >= 0 ? Eg(n) : ul(n), i = s(0), r = e?.onUpdate, o = new li({ frameDuration: t });\n  return o.addTween(\n    { t: 0 },\n    { t: 1 },\n    Object.assign(e || {}, {\n      onUpdate: (a, h) => {\n        r?.(a, h), s(a.t), e?.shapeOrCombo?.(i, a.t);\n      }\n    })\n  ), o.play(), i;\n}\nconst Tn = {\n  1: 705234,\n  // rgb(10,194,210)\n  2: 8108026,\n  // rgb(123,183,250)\n  3: 6346665,\n  // rgb(96,215,169)\n  4: 16630114,\n  // rgb(253,193,98)\n  5: 16607842,\n  // rgb(253,106,98)\n  6: 16158139,\n  // rgb(246,141,187)\n  7: 2542847,\n  8: 10640125,\n  9: 16735870,\n  10: 8978266,\n  11: 16580418,\n  12: 16754221,\n  13: 16725759,\n  14: 14436630,\n  15: 6844849,\n  16: 13744437,\n  17: 1817755,\n  18: 16744272,\n  19: 4964291,\n  20: 16750848,\n  d: 14540253,\n  // rgb(221,221,221)\n  aliceblue: 15792383,\n  // rgb(240,248,255)\n  antiquewhite: 16444375,\n  // rgb(250,235,215)\n  aqua: 65535,\n  // rgb(0,255,255)\n  aquamarine: 8388564,\n  // rgb(127,255,212)\n  azure: 15794175,\n  beige: 16119260,\n  bisque: 16770244,\n  black: 0,\n  // rgb(0,0,0)\n  blanchedalmond: 16772045,\n  blue: 255,\n  // rgb(0,0,255)\n  blueviolet: 9055202,\n  brown: 10824234,\n  burlywood: 14596231,\n  cadetblue: 6266528,\n  chartreuse: 8388352,\n  chocolate: 13789470,\n  coral: 16744272,\n  cornflowerblue: 6591981,\n  cornsilk: 16775388,\n  crimson: 14423100,\n  cyan: 65535,\n  darkblue: 139,\n  darkcyan: 35723,\n  darkgoldenrod: 12092939,\n  darkgray: 11119017,\n  darkgreen: 25600,\n  darkgrey: 11119017,\n  darkkhaki: 12433259,\n  darkmagenta: 9109643,\n  darkolivegreen: 5597999,\n  darkorange: 16747520,\n  darkorchid: 10040012,\n  darkred: 9109504,\n  darksalmon: 15308410,\n  darkseagreen: 9419919,\n  darkslateblue: 4734347,\n  darkslategray: 3100495,\n  darkslategrey: 3100495,\n  darkturquoise: 52945,\n  darkviolet: 9699539,\n  deeppink: 16716947,\n  deepskyblue: 49151,\n  dimgray: 6908265,\n  dimgrey: 6908265,\n  dodgerblue: 2003199,\n  firebrick: 11674146,\n  floralwhite: 16775920,\n  forestgreen: 2263842,\n  fuchsia: 16711935,\n  gainsboro: 14474460,\n  ghostwhite: 16316671,\n  gold: 16766720,\n  goldenrod: 14329120,\n  gray: 8421504,\n  green: 32768,\n  greenyellow: 11403055,\n  grey: 8421504,\n  honeydew: 15794160,\n  hotpink: 16738740,\n  indianred: 13458524,\n  indigo: 4915330,\n  ivory: 16777200,\n  khaki: 15787660,\n  lavender: 15132410,\n  lavenderblush: 16773365,\n  lawngreen: 8190976,\n  lemonchiffon: 16775885,\n  lightblue: 11393254,\n  lightcoral: 15761536,\n  lightcyan: 14745599,\n  lightgoldenrodyellow: 16448210,\n  lightgray: 13882323,\n  lightgreen: 9498256,\n  lightgrey: 13882323,\n  lightpink: 16758465,\n  lightsalmon: 16752762,\n  lightseagreen: 2142890,\n  lightskyblue: 8900346,\n  lightslategray: 7833753,\n  lightslategrey: 7833753,\n  lightsteelblue: 11584734,\n  lightyellow: 16777184,\n  lime: 65280,\n  limegreen: 3329330,\n  linen: 16445670,\n  magenta: 16711935,\n  maroon: 8388608,\n  mediumaquamarine: 6737322,\n  mediumblue: 205,\n  mediumorchid: 12211667,\n  mediumpurple: 9662683,\n  mediumseagreen: 3978097,\n  mediumslateblue: 8087790,\n  mediumspringgreen: 64154,\n  mediumturquoise: 4772300,\n  mediumvioletred: 13047173,\n  midnightblue: 1644912,\n  mintcream: 16121850,\n  mistyrose: 16770273,\n  moccasin: 16770229,\n  navajowhite: 16768685,\n  navy: 128,\n  oldlace: 16643558,\n  olive: 8421376,\n  olivedrab: 7048739,\n  orange: 16753920,\n  orangered: 16729344,\n  orchid: 14315734,\n  palegoldenrod: 15657130,\n  palegreen: 10025880,\n  paleturquoise: 11529966,\n  palevioletred: 14381203,\n  papayawhip: 16773077,\n  peachpuff: 16767673,\n  peru: 13468991,\n  pink: 16761035,\n  plum: 14524637,\n  powderblue: 11591910,\n  purple: 8388736,\n  rebeccapurple: 6697881,\n  red: 16711680,\n  // rgb(255,0,0)\n  rosybrown: 12357519,\n  royalblue: 4286945,\n  saddlebrown: 9127187,\n  salmon: 16416882,\n  sandybrown: 16032864,\n  seagreen: 3050327,\n  seashell: 16774638,\n  sienna: 10506797,\n  silver: 12632256,\n  skyblue: 8900331,\n  slateblue: 6970061,\n  slategray: 7372944,\n  slategrey: 7372944,\n  snow: 16775930,\n  springgreen: 65407,\n  steelblue: 4620980,\n  tan: 13808780,\n  teal: 32896,\n  thistle: 14204888,\n  tomato: 16737095,\n  turquoise: 4251856,\n  violet: 15631086,\n  wheat: 16113331,\n  white: 16777215,\n  // rgb(255,255,255)\n  whitesmoke: 16119285,\n  yellow: 16776960,\n  // rgb(255,255,0)\n  yellowgreen: 10145074\n  // rgb(154,205,50)\n};\nclass Ft {\n  _color = {\n    r: 0,\n    // 0 ~ 255\n    g: 0,\n    // 0 ~ 255\n    b: 0,\n    // 0 ~ 255\n    a: 1\n    // 0 ~ 1\n  };\n  constructor(t, e) {\n    t && this.setColor(t), this.setAlpha(e);\n  }\n  get color() {\n    return this._color;\n  }\n  set color(t) {\n    const e = `Color: Unknown color(${t}) type(${typeof t})`;\n    if (typeof t == \"number\")\n      this.setHEX(t);\n    else if (typeof t == \"string\") {\n      let s;\n      if (s = /^(\\w+)\\(([^)]*)\\)/.exec(t)) {\n        const i = s[2];\n        let r;\n        switch (s[1]) {\n          case \"rgb\":\n          case \"rgba\":\n            (r = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(\n              i\n            )) ? (this.r = parseInt(r[1], 10), this.g = parseInt(r[2], 10), this.b = parseInt(r[3], 10), this.a = r[4] ? parseFloat(r[4]) : 1) : (r = /^\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(\n              i\n            )) ? (this.r = N(parseFloat(r[1]), 0, 100) * 255 / 100, this.g = N(parseFloat(r[2]), 0, 100) * 255 / 100, this.b = N(parseFloat(r[3]), 0, 100) * 255 / 100, this.a = r[4] ? parseFloat(r[4]) : 1) : console.warn(e);\n            break;\n          case \"hsl\":\n          case \"hsla\":\n            (r = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)%\\s*,\\s*(\\d*\\.?\\d+)%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(\n              i\n            )) ? this.setHSL(\n              parseFloat(r[1]) / 360,\n              parseFloat(r[2]) / 100,\n              parseFloat(r[3]) / 100,\n              r[4] ? parseFloat(r[4]) : 1\n            ) : console.warn(e);\n            break;\n          case \"hsv\":\n          case \"hsva\":\n          case \"hsb\":\n          case \"hsba\":\n            (r = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)%\\s*,\\s*(\\d*\\.?\\d+)%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(\n              i\n            )) ? this.setHSV(\n              parseFloat(r[1]) / 360,\n              parseFloat(r[2]) / 100,\n              parseFloat(r[3]) / 100,\n              r[4] ? parseFloat(r[4]) : 1\n            ) : console.warn(e);\n            break;\n          default:\n            console.warn(e);\n        }\n      } else if (s = /#([A-Fa-f0-9]+)/.exec(t)) {\n        const i = s[1], r = i.length;\n        r === 3 ? this.setRGB(\n          parseInt(i.charAt(0), 16),\n          parseInt(i.charAt(1), 16),\n          parseInt(i.charAt(2), 16),\n          1\n        ) : r === 6 || r === 8 ? this.setHEX(parseInt(i, 16)) : console.warn(e);\n      } else if (t && t.length > 0)\n        try {\n          this.setColorName(t);\n        } catch {\n          console.warn(e);\n        }\n      else\n        console.warn(e);\n    } else\n      t instanceof Ft ? this.setRGB(t.r, t.g, t.b, t.a) : Object.prototype.hasOwnProperty.call(t, \"r\") && Object.prototype.hasOwnProperty.call(t, \"g\") && Object.prototype.hasOwnProperty.call(t, \"b\") ? this.setRGB(\n        t.r,\n        t.g,\n        t.b,\n        Object.prototype.hasOwnProperty.call(t, \"a\") ? t.a : 1\n      ) : Object.prototype.hasOwnProperty.call(t, \"h\") && Object.prototype.hasOwnProperty.call(t, \"s\") && Object.prototype.hasOwnProperty.call(t, \"l\") ? this.setHSL(\n        t.h,\n        t.s,\n        t.l,\n        Object.prototype.hasOwnProperty.call(t, \"a\") ? t.a : 1\n      ) : Object.prototype.hasOwnProperty.call(t, \"h\") && Object.prototype.hasOwnProperty.call(t, \"s\") && Object.prototype.hasOwnProperty.call(t, \"v\") ? this.setHSV(\n        t.h,\n        t.s,\n        t.v,\n        Object.prototype.hasOwnProperty.call(t, \"a\") ? t.a : 1\n      ) : Object.prototype.hasOwnProperty.call(t, \"h\") && Object.prototype.hasOwnProperty.call(t, \"s\") && Object.prototype.hasOwnProperty.call(t, \"b\") ? this.setHSV(\n        t.h,\n        t.s,\n        t.b,\n        Object.prototype.hasOwnProperty.call(t, \"a\") ? t.a : 1\n      ) : console.warn(e);\n  }\n  setColor(t) {\n    return this.color = t, this;\n  }\n  set(t) {\n    return this.setColor(t);\n  }\n  get r() {\n    return this._color.r;\n  }\n  set r(t) {\n    this._color.r = N(Math.round(Qt(t, this.r)), 0, 255);\n  }\n  get g() {\n    return this._color.g;\n  }\n  set g(t) {\n    this._color.g = N(Math.round(Qt(t, this.g)), 0, 255);\n  }\n  get b() {\n    return this._color.b;\n  }\n  set b(t) {\n    this._color.b = N(Math.round(Qt(t, this.b)), 0, 255);\n  }\n  get a() {\n    return this._color.a;\n  }\n  set a(t) {\n    this._color.a = N(Qt(t, this.a), 0, 1);\n  }\n  setAlpha(t) {\n    return this.a = t, this;\n  }\n  setFromVector3(t) {\n    return this.r = t.x, this.g = t.y, this.b = t.z, this;\n  }\n  applyMatrix3(t) {\n    const e = this.r, s = this.g, i = this.b, r = t.value;\n    return this.r = r[0] * e + r[3] * s + r[6] * i, this.g = r[1] * e + r[4] * s + r[7] * i, this.b = r[2] * e + r[5] * s + r[8] * i, this;\n  }\n  fromBufferAttribute(t, e) {\n    return this.r = t.getX(e), this.g = t.getY(e), this.b = t.getZ(e), this;\n  }\n  fromArray(t, e = 0) {\n    return this.r = t[e], this.g = t[e + 1], this.b = t[e + 2], this.a = t[e + 3], this;\n  }\n  toArray(t = [], e = 0) {\n    return t[e] = this.r, t[e + 1] = this.g, t[e + 2] = this.b, t[e + 3] = this.a, t;\n  }\n  toRGBString() {\n    return this.a === 1 ? `rgb(${this.r},${this.g},${this.b})` : `rgba(${this.r},${this.g},${this.b},${Y(this.a, 6)})`;\n  }\n  toHexString() {\n    return this.a === 1 ? (\"000000\" + this.hex.toString(16)).slice(-6) : (\"00000000\" + this.hex.toString(16)).slice(-8);\n  }\n  toString() {\n    return this.a === 1 ? \"#\" + this.toHexString() : this.toRGBString();\n  }\n  toColorSpaceString(t = os) {\n    ml.fromWorkingColorSpace(Pe.copy(this), t);\n    const e = Pe.r, s = Pe.g, i = Pe.b;\n    return t !== os ? `color(${t} ${e.toFixed(3)} ${s.toFixed(3)} ${i.toFixed(\n      3\n    )})` : this.toRGBString();\n  }\n  *[Symbol.iterator]() {\n    yield this.r, yield this.g, yield this.b, yield this.a;\n  }\n  clone() {\n    return new Ft(this.color);\n  }\n  copy(t) {\n    return this.setColor(t.color), this;\n  }\n  copySRGBToLinear(t) {\n    return this.r = hs(t.r), this.g = hs(t.g), this.b = hs(t.b), this;\n  }\n  copyLinearToSRGB(t) {\n    return this.r = cs(t.r), this.g = cs(t.g), this.b = cs(t.b), this;\n  }\n  convertSRGBToLinear() {\n    return this.copySRGBToLinear(this), this;\n  }\n  convertLinearToSRGB() {\n    return this.copyLinearToSRGB(this), this;\n  }\n  equals(t) {\n    return t.r === this.r && t.g === this.g && t.b === this.b && t.a === this.a;\n  }\n  add(t) {\n    return this.r = this.r + t.r, this.g = this.g + t.g, this.b = this.b + t.b, this;\n  }\n  addColors(t, e) {\n    return this.r = t.r + e.r, this.g = t.g + e.g, this.b = t.b + e.b, this;\n  }\n  addScalar(t) {\n    return this.r = this.r + t, this.g = this.g + t, this.b = this.b + t, this;\n  }\n  setScalar(t) {\n    return this.r = t, this.g = t, this.b = t, this;\n  }\n  sub(t) {\n    return this.r = this.r - t.r, this.g = this.g - t.g, this.b = this.b - t.b, this;\n  }\n  multiply(t) {\n    return this.r = this.r * t.r, this.g = this.g * t.g, this.b = this.b * t.b, this;\n  }\n  multiplyScalar(t) {\n    return this.r = this.r * t, this.g = this.g * t, this.b = this.b * t, this;\n  }\n  opposite(t = !0, e = \"#000000\", s = \"#ffffff\") {\n    if (t)\n      return this.setColor(\n        this.r * 0.299 + this.g * 0.587 + this.b * 0.114 > 186 ? e : s\n      );\n    {\n      const { r: i, g: r, b: o } = this.color;\n      return this.r = 255 - i, this.g = 255 - r, this.b = 255 - o, this;\n    }\n  }\n  closet(t = \"#000000\", e = \"#ffffff\") {\n    return this.opposite(!0, t, e).opposite(\n      !0,\n      t,\n      e\n    );\n  }\n  // t: 0 ~ 1\n  lighten(t) {\n    t = N(t, 0, 1);\n    const { r: e, g: s, b: i, a: r } = this.color;\n    return r == 0 ? this.a = t : (this.r = e + (255 - e) * t, this.g = s + (255 - s) * t, this.b = i + (255 - i) * t), this;\n  }\n  // t: 0 ~ 1\n  darken(t) {\n    t = N(t, 0, 1);\n    const { r: e, g: s, b: i, a: r } = this.color;\n    return r == 0 ? this.a = t : (this.r = e * (1 - t), this.g = s * (1 - t), this.b = i * (1 - t)), this;\n  }\n  // 渐变色\n  // t: 0 ~ 1\n  lerp(t, e) {\n    e = N(e, 0, 1);\n    const { r: s, g: i, b: r } = this.color;\n    return this.r = s + (t.r - s) * e, this.g = i + (t.g - i) * e, this.b = r + (t.b - r) * e, this;\n  }\n  // 渐变色\n  // t: 0 ~ 1\n  lerpColors(t, e, s) {\n    return s = N(s, 0, 1), this.r = t.r + (e.r - t.r) * s, this.g = t.g + (e.g - t.g) * s, this.b = t.b + (e.b - t.b) * s, this;\n  }\n  // 渐变色\n  // t: 0 ~ 1\n  static gradient(t, e, s) {\n    try {\n      return Pe.lerpColors(new Ft(t), new Ft(e), s).toString();\n    } catch {\n      return e;\n    }\n  }\n  static random() {\n    return Pe.setHEX(Math.random() * 16777215).toString();\n  }\n  static nextIndex = 0;\n  static next(t = Ft.nextIndex) {\n    Ft.nextIndex = t;\n    const e = Object.keys(Tn), s = e.length;\n    return Pe.setHEX(Tn[e[Ft.nextIndex++ % s]]).toString();\n  }\n  setColorName(t) {\n    const e = Tn[t.toLowerCase()];\n    return e !== void 0 ? this.setHEX(e) : t === \"none\" ? this.a = 0 : (this.a = 1, console.warn(\"Color.setColorName: Unknown color \" + t)), this;\n  }\n  static getColors() {\n    return Object.values(Tn).map((t) => Pe.setHEX(t).toString());\n  }\n  setRGB(t, e, s, i = 1) {\n    return this.r = t, this.g = e, this.b = s, this.a = i, this;\n  }\n  get rgb() {\n    return {\n      r: this.r,\n      g: this.g,\n      b: this.b,\n      a: this.a\n    };\n  }\n  // RRGGBB(AA)\n  setHEX(t) {\n    return t = Math.floor(t), t < 16777216 ? (this.r = t >> 16 & 255, this.g = t >> 8 & 255, this.b = t & 255, this.a = 1) : (this.r = t >> 24 & 255, this.g = t >> 16 & 255, this.b = t >> 8 & 255, this.a = (t & 255) / 255), this;\n  }\n  get hex() {\n    let t = (this.r << 16) + (this.g << 8) + this.b;\n    return this.a !== 1 && (t = t << 8, t += Math.round(this.a * 255)), t;\n  }\n  /// hsl(a) : hue 色相 + saturation 饱和度 + lightness luminosity 亮度\n  /// h,s,l ranges are in 0.0 ~ 1.0\n  setHSL(t, e, s, i = 1) {\n    const r = Yu(t, 1), o = N(e, 0, 1), a = N(s, 0, 1);\n    if (o === 0)\n      this.r = a * 255, this.g = a * 255, this.b = a * 255;\n    else {\n      const h = a <= 0.5 ? a * (1 + o) : a + o - a * o, c = 2 * a - h;\n      this.r = Fi(c, h, r + 1 / 3) * 255, this.g = Fi(c, h, r) * 255, this.b = Fi(c, h, r - 1 / 3) * 255;\n    }\n    return this.a = i, this;\n  }\n  getHSL(t) {\n    const e = this.r, s = this.g, i = this.b, r = Math.max(e, s, i) / 255, o = Math.min(e, s, i) / 255;\n    let a, h;\n    const c = (o + r) / 2;\n    if (o === r)\n      a = 0, h = 0;\n    else {\n      const l = r - o;\n      switch (h = c <= 0.5 ? l / (r + o) : l / (2 - r - o), r) {\n        case e:\n          a = (s - i) / l + (s < i ? 6 : 0);\n          break;\n        case s:\n          a = (i - e) / l + 2;\n          break;\n        case i:\n        default:\n          a = (e - s) / l + 4;\n          break;\n      }\n      a /= 6;\n    }\n    return t && t.setHSL(a, h, c, this.a), {\n      h: a,\n      s: h,\n      l: c,\n      a: this.a\n    };\n  }\n  offsetHSL(t, e, s) {\n    const i = this.getHSL();\n    return this.setHSL(i.h + t, i.s + e, i.l + s);\n  }\n  lerpHSL(t, e) {\n    const s = this.getHSL(), i = t.getHSL(), r = In(s.h, i.h, e), o = In(s.s, i.s, e), a = In(s.l, i.l, e);\n    return this.setHSL(r, o, a), this;\n  }\n  /// hsv(a) / hsb(a) : hue 色相 + saturation 饱和度 + value or brightness 明度\n  /// h,s,v ranges are in 0.0 ~ 1.0\n  setHSV(t, e, s, i = 1) {\n    const r = N(t, 0, 1) * 360, o = N(e, 0, 1), a = N(s, 0, 1), h = Math.floor(r / 60) % 6, c = r / 60 - Math.floor(r / 60), l = a * (1 - o), u = a * (1 - c * o), d = a * (1 - (1 - c) * o), f = [\n      [a, d, l],\n      [u, a, l],\n      [l, a, d],\n      [l, u, a],\n      [d, l, a],\n      [a, l, u]\n    ][h];\n    return this.r = f[0] * 255, this.g = f[1] * 255, this.b = f[2] * 255, this.a = i, this;\n  }\n  setHSB(t, e, s, i = 1) {\n    this.setHSV(t, e, s, i);\n  }\n  getHSV(t) {\n    const { r: e, g: s, b: i, a: r } = this.color, o = Math.max(e, s, i), a = Math.min(e, s, i), h = o - a;\n    let c;\n    e === o ? c = (s - i) / h : s === o ? c = 2 + (i - e) / h : c = 4 + (e - s) / h, c /= 6, c < 0 && (c += 1);\n    const l = h == 0 ? 0 : c, u = o === 0 ? 0 : h / o, d = o / 255;\n    return t && t.setHSV(l, u, d, r), {\n      h: l,\n      s: u,\n      v: d,\n      a: r\n    };\n  }\n  getHSB(t) {\n    const { h: e, s, v: i, a: r } = this.getHSV(t);\n    return {\n      h: e,\n      s,\n      b: i,\n      a: r\n    };\n  }\n}\nconst Pe = new Ft(), Pg = \"\", os = \"srgb\", fl = \"srgb-linear\", dl = \"linear\", _r = \"srgb\";\nfunction hs(n) {\n  return n < 0.04045 ? n * 0.0773993808 : Math.pow(n * 0.9478672986 + 0.0521327014, 2.4);\n}\nfunction cs(n) {\n  return n < 31308e-7 ? n * 12.92 : 1.055 * Math.pow(n, 0.41666) - 0.055;\n}\nconst Fa = new en().set(\n  0.4123908,\n  0.3575843,\n  0.1804808,\n  0.212639,\n  0.7151687,\n  0.0721923,\n  0.0193308,\n  0.1191948,\n  0.9505322\n), Ua = new en().set(\n  3.2409699,\n  -1.5373832,\n  -0.4986108,\n  -0.9692436,\n  1.8759675,\n  0.0415551,\n  0.0556301,\n  -0.203977,\n  1.0569715\n), Ga = [0.64, 0.33, 0.3, 0.6, 0.15, 0.06], Va = [0.2126, 0.7152, 0.0722], $a = [0.3127, 0.329], ml = {\n  enabled: !0,\n  workingColorSpace: fl,\n  /**\n   * Implementations of supported color spaces.\n   *\n   * Required:\n   *\t- primaries: chromaticity coordinates [ rx ry gx gy bx by ]\n   *\t- whitePoint: reference white [ x y ]\n   *\t- transfer: transfer function (pre-defined)\n   *\t- toXYZ: Matrix3 RGB to XYZ transform\n   *\t- fromXYZ: Matrix3 XYZ to RGB transform\n   *\t- luminanceCoefficients: RGB luminance coefficients\n   *\n   * Optional:\n   *  - outputColorSpaceConfig: { drawingBufferColorSpace: ColorSpace }\n   *  - workingColorSpaceConfig: { unpackColorSpace: ColorSpace }\n   *\n   * Reference:\n   * - https://www.russellcottrell.com/photo/matrixCalculator.htm\n   */\n  spaces: {},\n  convert: function(n, t, e) {\n    return this.enabled === !1 || t === e || !t || !e || (this.spaces[t].transfer === _r && (n.r = hs(n.r), n.g = hs(n.g), n.b = hs(n.b)), this.spaces[t].primaries !== this.spaces[e].primaries && (n.applyMatrix3(this.spaces[t].toXYZ), n.applyMatrix3(this.spaces[e].fromXYZ)), this.spaces[e].transfer === _r && (n.r = cs(n.r), n.g = cs(n.g), n.b = cs(n.b))), n;\n  },\n  fromWorkingColorSpace: function(n, t) {\n    return this.convert(n, this.workingColorSpace, t);\n  },\n  toWorkingColorSpace: function(n, t) {\n    return this.convert(n, t, this.workingColorSpace);\n  },\n  getPrimaries: function(n) {\n    return this.spaces[n].primaries;\n  },\n  getTransfer: function(n) {\n    return n === Pg ? dl : this.spaces[n].transfer;\n  },\n  getLuminanceCoefficients: function(n, t = this.workingColorSpace) {\n    return n.fromArray(this.spaces[t].luminanceCoefficients);\n  },\n  define: function(n) {\n    Object.assign(this.spaces, n);\n  },\n  // Internal APIs\n  _getMatrix: function(n, t, e) {\n    return n.copy(this.spaces[t].toXYZ).multiply(this.spaces[e].fromXYZ);\n  },\n  _getDrawingBufferColorSpace: function(n) {\n    return this.spaces[n].outputColorSpaceConfig.drawingBufferColorSpace;\n  },\n  _getUnpackColorSpace: function(n = this.workingColorSpace) {\n    return this.spaces[n].workingColorSpaceConfig.unpackColorSpace;\n  }\n};\nml.define({\n  [fl]: {\n    primaries: Ga,\n    whitePoint: $a,\n    transfer: dl,\n    toXYZ: Fa,\n    fromXYZ: Ua,\n    luminanceCoefficients: Va,\n    workingColorSpaceConfig: { unpackColorSpace: os },\n    outputColorSpaceConfig: { drawingBufferColorSpace: os }\n  },\n  [os]: {\n    primaries: Ga,\n    whitePoint: $a,\n    transfer: _r,\n    toXYZ: Fa,\n    fromXYZ: Ua,\n    luminanceCoefficients: Va,\n    outputColorSpaceConfig: { drawingBufferColorSpace: os }\n  }\n});\nfunction Fi(n, t, e) {\n  return e < 0 && (e += 1), e > 1 && (e -= 1), e < 1 / 6 ? n + (t - n) * 6 * e : e < 1 / 2 ? t : e < 2 / 3 ? n + (t - n) * 6 * (2 / 3 - e) : n;\n}\nclass Tw {\n  PARENT_EL;\n  SVG_EL = null;\n  CANVAS_EL = null;\n  ctx = null;\n  rect = {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  };\n  size$ = new aa(null);\n  resizeSubscription;\n  mpg = ys();\n  mouseSubscription;\n  shapes = [];\n  shapeTap$ = new aa(null);\n  tapSubscription;\n  lastMouseInShapeId = \"\";\n  // 一旦拖拽开始，不释放时，可以一直触发\n  draggingShapeId = \"\";\n  prevCursor = \"default\";\n  constructor(t = document.documentElement, e = \"canvas\", s = !1) {\n    this.PARENT_EL = t, (e == \"svg\" || e == \"canvas\") && M0(this.PARENT_EL), e == \"svg\" && (this.SVG_EL = We(\"svg\"), Ds(this.PARENT_EL, this.SVG_EL)), e == \"canvas\" && (this.CANVAS_EL = D0(\"canvas\"), Ds(this.PARENT_EL, this.CANVAS_EL)), this.resizeSubscription = nl(this.PARENT_EL).subscribe(\n      (i) => {\n        this.rect.x = i.x, this.rect.y = i.y, this.rect.width = i.width, this.rect.height = i.height, this.SVG_EL && Me(this.SVG_EL, {\n          viewBox: `0 0 ${this.rect.width} ${this.rect.height}`,\n          width: `${this.rect.width}`,\n          height: `${this.rect.height}`\n        }), this.CANVAS_EL && (Me(this.CANVAS_EL, {\n          width: `${this.rect.width}`,\n          height: `${this.rect.height}`\n        }), this.ctx = new vr(\n          this.CANVAS_EL,\n          this.rect.width,\n          this.rect.height,\n          s\n        )), this.size$.next(i);\n      }\n    ), this.mouseSubscription = rg(\n      this.SVG_EL || this.CANVAS_EL || this.PARENT_EL,\n      {\n        useMousePoint: this.mpg\n      }\n    ).subscribe(() => {\n    }), this.tapSubscription = j0(this.PARENT_EL).subscribe((i) => {\n      for (const r of this.shapes)\n        if (r.isMouseIn) {\n          this.shapeTap$.next(r);\n          break;\n        }\n    });\n  }\n  destroy() {\n    this.resizeSubscription.unsubscribe(), this.mouseSubscription.unsubscribe(), this.tapSubscription.unsubscribe();\n  }\n  setCursor(t = \"default\") {\n    t != this.prevCursor && (this.PARENT_EL.style.cursor = t, this.prevCursor = t);\n  }\n  // requestAnimationFrameCycle()\n  draw(...t) {\n    if (t.length) {\n      const e = [];\n      t.forEach((s) => {\n        s instanceof Nt ? e.push(...s.shapes) : e.push(s);\n      }), this.SVG_EL && this.shapes.filter(\n        (s) => e.findIndex((i) => i.id == s.id) == -1\n      ).forEach((s) => {\n        s.el && (s.el.remove(), delete s.el);\n      }), Uu(this.shapes, e);\n    }\n    this.ctx && this.ctx.clearRect(), this.lastMouseInShapeId = \"\", this.mpg.current.isDown || (this.draggingShapeId = \"\");\n    for (const e of this.shapes) {\n      const { x: s, y: i } = e.transformOrigin();\n      let r = 0, o = 0;\n      if (e.parent?.dDegree || e.parent?.dScaleX !== 1 || e.parent?.dScaleY !== 1) {\n        const a = e.transformOrigin(!0);\n        r = a.x, o = a.y;\n      }\n      if (e.shouldUpdatePathD && e.pathD(), this.SVG_EL) {\n        if (!e.el || e.shouldUpdateSVGElInDraw) {\n          const a = e.toSVGEl();\n          e.el ? a && (e.el.remove(), e.el = a, Ds(this.SVG_EL, e.el), Me(e.el, { id: e.id })) : (e.el = a || rl(), Ds(this.SVG_EL, e.el), Me(e.el, { id: e.id })), yg(e.el) && Me(e.el, { d: e.toSVGPathD() }), e.shouldUpdateSVGElInDraw = !1, e.shouldUpdateAttrsInDraw = !0, e.shouldUpdateStyleInDraw = !0, e.shouldUpdateMInDraw = !0;\n        }\n        if (e.shouldUpdateAttrsInDraw && (Ro(e.attrs) || Me(e.el, e.attrs), e.shouldUpdateAttrsInDraw = !1), e.shouldUpdateStyleInDraw && (Ro(e.style) || qs(e.el, e.style), e.shouldUpdateStyleInDraw = !1), e.shouldUpdateMInDraw || !e.m) {\n          const a = new _t();\n          a.translate(\n            e.x + (e.parent?.dX || 0),\n            e.y + (e.parent?.dY || 0)\n          ), a.rotate(e.degree, s, i), a.scale(e.scaleX, e.scaleY, s, i), e.parent?.dDegree && a.rotate(e.parent.dDegree, r, o), (e.parent?.dScaleX !== 1 || e.parent?.dScaleY !== 1) && a.scale(\n            e.parent?.dScaleX || 1,\n            e.parent?.dScaleY || 1,\n            r,\n            o\n          ), Me(e.el, { transform: a.toString() }), e.m = a, e.shouldUpdateMInDraw = !1;\n        }\n      }\n      if (this.ctx && (this.ctx.save(), this.ctx.translate(\n        e.x + (e.parent?.dX || 0),\n        e.y + (e.parent?.dY || 0)\n      ), this.ctx.rotate(q(e.degree), s, i), this.ctx.scale(e.scaleX, e.scaleY, s, i), e.parent?.dDegree && this.ctx.rotate(\n        q(e.parent.dDegree),\n        r,\n        o\n      ), (e.parent?.dScaleX !== 1 || e.parent?.dScaleY !== 1) && this.ctx.scale(\n        e.parent?.dScaleX || 1,\n        e.parent?.dScaleY || 1,\n        r,\n        o\n      ), e.m = this.ctx.currentMatrix, X0(this.ctx, e.attrs), e.toCanvasContext(this.ctx), this.ctx.hasSetCustomStrokeStyle && this.ctx.stroke(), this.ctx.hasSetCustomFillStyle && this.ctx.fill()), e.interactive ? this.SVG_EL ? e.isMouseIn = e.isPointInPath(\n        this.SVG_EL,\n        this.mpg.current.x,\n        this.mpg.current.y\n      ) || e.isPointInStroke(\n        this.SVG_EL,\n        this.mpg.current.x,\n        this.mpg.current.y\n      ) : this.ctx ? e.isMouseIn = e.isPointInPath(\n        this.ctx,\n        this.mpg.current.x,\n        this.mpg.current.y\n      ) || e.isPointInStroke(\n        this.ctx,\n        this.mpg.current.x,\n        this.mpg.current.y\n      ) : e.isMouseIn = !1 : e.isMouseIn = !1, e.isMouseIn && (this.setCursor(\"pointer\"), this.lastMouseInShapeId = e.id), e.isDragging = e.id == this.draggingShapeId, this.mpg.current.isDown && (e.isDragging || !this.draggingShapeId && e.isMouseIn && e.drag && e.drag.enable)) {\n        this.setCursor(\"grabbing\"), e.isDragging = !0, this.draggingShapeId = e.id;\n        let a = this.mpg.current.x - this.mpg.start.x, h = this.mpg.current.y - this.mpg.start.y;\n        if (a || h) {\n          if (e.drag && e.drag.enable && e.drag.alongPath) {\n            const c = e.drag.alongPath.transform({ m: e.m }).closestPoint(this.mpg.current.x, this.mpg.current.y);\n            a = c.point.x - e.x, h = c.point.y - e.y;\n          }\n          (a || h) && (e.move(a, h), e.parent?.combo.shapes.forEach((c) => {\n            c.drag?.followSibling && c !== e && c.move(a, h);\n          }));\n        }\n        this.mpg.setStart(this.mpg.current);\n      } else\n        e.isMouseIn && e.drag && e.drag.enable && this.setCursor(\"grab\");\n      this.ctx && this.ctx.restore();\n    }\n    !this.lastMouseInShapeId && !this.draggingShapeId && this.setCursor(\"default\");\n  }\n  clear() {\n    this.shapes.forEach((t) => {\n      t.el && (t.el.remove(), delete t.el);\n    }), this.ctx && this.ctx.clearRect(), this.shapes = [];\n  }\n  drawMouseMoveLine(t) {\n    const e = t?.brushSize || 4, s = t?.brushColor || \"#000000\";\n    let i = !1;\n    const r = gr(\n      this.SVG_EL || this.CANVAS_EL || this.PARENT_EL,\n      {\n        start: () => {\n          i = !1, this.ctx && (this.ctx.save(), this.ctx.lineWidth = e, this.ctx.strokeStyle = s, this.ctx.beginPath());\n        },\n        end: () => {\n          this.ctx && this.ctx.restore();\n        }\n      }\n    ).subscribe((o) => {\n      this.ctx && (i ? this.ctx.lineTo(o.current.x, o.current.y) : (i = !0, this.ctx.moveTo(o.current.x, o.current.y)), this.ctx.stroke());\n    });\n    return () => {\n      r.unsubscribe();\n    };\n  }\n  drawMouseMoveBrush(t) {\n    const e = t?.brushSize || 10, s = t?.brushDensity || 50, i = t?.brushColor || \"#000000\", r = new Ft(i), o = r.r, a = r.g, h = r.b, c = gr(\n      this.SVG_EL || this.CANVAS_EL || this.PARENT_EL\n    ).subscribe((l) => {\n      if (this.ctx) {\n        const u = this.ctx.getImageData(\n          0,\n          0,\n          this.ctx.canvas.width,\n          this.ctx.canvas.height\n        ), d = u.data;\n        for (let f = 0; f < s; f++) {\n          const m = Math.random() * Math.PI * 2, p = Math.random() * e, S = l.current.x + Math.cos(m) * p | 0, g = l.current.y + Math.sin(m) * p | 0, b = (S + g * u.width) * 4;\n          d[b] = o, d[b + 1] = a, d[b + 2] = h, d[b + 3] = 255;\n        }\n        this.ctx.putImageData(u);\n      }\n    });\n    return () => {\n      c.unsubscribe();\n    };\n  }\n  downloadSVG = () => {\n    this.SVG_EL && xg(this.SVG_EL);\n  };\n}\nclass ls extends Q {\n  lineLength;\n  startColor;\n  endColor;\n  constructor(t) {\n    super({ ...t, centerX: 0, centerY: 0 }), this.lineLength = t?.lineLength || 0, this.startColor = t?.startColor, this.endColor = t?.endColor, this.setAttr({\n      strokeWidth: this.getAttr(\"strokeWidth\") || \"1\",\n      stroke: this.startColor || this.getAttr(\"stroke\") || \"#000000\"\n    });\n  }\n  cloneShape() {\n    return new ls({\n      ...super.getBaseOptions(),\n      lineLength: this.lineLength,\n      startColor: this.startColor,\n      endColor: this.endColor\n    });\n  }\n  // 供外部变更\n  lineToAbsolutePoint(t) {\n    const e = wt(qt(this.x, this.y, t.x, t.y)), s = Ge(this.x, this.y, t.x, t.y);\n    (e != this.degree || s != this.lineLength) && (e != this.degree && this.rotateTo(e), s != this.lineLength && (this.lineLength = s), this.shouldUpdatePathD = !0);\n  }\n  enableGradient(t, e) {\n    this.startColor = t, this.endColor = e, this.setAttr({\n      stroke: this.startColor\n    });\n  }\n  disableGradient(t) {\n    this.startColor = t, this.endColor = void 0, this.setAttr({\n      stroke: this.startColor\n    });\n  }\n  getBoundingClientRect() {\n    return {\n      x: 0,\n      y: 0,\n      width: this.lineLength,\n      height: parseFloat(this.getAttr(\"strokeWidth\"))\n    };\n  }\n  toSVGPathData() {\n    return [\n      [\"m\", 0, 0],\n      [\"l\", this.lineLength, 0]\n    ];\n  }\n  toCanvasContext(t) {\n    this.startColor && this.endColor && this.setAttr({\n      stroke: t.createLinearGradient(0, 0, this.lineLength, 0, {\n        0: this.startColor,\n        1: this.endColor\n      })\n    }), t.beginPath(), t.moveTo(0, 0), t.lineTo(this.lineLength, 0);\n  }\n  // 绝对值 - 考虑 transform : translate rotate scale\n  intersection(t) {\n    const e = this.transformPathD().normalizedLines[0], s = t.transformPathD().normalizedLines[0];\n    return e.intersection(s);\n  }\n}\nclass pl extends Q {\n  cx;\n  cy;\n  toX;\n  toY;\n  isLineThrough;\n  constructor(t) {\n    super(t), this.cx = t?.cx || 0, this.cy = t?.cy || 0, this.toX = t?.toX || 0, this.toY = t?.toY || 0, this.isLineThrough = typeof t?.isLineThrough == \"boolean\" ? t.isLineThrough : !1, this.setAttr({\n      strokeWidth: this.getAttr(\"strokeWidth\") || \"1\",\n      stroke: this.getAttr(\"stroke\") || \"#000000\"\n    });\n  }\n  cloneShape() {\n    return new pl({\n      ...super.getBaseOptions(),\n      cx: this.cx,\n      cy: this.cy,\n      toX: this.toX,\n      toY: this.toY,\n      isLineThrough: this.isLineThrough\n    });\n  }\n  // 供外部变更\n  update(t) {\n    typeof t.cx == \"number\" && (this.cx = t.cx, this.shouldUpdatePathD = !0), typeof t.cy == \"number\" && (this.cy = t.cy, this.shouldUpdatePathD = !0), typeof t.toX == \"number\" && (this.toX = t.toX, this.shouldUpdatePathD = !0), typeof t.toY == \"number\" && (this.toY = t.toY, this.shouldUpdatePathD = !0), typeof t.isLineThrough == \"boolean\" && (this.isLineThrough = t.isLineThrough, this.shouldUpdatePathD = !0);\n  }\n  toSVGPathData() {\n    if (this.isLineThrough) {\n      const t = this.cx * 2 - (0 + this.toX) / 2, e = this.cy * 2 - (0 + this.toY) / 2;\n      return [\n        [\"m\", 0, 0],\n        [\"q\", t, e, this.toX, this.toY]\n      ];\n    } else\n      return [\n        [\"m\", 0, 0],\n        [\"q\", this.cx, this.cy, this.toX, this.toY]\n      ];\n  }\n  toCanvasContext(t) {\n    if (t.beginPath(), t.moveTo(0, 0), this.isLineThrough) {\n      const e = this.cx * 2 - (0 + this.toX) / 2, s = this.cy * 2 - (0 + this.toY) / 2;\n      t.quadraticCurveTo(e, s, this.toX, this.toY);\n    } else\n      t.quadraticCurveTo(this.cx, this.cy, this.toX, this.toY);\n  }\n}\nclass Sr extends Q {\n  points;\n  isStraight;\n  constructor(t) {\n    super(t), this.points = t?.points || [], this.isStraight = typeof t?.isStraight == \"boolean\" ? t.isStraight : !0, this.setAttr({\n      strokeWidth: this.getAttr(\"strokeWidth\") || \"1\",\n      stroke: this.getAttr(\"stroke\") || \"#000000\"\n    });\n  }\n  cloneShape() {\n    return new Sr({\n      ...super.getBaseOptions(),\n      points: [...this.points],\n      isStraight: this.isStraight\n    });\n  }\n  // 供外部变更\n  update(t) {\n    \"points\" in t && (this.points = [...t.points || this.points], this.shouldUpdatePathD = !0), typeof t.isStraight == \"boolean\" && (this.isStraight = t.isStraight, this.shouldUpdatePathD = !0);\n  }\n  toSVGPathData() {\n    const t = [];\n    if (this.points.length < 3)\n      return t;\n    const e = this.points.length;\n    if (this.isStraight) {\n      t.push([\"m\", this.points[0].x, this.points[0].y]);\n      for (let s = 1; s <= e - 1; s++)\n        t.push([\n          \"l\",\n          this.points[s].x - this.points[s - 1].x,\n          this.points[s].y - this.points[s - 1].y\n        ]);\n      t.push([\"z\"]);\n    } else {\n      const s = (this.points[0].x + this.points[e - 1].x) / 2, i = (this.points[0].y + this.points[e - 1].y) / 2;\n      let r = s, o = i;\n      t.push([\"m\", r, o]);\n      for (let a = 0; a < e - 1; a++) {\n        const h = (this.points[a].x + this.points[a + 1].x) / 2, c = (this.points[a].y + this.points[a + 1].y) / 2;\n        t.push([\n          \"q\",\n          this.points[a].x - r,\n          this.points[a].y - o,\n          h - r,\n          c - o\n        ]), r = h, o = c;\n      }\n      t.push([\n        \"q\",\n        this.points[e - 1].x - r,\n        this.points[e - 1].y - o,\n        s - r,\n        i - o\n      ]);\n    }\n    return t;\n  }\n  toCanvasContext(t) {\n    if (this.points.length < 3)\n      return;\n    t.beginPath();\n    const e = this.points.length;\n    if (this.isStraight) {\n      t.moveTo(this.points[0].x, this.points[0].y);\n      for (let s = 1; s <= e - 1; s++)\n        t.lineTo(this.points[s].x, this.points[s].y);\n      t.closePath();\n    } else {\n      const s = (this.points[0].x + this.points[e - 1].x) / 2, i = (this.points[0].y + this.points[e - 1].y) / 2;\n      t.moveTo(s, i);\n      for (let r = 0; r < e - 1; r++) {\n        const o = (this.points[r].x + this.points[r + 1].x) / 2, a = (this.points[r].y + this.points[r + 1].y) / 2;\n        t.quadraticCurveTo(\n          this.points[r].x,\n          this.points[r].y,\n          o,\n          a\n        );\n      }\n      t.quadraticCurveTo(\n        this.points[e - 1].x,\n        this.points[e - 1].y,\n        s,\n        i\n      );\n    }\n  }\n  isPointInShape(t) {\n    const e = this.points.length;\n    let s = !1;\n    const i = 2e-10;\n    for (let r = 0, o = e - 1; r < e; o = r, r++) {\n      const a = this.points[r].x, h = this.points[r].y, c = this.points[o].x, l = this.points[o].y;\n      if (a === t.x && h === t.y || c === t.x && l === t.y || t.y === h && t.y === l)\n        return !0;\n      if (t.y >= h && t.y < l || t.y < h && t.y >= l) {\n        const u = (c - a) / (l - h), d = a + u * (t.y - h);\n        if (d === t.x || Math.abs(d - t.x) < i)\n          return !0;\n        d > t.x && (s = !s);\n      }\n    }\n    return s;\n  }\n  [Symbol.iterator]() {\n    let t = -1;\n    return {\n      next: () => ({\n        value: t <= this.points.length - 1 ? this.points[++t] : void 0,\n        done: t >= this.points.length\n      })\n    };\n  }\n  static generate(t, e, s, i) {\n    const r = [];\n    for (let o = 0; o < i; o++) {\n      const a = o / i * 2 * Math.PI, { dx: h, dy: c } = He(a, s);\n      r.push({ x: t + h, y: e + c });\n    }\n    return new Sr({ points: r });\n  }\n}\nclass gl extends Nt {\n  length = 100;\n  constructor(t) {\n    super(t);\n    const e = new ls({\n      drag: {\n        followSibling: !0\n      },\n      lineLength: this.length\n    });\n    this.addShape(e);\n    const s = new ls({\n      drag: {\n        followSibling: !0\n      },\n      lineLength: 20 + Math.random() * 20\n    });\n    this.addShape(s, {\n      dX: 90 - Math.random() * 40,\n      dDegree: Math.random() * 70\n    });\n    const i = new ls({\n      drag: {\n        followSibling: !0\n      },\n      lineLength: 20 + Math.random() * 20\n    });\n    this.addShape(i, {\n      dX: 90 - Math.random() * 40,\n      dDegree: -Math.random() * 70\n    }), this.comboRotate(-90, !0);\n  }\n  cloneShapeCombo() {\n    return new gl(super.getBaseOptions());\n  }\n}\nclass js extends Q {\n  ballRadius;\n  constructor(t) {\n    super(t), this.ballRadius = t?.ballRadius || 0;\n  }\n  cloneShape() {\n    return new js({\n      ...super.getBaseOptions(),\n      ballRadius: this.ballRadius\n    });\n  }\n  // 供外部使用：基本属性变更\n  update(t) {\n    typeof t.ballRadius == \"number\" && (this.ballRadius = t.ballRadius, this.shouldUpdatePathD = !0);\n  }\n  getBoundingClientRect() {\n    return {\n      x: -this.ballRadius,\n      y: -this.ballRadius,\n      width: this.ballRadius * 2,\n      height: this.ballRadius * 2\n    };\n  }\n  toSVGEl() {\n    const t = We(\"circle\");\n    return this.setAttr({\n      cx: \"0\",\n      cy: \"0\",\n      r: String(this.ballRadius)\n    }), t;\n  }\n  toSVGPathData() {\n    return this.ballRadius ? [\n      [\"m\", 0, -this.ballRadius],\n      [\n        \"a\",\n        this.ballRadius,\n        this.ballRadius,\n        0,\n        1,\n        1,\n        0,\n        2 * this.ballRadius\n      ],\n      [\n        \"a\",\n        this.ballRadius,\n        this.ballRadius,\n        0,\n        1,\n        1,\n        0,\n        -2 * this.ballRadius\n      ],\n      [\"z\"]\n    ] : [[\"m\", 0, 0]];\n  }\n  toCanvasContext(t) {\n    t.beginPath(), t.arc(0, 0, this.ballRadius, 0, Math.PI * 2, !0), t.closePath();\n  }\n  eq(t) {\n    return this.x === t.x && this.y === t.y && this.ballRadius === t.ballRadius && this.mass === t.mass;\n  }\n  midPointBtw(t) {\n    return {\n      x: this.x + (t.x - this.x) / 2,\n      y: this.y + (t.y - this.y) / 2\n    };\n  }\n  length() {\n    return $s(this.x, this.y);\n  }\n  scalar(t) {\n    return this.moveTo(this.x * t, this.y * t), this;\n  }\n  normalize(t = 1) {\n    const e = this.length();\n    if (e) {\n      const s = t / e;\n      this.scalar(s);\n    }\n    return this;\n  }\n  clamp(t) {\n    const e = this.length();\n    return e && e > t && this.scalar(t / e), this;\n  }\n  cross(t) {\n    const e = this.x, s = this.y;\n    return {\n      x: s * t.x - e * t.y,\n      y: e * t.y - s * t.x\n    };\n  }\n  multiply(t) {\n    return {\n      x: this.x * t.x,\n      y: this.y * t.y\n    };\n  }\n  div(t) {\n    return {\n      x: this.x / t.x,\n      y: this.y / t.y\n    };\n  }\n  add(t) {\n    return {\n      x: this.x + t.x,\n      y: this.y + t.y\n    };\n  }\n  sub(t) {\n    return {\n      x: this.x - t.x,\n      y: this.y - t.y\n    };\n  }\n  dot(t) {\n    return this.x * t.x + this.y * t.y;\n  }\n  reflect(t) {\n    const e = this.dot(t);\n    return {\n      x: this.x - 2 * e * t.x,\n      y: this.y - 2 * e * t.y\n    };\n  }\n}\nclass yl extends Q {\n  constructor(t) {\n    super(t);\n  }\n  cloneShape() {\n    return new yl({\n      ...super.getBaseOptions()\n    });\n  }\n  toSVGPathData() {\n    return [\n      [\"m\", -50, -25],\n      [\"l\", 50, 0],\n      [\"l\", 0, -25],\n      [\"l\", 50, 50],\n      [\"l\", -50, 50],\n      [\"l\", 0, -25],\n      [\"l\", -50, 0],\n      [\"l\", 0, -50],\n      [\"z\"]\n    ];\n  }\n  toCanvasContext(t) {\n    t.beginPath(), t.moveTo(-50, -25), t.lineTo(0, -25), t.lineTo(0, -50), t.lineTo(50, 0), t.lineTo(0, 50), t.lineTo(0, 25), t.lineTo(-50, 25), t.lineTo(-50, -25), t.closePath();\n  }\n}\nclass Ze extends Q {\n  rectWidth;\n  rectHeight;\n  rectBorderRadius;\n  constructor(t) {\n    super(t), this.rectWidth = t.rectWidth || 0, this.rectHeight = t.rectHeight || 0, this.rectBorderRadius = t.rectBorderRadius || 0;\n  }\n  cloneShape() {\n    return new Ze({\n      ...super.getBaseOptions(),\n      rectWidth: this.rectWidth,\n      rectHeight: this.rectHeight,\n      rectBorderRadius: this.rectBorderRadius\n    });\n  }\n  // 供外部使用：基本属性变更\n  update(t) {\n    typeof t.rectWidth == \"number\" && (this.rectWidth = t.rectWidth, this.shouldUpdatePathD = !0), typeof t.rectHeight == \"number\" && (this.rectHeight = t.rectHeight, this.shouldUpdatePathD = !0), typeof t.rectBorderRadius == \"number\" && (this.rectBorderRadius = t.rectBorderRadius, this.shouldUpdatePathD = !0);\n  }\n  getBoundingClientRect() {\n    return {\n      x: 0,\n      y: 0,\n      width: this.rectWidth,\n      height: this.rectHeight\n    };\n  }\n  toSVGEl() {\n    const t = We(\"rect\");\n    return this.setAttr({\n      x: \"0\",\n      y: \"0\",\n      width: String(this.rectWidth),\n      height: String(this.rectHeight),\n      rx: String(this.rectBorderRadius),\n      ry: String(this.rectBorderRadius)\n    }), t;\n  }\n  toSVGPathData() {\n    return this.rectBorderRadius ? [\n      [\"m\", this.rectBorderRadius, 0],\n      [\"l\", this.rectWidth - this.rectBorderRadius * 2, 0],\n      [\n        \"a\",\n        this.rectBorderRadius,\n        this.rectBorderRadius,\n        0,\n        0,\n        1,\n        this.rectBorderRadius,\n        this.rectBorderRadius\n      ],\n      [\"l\", 0, this.rectHeight - this.rectBorderRadius * 2],\n      [\n        \"a\",\n        this.rectBorderRadius,\n        this.rectBorderRadius,\n        0,\n        0,\n        1,\n        -this.rectBorderRadius,\n        this.rectBorderRadius\n      ],\n      [\"l\", this.rectBorderRadius * 2 - this.rectWidth, 0],\n      [\n        \"a\",\n        this.rectBorderRadius,\n        this.rectBorderRadius,\n        0,\n        0,\n        1,\n        -this.rectBorderRadius,\n        -this.rectBorderRadius\n      ],\n      [\"l\", 0, this.rectBorderRadius * 2 - this.rectHeight],\n      [\n        \"a\",\n        this.rectBorderRadius,\n        this.rectBorderRadius,\n        0,\n        0,\n        1,\n        this.rectBorderRadius,\n        -this.rectBorderRadius\n      ],\n      [\"z\"]\n    ] : [\n      [\"m\", 0, 0],\n      [\"l\", this.rectWidth, 0],\n      [\"l\", 0, this.rectHeight],\n      [\"l\", -this.rectWidth, 0],\n      [\"z\"]\n    ];\n  }\n  toCanvasContext(t) {\n    t.beginPath(), this.rectBorderRadius <= 0 ? t.rect(0, 0, this.rectWidth, this.rectHeight) : (t.moveTo(0, this.rectBorderRadius), t.lineTo(0, this.rectHeight - this.rectBorderRadius), t.quadraticCurveTo(\n      0,\n      this.rectHeight,\n      this.rectBorderRadius,\n      this.rectHeight\n    ), t.lineTo(this.rectWidth - this.rectBorderRadius, this.rectHeight), t.quadraticCurveTo(\n      this.rectWidth,\n      this.rectHeight,\n      this.rectWidth,\n      this.rectHeight - this.rectBorderRadius\n    ), t.lineTo(this.rectWidth, this.rectBorderRadius), t.quadraticCurveTo(\n      this.rectWidth,\n      0,\n      this.rectWidth - this.rectBorderRadius,\n      0\n    ), t.lineTo(this.rectBorderRadius, 0), t.quadraticCurveTo(0, 0, 0, this.rectBorderRadius)), t.closePath();\n  }\n  static fromCubicBezier(t, e, s, i, r, o, a, h) {\n    const l = new xt({\n      x: t,\n      y: e,\n      c1x: s,\n      c1y: i,\n      c2x: r,\n      c2y: o,\n      toX: a,\n      toY: h\n    }).getBoundingClientRect();\n    return new Ze({\n      x: l.x,\n      y: l.y,\n      rectWidth: l.width,\n      rectHeight: l.height\n    });\n  }\n  eq(t) {\n    return this.x === t.x && this.y === t.y && this.rectWidth === t.rectWidth && this.rectHeight === t.rectHeight && this.rectBorderRadius === t.rectBorderRadius;\n  }\n  intersection(t) {\n    return !(this.x + this.rectWidth < t.x || t.x + t.rectWidth < this.x || this.y + this.rectHeight < t.y || t.y + t.rectHeight < this.y);\n  }\n  isPointInShape(t) {\n    return t.x >= this.x && t.x <= this.x + this.rectWidth && t.y >= this.y && t.y <= this.y + this.rectHeight;\n  }\n}\nclass xl extends Q {\n  rx;\n  ry;\n  constructor(t) {\n    super(t), this.rx = t?.heartRx || 10, this.ry = t?.heartRy || 10;\n  }\n  cloneShape() {\n    return new xl({\n      ...super.getBaseOptions(),\n      heartRx: this.rx,\n      heartRy: this.ry\n    });\n  }\n  toSVGPathData() {\n    return [\n      [\"m\", 0, 0],\n      // bottom right curve\n      [\"l\", this.rx * 2.4, -this.ry * 3.14],\n      // top right curve\n      [\"a\", this.rx / 2, this.ry / 2, 0, 0, 0, -this.rx * 2.4, -this.ry * 1.5],\n      // top left curve\n      [\"a\", this.rx / 2, this.ry / 2, 0, 0, 0, -this.rx * 2.4, this.ry * 1.5],\n      // bottom left curve\n      [\"l\", this.rx * 2.4, this.ry * 3.14],\n      [\"z\"]\n    ];\n  }\n}\nclass wl extends Q {\n  rx;\n  ry;\n  constructor(t) {\n    super(t), this.rx = t?.heartRx || 50, this.ry = t?.heartRy || 50;\n  }\n  cloneShape() {\n    return new wl({\n      ...super.getBaseOptions(),\n      heartRx: this.rx,\n      heartRy: this.ry\n    });\n  }\n  toSVGPathData() {\n    return [\n      [\"m\", 0, 0 + this.ry * 0.3],\n      // top left curve\n      [\"C\", 0, 0, 0 - this.rx / 2, 0, 0 - this.rx / 2, 0 + this.ry * 0.3],\n      // bottom left curve\n      [\n        \"C\",\n        0 - this.rx / 2,\n        0 + (this.ry + this.ry * 0.3) / 2,\n        0,\n        0 + (this.ry + this.ry * 0.3) / 1.4,\n        0,\n        0 + this.ry\n      ],\n      // bottom right curve\n      [\n        \"C\",\n        0,\n        0 + (this.ry + this.ry * 0.3) / 1.8,\n        0 + this.rx / 2,\n        0 + (this.ry + this.ry * 0.3) / 2,\n        0 + this.rx / 2,\n        0 + this.ry * 0.3\n      ],\n      // top right curve\n      [\"C\", 0 + this.rx / 2, 0, 0, 0, 0, 0 + this.ry * 0.3],\n      [\"z\"]\n    ];\n  }\n}\nclass bl extends Q {\n  r;\n  constructor(t) {\n    super(t), this.r = t?.starR || 20;\n  }\n  cloneShape() {\n    return new bl({\n      ...super.getBaseOptions(),\n      starR: this.r\n    });\n  }\n  toSVGPathData() {\n    const t = [[\"m\", 0, -this.r]];\n    for (let e = 0; e < 6; e += 1) {\n      const s = 288 + e * 144, i = this.r * Math.cos(q(s)), r = this.r * Math.sin(q(s));\n      t.push([\"l\", i, r]);\n    }\n    return t;\n  }\n}\nclass vl extends Q {\n  constructor(t) {\n    super(t);\n  }\n  cloneShape() {\n    return new vl({\n      ...super.getBaseOptions()\n    });\n  }\n  toSVGPathData() {\n    return [\n      [\"m\", 4, 24],\n      [\"l\", 4, -8],\n      [\"l\", 6, -6],\n      [\"l\", 1, -10],\n      [\"l\", -6, -10],\n      [\"l\", -7, 10],\n      [\"l\", -4, 0],\n      [\"l\", -7, -10],\n      [\"l\", -6, 10],\n      [\"l\", 1, 10],\n      [\"l\", 6, 6],\n      [\"l\", 4, 8],\n      [\"z\"]\n    ];\n  }\n  toCanvasContext(t) {\n    t.beginPath(), t.moveTo(4, 24), t.lineTo(8, 16), t.lineTo(14, 10), t.lineTo(15, 0), t.lineTo(9, -10), t.lineTo(2, 0), t.lineTo(-2, 0), t.lineTo(-9, -10), t.lineTo(-15, 0), t.lineTo(-14, 10), t.lineTo(-8, 16), t.lineTo(-4, 24), t.closePath();\n  }\n}\nclass _l extends Q {\n  constructor(t) {\n    super(t);\n  }\n  cloneShape() {\n    return new _l({\n      ...super.getBaseOptions()\n    });\n  }\n  toSVGPathData() {\n    return [\n      [\"M\", 0, 0],\n      [\"C\", 15, 0, 15, -40, 5, -30],\n      [\"L\", 0, 0],\n      [\"C\", -15, 0, -15, -40, -5, -30],\n      [\"L\", 0, 0],\n      [\"a\", 15, 15, 0, 1, 1, 0, 2 * 15],\n      [\"a\", 15, 15, 0, 1, 1, 0, -2 * 15]\n    ];\n  }\n}\nclass Sl extends Q {\n  constructor(t) {\n    super({\n      ...t,\n      initD: \"m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z\"\n    });\n  }\n  cloneShape() {\n    return new Sl({\n      ...super.getBaseOptions()\n    });\n  }\n}\nclass Cl extends Q {\n  rx;\n  ry;\n  constructor(t) {\n    super(t), this.rx = t?.rx || 0, this.ry = t?.ry || 0;\n  }\n  cloneShape() {\n    return new Cl({\n      ...super.getBaseOptions(),\n      rx: this.rx,\n      ry: this.ry\n    });\n  }\n  getBoundingClientRect() {\n    return {\n      x: this.x - this.rx,\n      y: this.y - this.ry,\n      width: this.rx * 2,\n      height: this.ry * 2\n    };\n  }\n  toSVGEl() {\n    const t = We(\"ellipse\");\n    return this.setAttr({\n      cx: \"0\",\n      cy: \"0\",\n      rx: String(this.rx),\n      ry: String(this.ry)\n    }), t;\n  }\n  toSVGPathData() {\n    return [\n      [\"m\", 0, -this.ry],\n      [\"a\", this.rx, this.ry, 0, 1, 1, 0, 2 * this.ry],\n      [\"a\", this.rx, this.ry, 0, 1, 1, 0, -2 * this.ry],\n      [\"z\"]\n    ];\n  }\n  toCanvasContext(t) {\n    t.beginPath(), t.ellipse(0, 0, this.rx, this.ry, 0, 0, 2 * Math.PI, !0), t.closePath();\n  }\n}\nclass El extends Nt {\n  showFlame;\n  flame;\n  ship;\n  constructor(t) {\n    super(t), this.showFlame = typeof t?.showFlame == \"boolean\" ? t?.showFlame : !0, this.flame = new Q({\n      initD: [[\"M\", -15, 0], [\"L\", -2.5, -5], [\"L\", -2.5, 5], [\"Z\"]],\n      drag: {\n        followSibling: !0\n      }\n    }), this.showFlame && this.addShape(this.flame), this.ship = new Q({\n      initD: [\n        [\"M\", 10, 0],\n        [\"L\", -10, 10],\n        [\"L\", -5, 0],\n        [\"L\", -10, -10],\n        [\"L\", 10, 0],\n        [\"Z\"]\n      ],\n      drag: {\n        followSibling: !0\n      }\n    }), this.addShape(this.ship);\n  }\n  cloneShapeCombo() {\n    return new El({\n      ...super.getBaseOptions(),\n      showFlame: this.showFlame\n    });\n  }\n  // 供外部使用：基本属性变更\n  update(t) {\n    typeof t?.showFlame == \"boolean\" && (this.shapes = [], this.showFlame = t?.showFlame, this.showFlame && this.addShape(this.flame), this.addShape(this.ship));\n  }\n}\nclass Pl extends Nt {\n  width;\n  height;\n  cornerRadius;\n  constructor(t) {\n    super(t), this.width = t.segmentWidth, this.height = t.segmentHeight, this.cornerRadius = typeof t.segmentCornerRadius == \"number\" ? t.segmentCornerRadius : this.height * 0.5;\n    const e = new Ze({\n      drag: {\n        followSibling: !0\n      },\n      rectWidth: this.width + this.cornerRadius * 2,\n      rectHeight: this.height,\n      rectBorderRadius: this.cornerRadius\n    });\n    this.addShape(e, {\n      dX: 0 - this.cornerRadius,\n      dY: 0 - this.height * 0.5\n    });\n    const s = new js({\n      drag: {\n        followSibling: !0\n      },\n      ballRadius: 2\n    });\n    this.addShape(s);\n    const i = new js({\n      drag: {\n        followSibling: !0\n      },\n      ballRadius: 2\n    });\n    this.addShape(i, { dX: 0 + this.width });\n  }\n  cloneShapeCombo() {\n    return new Pl({\n      ...super.getBaseOptions(),\n      segmentWidth: this.width,\n      segmentHeight: this.height,\n      segmentCornerRadius: this.cornerRadius\n    });\n  }\n  // 重写覆盖\n  getBoundingClientRectCenter() {\n    return {\n      x: 0,\n      y: 0\n    };\n  }\n  // 绝对值\n  getPin() {\n    const t = this.shapes[1];\n    return {\n      x: t.x + Math.cos(q(t.degree)) * this.width,\n      y: t.y + Math.sin(q(t.degree)) * this.width\n    };\n  }\n}\nclass Tl extends Nt {\n  options;\n  value$ = new ke();\n  subscription;\n  constructor(t) {\n    super(t), this.options = t;\n    const e = t?.sliderMin || 0, s = t?.sliderMax || 100, i = t?.sliderStep || 1, r = Xu(e, s, i), o = r(\n      typeof t?.sliderDefaultValue == \"number\" ? N(t.sliderDefaultValue, e, s) : e\n    );\n    this.value$.next(o);\n    const a = o / (s - e), h = t?.sliderWidth || 100, c = t?.sliderHeight || 4, l = c * 0.5, u = c * 2.5, d = t?.sliderBackgroundColor || \"#f5f5f5\", f = t?.sliderForegroundColor || \"#5a82f0\", m = new Ze({\n      rectWidth: h,\n      rectHeight: c,\n      rectBorderRadius: l,\n      attrs: {\n        fill: d\n      },\n      drag: {\n        enable: !1\n      }\n    });\n    this.addShape(m);\n    const p = new Ze({\n      rectWidth: h * a,\n      rectHeight: c,\n      rectBorderRadius: l,\n      attrs: {\n        fill: f\n      },\n      drag: {\n        enable: !1\n      }\n    });\n    this.addShape(p);\n    const S = new js({\n      x: h * a,\n      y: l,\n      ballRadius: u,\n      attrs: {\n        fill: f\n      },\n      drag: {\n        enable: !0,\n        alongPath: new At([\n          [\"m\", 0, 0],\n          [\"l\", h, 0]\n        ])\n      }\n    });\n    this.addShape(S), this.subscription = S.transform$.subscribe(({ dX: g }) => {\n      console.log(g);\n      const b = (S.x - m.x) / h;\n      p.update({\n        rectWidth: h * b\n      }), this.value$.next(r(b * (s - e) + e));\n    });\n  }\n  destroy() {\n    super.destroy(), this.subscription.unsubscribe();\n  }\n  cloneShapeCombo() {\n    return new Tl({\n      ...super.getBaseOptions(),\n      ...this.options\n    });\n  }\n}\nclass Wn extends Q {\n  half;\n  lineWidth;\n  radius;\n  startDegree;\n  endDegree;\n  percent = 0;\n  percentDegree = 0;\n  // public bgColor?: CanvasGradient | string;\n  startColor;\n  endColor;\n  constructor(t) {\n    super(t), this.half = typeof t?.half == \"boolean\" ? t?.half : !1, this.lineWidth = t.lineWidth;\n    const e = t.width || 0, s = t.height || 0, i = (t.endDegree - t.startDegree - 180) / 2;\n    if (t.radius)\n      this.radius = t.radius;\n    else if (this.half) {\n      const r = Math.min(e / 2, s) - this.lineWidth;\n      this.radius = Math.max(0, r - r * Math.sin(q(i)));\n    } else\n      this.radius = Math.max(\n        0,\n        Math.min(e / 2, s / 2) - this.lineWidth\n      );\n    t.x || (this.x = e / 2), t.y || (this.half ? this.y = s - this.lineWidth - this.radius * Math.sin(q(i)) : this.y = s / 2), t.forceCoordinate ? (this.startDegree = t.startDegree, this.endDegree = t.endDegree) : (this.startDegree = -90 + t.startDegree, this.endDegree = -90 + t.endDegree), this.startColor = t?.startColor, this.endColor = t?.endColor, this.setAttr({\n      \"stroke-linecap\": \"round\",\n      \"stroke-width\": String(this.lineWidth),\n      stroke: this.startColor || \"#000000\"\n    }), this.setPercent(t.percent || 1);\n  }\n  cloneShape() {\n    return new Wn({\n      ...super.getBaseOptions(),\n      half: this.half,\n      lineWidth: this.lineWidth,\n      radius: this.radius,\n      forceCoordinate: !0,\n      startDegree: this.startDegree,\n      endDegree: this.endDegree,\n      startColor: this.startColor,\n      endColor: this.endColor,\n      percent: this.percent\n    });\n  }\n  // 提供外部变更\n  setPercent(t) {\n    this.percent = Math.max(0, t), this.percentDegree = this.startDegree + (this.endDegree - this.startDegree) * t;\n  }\n  enableGradient(t, e) {\n    this.startColor = t, this.endColor = e, this.setAttr({\n      stroke: this.startColor\n    });\n  }\n  disableGradient(t) {\n    this.startColor = t, this.endColor = void 0, this.setAttr({\n      stroke: this.startColor\n    });\n  }\n  toSVGPathData() {\n    const { dx: t, dy: e } = He(\n      q(this.startDegree),\n      this.radius\n    ), { dx: s, dy: i } = He(\n      q(this.percentDegree),\n      this.radius\n    );\n    return [\n      [\"m\", t, e],\n      [\n        \"a\",\n        this.radius,\n        this.radius,\n        0,\n        Math.abs(this.percentDegree - this.startDegree) >= 180 ? 1 : 0,\n        1,\n        s - t,\n        i - e\n      ]\n    ];\n  }\n  toCanvasContext(t) {\n    if (this.startColor && this.endColor) {\n      let e;\n      if (this.half) {\n        const s = this.radius - this.radius * Math.cos(Math.PI * this.percent), i = this.radius * Math.sin(Math.PI * this.percent);\n        e = t.createLinearGradient(\n          -this.radius,\n          0,\n          -this.radius + s,\n          -i,\n          {\n            0: this.startColor,\n            1: this.endColor\n          }\n        );\n      } else {\n        const s = this.radius * Math.sin(2 * Math.PI * this.percent), i = this.radius * Math.cos(2 * Math.PI * this.percent);\n        e = t.createLinearGradient(0, -this.radius, s, -i, {\n          0: this.startColor,\n          1: this.endColor\n        });\n      }\n      this.setAttr({\n        stroke: e\n      });\n    }\n    t.beginPath(), t.arc(\n      0,\n      0,\n      this.radius,\n      q(this.startDegree),\n      q(this.percentDegree),\n      !1\n    );\n  }\n}\nclass Ml extends Nt {\n  half;\n  lineWidth;\n  width;\n  height;\n  bgColor;\n  startColor;\n  endColor;\n  startDegree;\n  endDegree;\n  percent = 0;\n  ringBg;\n  ring;\n  lines = [];\n  indicatorLineCount;\n  constructor(t) {\n    if (super(t), this.half = typeof t?.half == \"boolean\" ? t?.half : !1, this.lineWidth = t?.lineWidth || 12, this.width = t.width, this.height = t.height, this.bgColor = t?.bgColor, this.startColor = t?.startColor, this.endColor = t?.endColor, this.half ? (this.startDegree = t?.startDegree || -90 - 15, this.endDegree = t?.endDegree || 90 + 15) : (this.startDegree = t?.startDegree || 0, this.endDegree = t?.endDegree || 360), this.percent = t?.percent || 0, this.ringBg = new Wn({\n      half: this.half,\n      lineWidth: this.lineWidth,\n      width: t.width,\n      height: t.height,\n      startDegree: this.startDegree,\n      endDegree: this.endDegree,\n      startColor: this.bgColor,\n      percent: 1\n    }), this.addShape(this.ringBg), this.ring = new Wn({\n      half: this.half,\n      lineWidth: this.lineWidth,\n      width: t.width,\n      height: t.height,\n      startDegree: this.startDegree,\n      endDegree: this.endDegree,\n      startColor: this.startColor,\n      endColor: this.endColor,\n      percent: 0\n    }), this.addShape(this.ring), this.indicatorLineCount = 22 + 1, this.half) {\n      const r = this.ringBg.radius - 20 - 17;\n      for (let o = 0; o < this.indicatorLineCount; o++) {\n        const a = new ls({\n          lineLength: 17,\n          startColor: this.startColor,\n          endColor: this.endColor,\n          attrs: {\n            \"stroke-linecap\": \"round\",\n            \"stroke-width\": String(2),\n            stroke: this.bgColor\n          }\n        });\n        this.lines.push(a);\n        const h = -90 + this.startDegree + (this.endDegree - this.startDegree) / (this.indicatorLineCount - 1) * o;\n        this.addShape(a, {\n          dX: this.ringBg.x + Math.cos(q(h)) * r,\n          dY: this.ringBg.y + Math.sin(q(h)) * r,\n          dDegree: h\n        });\n      }\n    }\n    this.setPercent(t.percent || 0);\n  }\n  cloneShapeCombo() {\n    return new Ml({\n      ...super.getBaseOptions(),\n      half: this.half,\n      lineWidth: this.lineWidth,\n      width: this.width,\n      height: this.height,\n      bgColor: this.bgColor,\n      startColor: this.startColor,\n      endColor: this.endColor,\n      startDegree: this.startDegree,\n      endDegree: this.endDegree,\n      percent: this.percent\n    });\n  }\n  // 提供外部变更\n  setPercent(t) {\n    if (this.percent = Math.max(0, t), this.ring.setPercent(t), this.half)\n      for (let e = 0; e < this.indicatorLineCount; e++)\n        e / (this.indicatorLineCount - 1) <= this.percent ? this.lines[e].enableGradient(this.startColor, this.endColor) : this.lines[e].disableGradient(this.bgColor);\n  }\n}\nclass Rs extends Q {\n  text;\n  width = 0;\n  height = 0;\n  constructor(t) {\n    super(t), this.text = t.text, this.setAttr({\n      // default attributes\n      fontSize: \"10px\",\n      fontFamily: 'system-ui, Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"PingFang SC\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif',\n      // see https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/\n      emojiFontFamily: '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\", \"EmojiOne Color\", \"Android Emoji\", \"Twemoji Mozilla\", \"system emoji\", sans-serif',\n      fill: \"#666666\",\n      stroke: \"none\",\n      \"alignment-baseline\": \"middle\",\n      textAnchor: \"start\",\n      // start | end\n      // custom attributes\n      ...this.attrs\n    });\n    const e = Hi(this.getAttr(\"fontSize\"), 10).number, s = Hi(this.getAttr(\"fontWeight\"), 400).number, i = Rs.measureText(this.text, e, s);\n    this.width = i.width, this.height = i.height;\n  }\n  cloneShape() {\n    return new Rs({\n      ...super.getBaseOptions(),\n      text: this.text\n    });\n  }\n  toSVGEl() {\n    const t = We(\"text\");\n    t.setAttribute(\"x\", \"0\"), t.setAttribute(\"y\", \"0\"), t.style.alignmentBaseline = \"middle\";\n    const e = this.text.split(`\n`);\n    if (e.length <= 1)\n      t.innerHTML = this.text;\n    else {\n      const s = this.getAttr(\"line-height\", \"1.2em\");\n      e.forEach((i, r) => {\n        if (i.trim()) {\n          const o = We(\"tspan\");\n          o.setAttribute(\"x\", \"0\"), o.setAttribute(\"dy\", r > 0 ? s : \"0\"), o.innerHTML = i.trim(), o.style.alignmentBaseline = \"middle\", t.append(o);\n        }\n      });\n    }\n    return t;\n  }\n  toSVGPathData() {\n    return [];\n  }\n  toCanvasContext(t) {\n    const e = this.text.split(`\n`);\n    if (e.length <= 1)\n      t.fillText(this.text, 0, 0);\n    else {\n      const s = t.measureText(this.text), r = (s.actualBoundingBoxAscent + s.actualBoundingBoxDescent) * parseFloat(this.getAttr(\"line-height\", \"1.2em\"));\n      let o = 0;\n      e.forEach((a, h) => {\n        a.trim() && (o += h > 0 ? r : 0, t.fillText(a.trim(), 0, o));\n      });\n    }\n  }\n  static measureText(t, e = 12, s = 400) {\n    const i = document.createElement(\"span\");\n    i.style.visibility = \"hidden\", i.style.margin = \"0\", i.style.padding = \"0\", i.style.inset = \"0\", i.style.whiteSpace = \"nowrap\", i.style.overflow = \"visible\", i.style.fontSize = e + \"px\", i.style.fontWeight = s.toString(), i.innerText = t, document.body.appendChild(i);\n    const r = i.offsetWidth, o = i.offsetHeight;\n    return document.body.removeChild(i), { width: r, height: o };\n  }\n  /**\n   * 获取固定宽度的字符串，如果传入的text的宽度不够width,则返回原字符串\n   * @text   将要被提取的原字符串\n   * @width  想要提取的字符串长度\n   * @fontSize  字符串显示时的字符大小，支持>=12\n   * @fontWeight  字符串显示时的字符粗细\n   * @isNeedEllipsis   当text的宽度大于width时是否需要省略号\n   */\n  static getFixedWidthText(t, e, s = 12, i = 400, r = \"...\") {\n    let o = \"\";\n    if (!t || e < s)\n      return o;\n    const a = t.split(\"\");\n    let h = r ? Rs.measureText(r, s, i).width : 0;\n    for (let c = 0, l = a.length; c < l; c++)\n      if (h += Rs.measureText(a[c], s, i).width, h > e) {\n        r && (o += r);\n        break;\n      } else\n        o += a[c];\n    return o;\n  }\n}\nclass Al extends Nt {\n  options;\n  constructor(t) {\n    super(t), this.options = t;\n    const {\n      shapeCreator: e,\n      width: s,\n      height: i,\n      x: r,\n      y: o,\n      particleCount: a,\n      angle: h,\n      spread: c,\n      startVelocity: l,\n      decay: u,\n      gravity: d,\n      drift: f,\n      ticks: m,\n      colors: p,\n      scalar: S,\n      flat: g\n    } = Object.assign(\n      {\n        shapeCreator: () => new Ze({ rectWidth: 10, rectHeight: 10 }),\n        width: 100,\n        height: 100,\n        x: 0.5,\n        y: 0.6,\n        particleCount: 100,\n        angle: 90,\n        spread: 70,\n        startVelocity: 45,\n        decay: 0.9,\n        gravity: 1,\n        drift: 0,\n        ticks: 200,\n        colors: Ft.getColors(),\n        scalar: 1,\n        flat: !1\n      },\n      t || {}\n    ), b = (_, D) => {\n      _.x = s * r, _.y = i * o, _.scaleX = S, _.scaleY = S;\n      const z = p[D % p.length];\n      _.setAttr({\n        fill: z\n      }), _.interactive = !1, _.wobble = Math.random() * 10, _.wobbleSpeed = Math.min(0.11, Math.random() * 0.1 + 0.05), _.velocity = l * 0.5 + Math.random() * l, _.angle2D = -x + (0.5 * w - Math.random() * w), _.tiltAngle = (Math.random() * (0.75 - 0.25) + 0.25) * Math.PI, _.tick = 0, _.totalTicks = m, _.decay = u, _.drift = f, _.random = Math.random() + 2, _.tiltSin = 0, _.tiltCos = 0, _.wobbleX = 0, _.wobbleY = 0, _.gravity = d * 3, _.scalar = S, _.flat = g, _.color = new Ft(z);\n    }, x = q(h), w = q(c);\n    let C = a;\n    for (; C; ) {\n      const _ = e();\n      b(_, C), _.clone = ((D) => () => {\n        const z = e();\n        return b(z, D), z;\n      })(C), this.addShape(_), C--;\n    }\n  }\n  cloneShapeCombo() {\n    return new Al(this.options);\n  }\n  // 提供外部变更\n  update() {\n    return this.shapes = this.shapes.filter((t) => {\n      t.x += Math.cos(t.angle2D) * t.velocity + t.drift, t.y += Math.sin(t.angle2D) * t.velocity + t.gravity, t.velocity *= t.decay, t.flat ? (t.wobble = 0, t.wobbleX = t.x + 10 * t.scalar, t.wobbleY = t.y + 10 * t.scalar, t.tiltSin = 0, t.tiltCos = 0, t.random = 1) : (t.wobble += t.wobbleSpeed, t.wobbleX = t.x + 10 * t.scalar * Math.cos(t.wobble), t.wobbleY = t.y + 10 * t.scalar * Math.sin(t.wobble), t.tiltAngle += 0.1, t.tiltSin = Math.sin(t.tiltAngle), t.tiltCos = Math.cos(t.tiltAngle), t.random = Math.random() + 2);\n      const e = t.tick++ / t.totalTicks, s = t.x + t.random * t.tiltCos, i = t.y + t.random * t.tiltSin, r = t.wobbleX + t.random * t.tiltCos, o = t.wobbleY + t.random * t.tiltSin;\n      return t.setAttr(\"fill\", t.color.setAlpha(1 - e).toString()), t.degree = wt(Math.PI / 10 * t.wobble), t.scaleX = Math.abs(r - s) * 0.1, t.scaleY = Math.abs(o - i) * 0.1, t.tick < t.totalTicks;\n    }), this.shapes.length > 0;\n  }\n}\nfunction Tg(n, t = {\n  attributes: !0,\n  childList: !0,\n  subtree: !0\n}) {\n  return new nt((e) => {\n    const s = new MutationObserver(\n      (i, r) => {\n        e.next(i);\n      }\n    );\n    return s.observe(n, t), () => {\n      s.disconnect();\n    };\n  });\n}\nfunction Mw(n, t) {\n  return new Promise((e) => {\n    new MutationObserver((i, r) => {\n      for (const o of i)\n        o.type === \"childList\" && o.addedNodes.forEach((a) => {\n          a.isEqualNode(t) && (r.disconnect(), e(!0));\n        });\n    }).observe(n, { childList: !0 });\n  });\n}\nfunction Mg(n, t = {\n  root: null\n  // default browser viewport 必须是目标元素的父级元素\n  // threshold: 0.5, // 表示重叠面积占被观察者的比例，从 0 - 1 取值，1 表示完全被包含\n}) {\n  return new nt((e) => {\n    const s = new IntersectionObserver(\n      (i, r) => {\n        if (i.length) {\n          const o = i[i.length - 1];\n          o && e.next(o);\n        }\n      },\n      t\n    );\n    return s.observe(n), () => {\n      s.unobserve(n), s.disconnect();\n    };\n  });\n}\nfunction Aw(n, t) {\n  return og().pipe(\n    Ke(null),\n    it(() => {\n      const { width: e, height: s } = t?.root?.getBoundingClientRect() || tl(), { top: i, left: r, right: o, bottom: a } = n.getBoundingClientRect();\n      return (i >= 0 && i <= s || a >= 0 && a <= s) && (r >= 0 && r <= e || o >= 0 && o <= e);\n    }),\n    De()\n  );\n}\nfunction Iw(n, t) {\n  const e = typeof t?.threshold == \"number\" ? t.threshold : 0.5;\n  return Mg(n, {\n    threshold: e,\n    root: t?.root\n  }).pipe(\n    it((s) => s.isIntersecting && s.intersectionRatio >= e),\n    De()\n  );\n}\nlet qa = !1;\nfunction Ag() {\n  qa || (qa = !0, O0(`\n    :root {\n      --sat:env(safe-area-inset-top, 0px);\n      --sar:env(safe-area-inset-right, 0px);\n      --sab:env(safe-area-inset-bottom, 0px);\n      --sal:env(safe-area-inset-left, 0px);\n    }\n    :host {\n      --sat:env(safe-area-inset-top, 0px);\n      --sar:env(safe-area-inset-right, 0px);\n      --sab:env(safe-area-inset-bottom, 0px);\n      --sal:env(safe-area-inset-left, 0px);\n    }\n  `));\n}\nAg();\nfunction kw() {\n  return nl(document.documentElement).pipe(\n    Kr(Wr),\n    // next tick\n    it(() => {\n      const n = getComputedStyle(document.documentElement);\n      return {\n        bottom: n.getPropertyValue(\"--sab\"),\n        top: n.getPropertyValue(\"--sat\"),\n        right: n.getPropertyValue(\"--sar\"),\n        left: n.getPropertyValue(\"--sal\")\n      };\n    })\n  );\n}\nfunction Dw(n = {\n  enableHighAccuracy: !0,\n  // 使用高精度模式\n  timeout: 5e3,\n  // 设置最大超时时间\n  maximumAge: 0\n  // 每次都获取新的位置\n}) {\n  return new nt((t) => {\n    if (!(\"geolocation\" in navigator))\n      return t.error(\"navigator.geolocation is not available.\");\n    let e;\n    return new Promise((s, i) => {\n      navigator.geolocation.getCurrentPosition(\n        (r) => {\n          t.next({\n            longitude: r.coords.longitude,\n            latitude: r.coords.latitude\n          }), s();\n        },\n        (r) => {\n          i(r);\n        }\n      );\n    }).then(() => {\n      e = navigator.geolocation.watchPosition(\n        (s) => {\n          t.next({\n            longitude: s.coords.longitude,\n            latitude: s.coords.latitude\n          });\n        },\n        (s) => {\n          t.error(s);\n        },\n        n\n      );\n    }).catch((s) => {\n      t.error(s);\n    }), () => {\n      typeof e == \"number\" && navigator.geolocation.clearWatch(e);\n    };\n  });\n}\nfunction Ig(n = \"(prefers-color-scheme: dark)\") {\n  const t = window.matchMedia(n);\n  return X(t, \"change\").pipe(\n    it((e) => e.matches),\n    Ke(t.matches),\n    De()\n  );\n}\nfunction ja(n, t) {\n  const e = typeof n == \"string\" ? n : n.toString(), s = () => {\n    try {\n      const a = window.sessionStorage.getItem(e);\n      if (a)\n        return Wa(a);\n    } catch {\n    }\n  }, i = (a) => {\n    try {\n      typeof a.v < \"u\" ? window.sessionStorage.setItem(e, Mr(a)) : window.sessionStorage.removeItem(e);\n    } catch {\n    }\n  };\n  return {\n    get: () => {\n      const { get: a } = Fn(s(), t);\n      return a().v;\n    },\n    set: (a) => {\n      const { set: h } = Fn(s(), t), c = h(a);\n      i(c);\n    }\n  };\n}\nfunction Lw() {\n  window.sessionStorage.clear();\n}\nfunction kg() {\n  return Tg(document).pipe(\n    it(() => location),\n    // const { pathname, search } = location;\n    Ke(location)\n  );\n}\nfunction Rw() {\n  return kg().pipe(\n    it((n) => n.href),\n    Ke(location.href),\n    De()\n  );\n}\nfunction Ow() {\n  return X(window, \"hashchange\").pipe(\n    it(\n      (n) => n.target.location.hash.replace(\"#\", \"\")\n    ),\n    Ke(window.location.hash.replace(\"#\", \"\")),\n    De()\n  );\n}\nfunction Dg(n = \"current\") {\n  return X(window, \"popstate\").pipe(\n    // 注意：当页面刷新时，history.state（最近一次 pushState/replaceState 的 state对象） 可能为 null\n    // 即：浏览器可能不会自动恢复 state 对象\n    // startWith(null),\n    it((t) => t.state || {}),\n    it((t) => ({\n      ...t,\n      // pop-state 转换为 标准输出-state\n      [n]: t[n] || window.location.pathname + window.location.search + window.location.hash\n    })),\n    De((t, e) => t[n] === e[n])\n  );\n}\nfunction zw(n = {\n  nameInState: \"current\",\n  alreadyPushState: !0\n}) {\n  const t = n.nameInState, e = typeof n.alreadyPushState == \"boolean\" ? n.alreadyPushState : !0, { get: s, set: i } = ja(\"fe-route-history\"), r = s() || [], { get: o, set: a } = ja(\"fe-route-history-index\"), h = o();\n  let c = typeof h == \"number\" ? h : r.length - 1;\n  function l(g) {\n    return r.findIndex(\n      (x) => x[t] === g[t]\n    );\n  }\n  const u = { currentIndex: c };\n  function d(g) {\n    g = N(g, -1, r.length - 1), c < 0 ? (u.direction = \"keep\", u.delta = 0) : (g < c ? u.direction = \"backward\" : g > c ? u.direction = \"forward\" : u.direction = \"keep\", u.delta = g - c), u.from = u.to, u.to = r[g]?.[t], c = g, u.currentIndex = c, a(c);\n  }\n  d(c);\n  function f(g) {\n    r.push(g), i(r), d(r.length - 1);\n  }\n  function m(g, b) {\n    const x = { ...b, [t]: g };\n    window.history.pushState(x, \"\", g), f(x);\n  }\n  function p(g, b = e) {\n    const x = l(g);\n    if (x < 0) {\n      c >= 0 && (r.splice(c + 1), i(r)), b ? f(g) : m(g[t], g);\n      return;\n    }\n    x != c && d(x);\n  }\n  const S = Dg().subscribe((g) => {\n    p(g, !0);\n  });\n  return {\n    history: r,\n    route: u,\n    // 统一对外接口：前进或后退\n    // 注意与 popstate$ 的前后调用顺序\n    navigate: (g, b) => {\n      p({ ...b, [t]: g }, e);\n    },\n    go(g) {\n      window.history.go(g);\n    },\n    back() {\n      window.history.back();\n    },\n    forward() {\n      window.history.forward();\n    },\n    destroy: () => {\n      S.unsubscribe();\n    }\n  };\n}\nfunction Nw(n, t, e) {\n  if (typeof t == \"string\" && (t = Ka(t)), (typeof t == \"string\" || t === void 0) && e === void 0) {\n    const s = Object.assign({}, n.dataset);\n    return Object.keys(s).forEach((i) => {\n      if (s[i]?.startsWith(\"[\") || s[i]?.startsWith(\"{\"))\n        try {\n          s[i] = JSON.parse(s[i] || \"\");\n        } catch {\n        }\n    }), typeof t == \"string\" ? s[t] : s;\n  } else {\n    let s = {};\n    typeof t == \"object\" ? s = t : typeof t == \"string\" && (s[t] = e), Object.entries(s).forEach(([i, r]) => {\n      r ? n.dataset[i] = r instanceof Object ? JSON.stringify(r) : r : delete n.dataset[i];\n    });\n  }\n}\nfunction Yw(n, t) {\n  t.split(/[,\\s]+/).forEach((e) => {\n    e.trim() != \"\" && delete n.dataset[e.trim()];\n  });\n}\nfunction Lg(n, t) {\n  const e = typeof n == \"string\" ? n : n.toString(), s = () => {\n    try {\n      const a = window.localStorage.getItem(e);\n      if (a)\n        return Wa(a);\n    } catch {\n    }\n  }, i = (a) => {\n    try {\n      typeof a.v < \"u\" ? window.localStorage.setItem(e, Mr(a)) : window.localStorage.removeItem(e);\n    } catch {\n    }\n  };\n  return {\n    get: () => {\n      const { get: a } = Fn(s(), t);\n      return a().v;\n    },\n    set: (a) => {\n      const { set: h } = Fn(s(), t), c = h(a);\n      i(c);\n    }\n  };\n}\nfunction Bw() {\n  window.localStorage.clear();\n}\nconst { get: Il, set: kl } = Lg(\n  Zn(\"theme\")\n), Dl = new ke(), Rg = Dl.pipe(Ke(void 0));\nfunction Ll(n) {\n  switch (n) {\n    case \"dark\":\n      document.documentElement.classList.add(\"dark\"), ds(document.documentElement, \"data-theme\", \"dark\");\n      break;\n    case \"light\":\n    default:\n      document.documentElement.classList.remove(\"dark\"), ds(document.documentElement, \"data-theme\", \"light\");\n      break;\n  }\n}\nfunction Og(n) {\n  return kl(n), Ll(n), Dl.next(n), n;\n}\nfunction Xw() {\n  return Og(Il() == \"dark\" ? \"light\" : \"dark\");\n}\nfunction Fw() {\n  return op([\n    Rg,\n    Ig(\"(prefers-color-scheme: dark)\")\n  ]).pipe(\n    it(([n, t]) => n || (n = Il(), n || (n = t ? \"dark\" : \"light\"), kl(n), Ll(n), n))\n  );\n}\nfunction Uw(n, t = \"\") {\n  return getComputedStyle(document.documentElement).getPropertyValue(n) || t;\n}\nfunction Gw(n, t) {\n  document.documentElement.style.setProperty(n, t);\n}\nfunction Vw(n, t) {\n  let e = t?.value || \"\";\n  if (!e) {\n    const r = `; ${document.cookie}`.split(`; ${n}=`).pop()?.split(\";\").shift();\n    r && (e = decodeURIComponent(r));\n  }\n  const s = () => e, i = (r) => {\n    if (e = r, e) {\n      const o = t?.domain ? \"; domain=\" + t.domain : \"\", a = t?.path ? \"; path=\" + t.path : \"\", h = t?.secure == !0 ? \"; secure\" : \"\";\n      let c = n + \"=\" + encodeURIComponent(e) + o + a + h;\n      if (t?.days) {\n        const l = \"; expires=\" + new Date(Date.now() + t.days * 864e5).toUTCString();\n        c += l;\n      }\n      document.cookie = c;\n    }\n  };\n  return i(e), {\n    get: s,\n    set: i\n  };\n}\nfunction $w() {\n  const n = document.cookie.split(\"; \");\n  for (let t = 0; t < n.length; t++) {\n    const e = window.location.hostname.split(\".\");\n    for (; e.length > 0; ) {\n      const s = encodeURIComponent(n[t].split(\";\")[0].split(\"=\")[0]) + \"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=\" + e.join(\".\") + \" ;path=\", i = location.pathname.split(\"/\");\n      for (document.cookie = s + \"/\"; i.length > 0; )\n        document.cookie = s + i.join(\"/\"), i.pop();\n      e.shift();\n    }\n  }\n}\nfunction zg(n, t) {\n  let e;\n  return n.objectStoreNames.contains(t) || (e = n.createObjectStore(t, { keyPath: \"id\" })), e;\n}\nfunction qw(n, t = 1, e) {\n  return new Promise((s, i) => {\n    let r;\n    const o = window.indexedDB.open(n, t);\n    o.onerror = () => {\n      i(\"无法使用IndexDB!\");\n    }, o.onsuccess = (a) => {\n      r = a.target.result, zg(r, e), s(r);\n    };\n  });\n}\nfunction jw(n, t, e = { id: 1, name: \"xxx\" }) {\n  return new Promise((s, i) => {\n    const r = n.transaction(\n      [t],\n      \"readwrite\"\n    );\n    r.objectStore(t).add(e), r.oncomplete = (a) => {\n      s(a);\n    }, r.onerror = (a) => {\n      i(a);\n    };\n  });\n}\nconst Cr = new Ws();\nfunction Rl(n, t) {\n  return Ar({ url: n, ...t });\n}\nasync function ao(n, t) {\n  if (typeof fetch > \"u\")\n    throw new Error(\"fetch() not supported!\");\n  if (typeof AbortController > \"u\")\n    throw new Error(\"AbortController not supported!\");\n  try {\n    const e = Rl(n, t), s = new AbortController();\n    Cr.set(e, s);\n    const { responseType: i, onProgress: r, timeout: o } = {\n      responseType: \"json\",\n      timeout: 6e4,\n      ...t\n    }, a = setTimeout(() => {\n      s.abort();\n    }, o);\n    let h = await fetch(\n      new Request(n, {\n        ...t,\n        signal: s.signal\n        // signal: AbortSignal.timeout(timeout) // TimeoutError\n        // headers: new Headers(headers),\n        // credentials: \"include\" || \"same-origin\"\n      })\n    );\n    if (Cr.delete(e), clearTimeout(a), h.status === 200 || h.status === 0) {\n      if (h.status === 0 && kn(\"useFetch: HTTP Status 0 received.\"), typeof ReadableStream < \"u\" && h.body && h.body.getReader && r) {\n        const c = h.body.getReader(), l = h.headers.get(\"X-File-Size\") || h.headers.get(\"Content-Length\"), u = l ? parseInt(l) : 0, d = u !== 0;\n        let f = 0;\n        const m = new ReadableStream({\n          start(p) {\n            function S() {\n              c.read().then(({ done: g, value: b }) => {\n                g ? p.close() : (f += b.byteLength, r?.(\n                  new ProgressEvent(\"progress\", {\n                    lengthComputable: d,\n                    loaded: f,\n                    total: u\n                  })\n                ), p.enqueue(b), S());\n              }).catch((g) => {\n                p.error(g);\n              });\n            }\n            S();\n          }\n        });\n        h = new Response(m);\n      }\n      switch (i) {\n        case \"arraybuffer\":\n          return await h.arrayBuffer();\n        case \"blob\":\n          return await h.blob();\n        case \"json\":\n          return await h.json();\n        case \"text\":\n        default:\n          return await h.text();\n      }\n    } else\n      throw new xf(\n        `useFetch for \"${h.url}\" responded with ${h.status}: ${h.statusText}`,\n        h\n      );\n  } catch (e) {\n    throw e.name === \"AbortError\" ? new Error(\"Request timed out\") : e.name === \"TimeoutError\" ? new Error(\"Request timed out\") : e;\n  }\n}\nfunction Hw(n, t) {\n  const e = Cr.get(Rl(n, t));\n  e && e.abort();\n}\nfunction Ww(n = 3, t) {\n  return Lr(ao, n, t);\n}\nfunction Zw(n = 6e4) {\n  return Rr(ao, n);\n}\nfunction Jw(n = 6e4, t = 3, e) {\n  return Rr(Lr(ao, t, e), n);\n}\nconst Ng = {\n  name: \"zh-cn\",\n  weekdays: \"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),\n  weekdaysShort: \"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),\n  weekdaysMin: \"日_一_二_三_四_五_六\".split(\"_\"),\n  months: \"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\n    \"_\"\n  ),\n  monthsShort: \"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),\n  ordinal: (n, t) => {\n    switch (t) {\n      case \"W\":\n        return `${n}周`;\n      default:\n        return `${n}日`;\n    }\n  },\n  weekStart: 1,\n  yearStart: 4,\n  formats: {\n    LT: \"HH:mm\",\n    LTS: \"HH:mm:ss\",\n    L: \"YYYY/MM/DD\",\n    LL: \"YYYY年M月D日\",\n    LLL: \"YYYY年M月D日Ah点mm分\",\n    LLLL: \"YYYY年M月D日ddddAh点mm分\",\n    l: \"YYYY/M/D\",\n    ll: \"YYYY年M月D日\",\n    lll: \"YYYY年M月D日 HH:mm\",\n    llll: \"YYYY年M月D日dddd HH:mm\"\n  },\n  relativeTime: {\n    future: \"%s内\",\n    past: \"%s前\",\n    s: \"几秒\",\n    m: \"1 分钟\",\n    mm: \"%d 分钟\",\n    h: \"1 小时\",\n    hh: \"%d 小时\",\n    d: \"1 天\",\n    dd: \"%d 天\",\n    M: \"1 个月\",\n    MM: \"%d 个月\",\n    y: \"1 年\",\n    yy: \"%d 年\"\n  },\n  meridiem: (n, t) => {\n    const e = n * 100 + t;\n    return e < 600 ? \"凌晨\" : e < 900 ? \"早上\" : e < 1100 ? \"上午\" : e < 1300 ? \"中午\" : e < 1800 ? \"下午\" : \"晚上\";\n  }\n}, Yg = {\n  name: \"en\",\n  weekdays: \"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\n    \"_\"\n  ),\n  months: \"January_February_March_April_May_June_July_August_September_October_November_December\".split(\n    \"_\"\n  ),\n  ordinal: (n) => {\n    const t = [\"th\", \"st\", \"nd\", \"rd\"], e = n % 100;\n    return `[${n}${t[(e - 20) % 10] || t[e] || t[0]}]`;\n  }\n}, Be = new Ws();\nlet Mn = \"zh-cn\";\nOl(Yg);\nOl(Ng);\nfunction Ol(n, t) {\n  if (!n)\n    return Be.get(Mn);\n  let e;\n  if (typeof n == \"string\") {\n    const s = n.toLowerCase();\n    if (Be.get(s))\n      e = s;\n    else if (t)\n      Be.set(s, t), e = s;\n    else\n      return Be.get(Mn);\n  } else {\n    const { name: s } = n;\n    Be.set(s, n), e = s;\n  }\n  return e && (Mn = e), Be.get(e) || Be.get(Mn);\n}\nlet Bg = 0;\nfunction ns(n, t = {}, e = [], s) {\n  return {\n    name: String(++Bg),\n    tag: n,\n    props: t,\n    children: e,\n    el: s\n  };\n}\nfunction ho(n) {\n  return ns(\n    n.tagName,\n    Wc(n),\n    Array.from(n.children).map((t) => ho(t)),\n    n\n  );\n}\nfunction Bs(n, t = document.documentElement) {\n  if (n.el)\n    return n.el;\n  if (n.el = n.tag == \"path\" ? rl() : document.createElement(n.tag), n.props)\n    for (const e in n.props) {\n      const s = n.props[e];\n      e.startsWith(\"on\") ? n.el.addEventListener(e.slice(2).toLowerCase(), s) : e === \"style\" ? di(n.el, n.props[e]) : ds(n.el, e, s);\n    }\n  return n.children && (typeof n.children == \"string\" ? n.el.appendChild(document.createTextNode(n.children)) : n.children.forEach((e) => {\n    Bs(e, n.el);\n  })), t.appendChild(n.el), n.el;\n}\nfunction co(n, t) {\n  if (!n.el)\n    return;\n  if (n.tag !== t.tag) {\n    (n.el.parentElement || document.body).replaceChild(\n      Bs(t),\n      n.el\n    );\n    return;\n  }\n  const e = t.el = n.el, s = n.props, i = t.props;\n  for (const a in s)\n    a in i || (a.startsWith(\"on\") ? e.removeEventListener(a.slice(2).toLowerCase(), s[a]) : e.removeAttribute(a));\n  for (const a in i) {\n    const h = s[a], c = i[a];\n    if (c != h)\n      if (a.startsWith(\"on\")) {\n        const l = a.slice(2).toLowerCase();\n        e.removeEventListener(l, h), e.addEventListener(l, c);\n      } else if (a === \"style\") {\n        for (const l in h)\n          l in c || Hc(e, l);\n        di(e, c);\n      } else\n        ds(e, a, c);\n  }\n  const r = n.children || [], o = t.children || [];\n  if (typeof o == \"string\")\n    e.innerHTML = o;\n  else if (typeof r == \"string\")\n    e.innerHTML = \"\", o.forEach((a) => {\n      Bs(a, e);\n    });\n  else {\n    const a = Math.min(r.length, o.length);\n    for (let h = 0; h < a; h++)\n      co(r[h], o[h]);\n    o.length > r.length && o.slice(r.length).forEach((h) => {\n      Bs(h, e);\n    }), o.length < r.length && r.slice(o.length).forEach((h) => {\n      h.el && e.removeChild(h.el);\n    });\n  }\n}\nclass Kw {\n  state;\n  el;\n  constructor(t, e) {\n    this.state = Yr(t, { deep: !0 }), this.el = e, this.compile(this.el);\n  }\n  // 解析器\n  compile(t) {\n    t.childNodes.forEach((e) => {\n      switch (e.nodeType) {\n        case 1:\n          const s = e;\n          [...s.attributes].forEach((a) => {\n            const h = a.name, c = a.value;\n            if (h === \"v-model\")\n              if (Gc(s)) {\n                const l = s;\n                Te(() => {\n                  l.checked = this.getStateValue(c) == l.value;\n                }), l.addEventListener(\"change\", (u) => {\n                  this.setStateValue(\n                    c,\n                    u.target.value\n                  );\n                });\n              } else if (Uc(s)) {\n                const l = s;\n                Te(() => {\n                  l.checked = oh(\n                    this.getStateValue(c),\n                    l.value\n                  );\n                }), l.addEventListener(\"change\", (u) => {\n                  const d = u.target, f = d.value;\n                  d.checked ? Gu(this.getStateValue(c), f) : rh(this.getStateValue(c), f);\n                });\n              } else if (Fc(s)) {\n                const l = s;\n                Te(() => {\n                  l.value = this.getStateValue(c);\n                }), l.addEventListener(\"change\", (u) => {\n                  this.setStateValue(\n                    c,\n                    u.target.value\n                  );\n                });\n              } else {\n                const l = s;\n                Te(() => {\n                  l.value = this.getStateValue(c);\n                });\n                const u = (d) => {\n                  this.setStateValue(\n                    c,\n                    d.target.value\n                  );\n                };\n                l.addEventListener(\"input\", u);\n              }\n            else\n              h === \"v-text\" ? Te(() => {\n                s.innerText = this.getStateValue(c);\n              }) : h === \"v-html\" && Te(() => {\n                s.innerHTML = this.getStateValue(c);\n              });\n          }), s.childNodes.length > 0 && this.compile(s);\n          break;\n        case 3:\n          const i = e.textContent || \"\", r = /\\{\\{\\s*([^{}\\s]+)\\s*\\}\\}/g, o = r.exec(i);\n          o && o[1] && Te(() => {\n            e.textContent = i.replace(\n              r,\n              this.getStateValue(o[1])\n            );\n          });\n          break;\n      }\n    });\n  }\n  // UNDO : 暂未考虑 嵌套的 数组\n  getStateValue(t) {\n    let e = this.state;\n    return t.split(\".\").forEach((s) => {\n      e = e[s];\n    }), e;\n  }\n  // UNDO : 暂未考虑 嵌套的 数组\n  setStateValue(t, e) {\n    let s = this.state;\n    const i = t.split(\".\"), r = i.length;\n    for (let o = 0; o < r - 1; o++)\n      s = s[i[o]];\n    s[i[r - 1]] = e;\n  }\n  // setState(data: State) {\n  //   for (const k in data) {\n  //     const v = data[k];\n  //     if (Array.isArray(v)) {\n  //       flushArray(this.state[k], v);\n  //     } else if (isJustObject(v)) {\n  //       for (const vk in v) {\n  //         this.state[k][vk] = v[vk];\n  //       }\n  //     } else {\n  //       this.state[k] = v;\n  //     }\n  //   }\n  // }\n  /**\n   * @description 编译模板字符串\n   * @example\n   * const template = `\n   * <ul>\n   *   <% for(let i=0; i < data.supplies.length; i++) { %>\n   *     <li><%= data.supplies[i] %></li>\n   *   <% } %>\n   * </ul>\n   * `;\n   * const parse = eval(compileTemplate(template));\n   * console.log(parse({ supplies: [\"broom\", \"mop\", \"cleaner\"] }));\n   */\n  static compileTemplate(t) {\n    return t = t.replace(/<%=(.+?)%>/g, \"`); \\n  echo( $1 ); \\n  echo(`\").replace(/<%([\\s\\S]+?)%>/g, \"`); \\n $1 \\n  echo(`\"), t = \"echo(`\" + t + \"`);\", `(function parse(data){\n      let output = \"\";\n      function echo(html){\n        output += html;\n      }\n      ${t}\n      return output;\n    })`;\n  }\n}\nfunction Xg(n, t, e) {\n  return new WebSocket(n);\n}\nfunction Qw(n) {\n  return `${n}eventbus/${Xs(3, \"number\")}/${Xs(\n    8\n  )}/websocket`;\n}\nclass pe {\n  static CONNECTING = WebSocket.CONNECTING;\n  // 0\n  static OPEN = WebSocket.OPEN;\n  // 1\n  static CLOSING = WebSocket.CLOSING;\n  // 2\n  static CLOSED = WebSocket.CLOSED;\n  // 3\n  url;\n  socketCreatorProtocols;\n  socketCreatorOptions;\n  socketCreator;\n  socket;\n  state = pe.CONNECTING;\n  messageQueue = [];\n  pingInterval;\n  pingTimerID;\n  reconnect;\n  reconnectAttempts = 0;\n  maxReconnectAttempts;\n  reconnectTimerID;\n  onopen;\n  onclose;\n  onerror;\n  requestid = 0;\n  waitings = {};\n  listeners = {};\n  // wss://echo.websocket.org/\n  // wss://xinge.ruolin-link.com/\n  // wss://test.xinge.me/\n  constructor(t = \"\", e) {\n    this.url = t, this.socketCreatorProtocols = e?.socketCreatorProtocols, this.socketCreatorOptions = e?.socketCreatorOptions || {}, this.socketCreator = e?.socketCreator || Xg, this.pingInterval = e?.pingInterval || 5e3, this.onopen = e?.onopen, this.onclose = e?.onclose, this.onerror = e?.onerror, this.reconnect = typeof e?.reconnect == \"boolean\" ? e.reconnect : !0, this.maxReconnectAttempts = typeof e?.maxReconnectAttempts == \"number\" ? e.maxReconnectAttempts : 1 / 0, this._connect();\n  }\n  open() {\n    this.reconnectAttempts = 0, this._connect();\n  }\n  close() {\n    this.state = pe.CLOSING, this.socket?.close();\n  }\n  _connect() {\n    this.socket?.readyState === pe.CONNECTING || this.socket?.readyState === pe.OPEN || (this.state = pe.CONNECTING, this.socket = this.socketCreator(\n      this.url,\n      this.socketCreatorProtocols,\n      this.socketCreatorOptions\n    ), this.socket.onopen = () => {\n      ae(`(${this.url}) onopen`), this.state = pe.OPEN, this.reconnectTimerID && (clearTimeout(this.reconnectTimerID), this.reconnectTimerID = void 0);\n      const t = this.messageQueue.slice();\n      this.messageQueue = [], t.forEach(this._send.bind(this)), this.ping(), this.pingTimerID = setInterval(this.ping.bind(this), this.pingInterval), this.onopen?.();\n    }, this.socket.onclose = (t) => {\n      const { code: e, reason: s, wasClean: i } = t;\n      ae(\n        `(${this.url}) onclose: code(${e}) reason(${s}) wasClean(${i})`\n      ), this.state = pe.CLOSED, this.socket = void 0, this.pingTimerID && (clearInterval(this.pingTimerID), this.pingTimerID = void 0), this.onclose?.(t), this.reconnect && this.reconnectAttempts < this.maxReconnectAttempts && (this.reconnectTimerID = setTimeout(\n        this._connect.bind(this),\n        lh(this.reconnectAttempts++)\n      ));\n    }, this.socket.onerror = (t) => {\n      ae(`(${this.url}) onerror: ${t}`), this.onerror?.(t);\n    }, this.socket.onmessage = (t) => {\n      if (ae(`(${this.url}) onmessage: { type: ${t.type}, data: ${t.data} }`), typeof t.data == \"string\") {\n        let e;\n        const s = t.data.substring(1);\n        try {\n          e = JSON.parse(s);\n        } catch (i) {\n          e = [\n            JSON.stringify({\n              type: \"err\",\n              failureCode: \"fe-json-parse-error\",\n              failureType: i.toString(),\n              message: s\n            })\n          ];\n        }\n        e.forEach((i) => {\n          const r = JSON.parse(i);\n          if (r.body && Object.prototype.hasOwnProperty.call(r.body, \"requestid\")) {\n            const o = this.waitings[r.body.requestid];\n            o ? o.resolve?.(r.body) : kn(\n              `(${this.url}) onmessage: found no associated request, already timed out`\n            );\n          } else if (this.listeners[r.address]) {\n            const o = this.listeners[r.address];\n            for (let a = 0; a < o.length; a++)\n              r.type === \"err\" ? o[a]({\n                failureCode: r.failureCode,\n                failureType: r.failureType,\n                message: r.message\n              }) : o[a](null, r.body);\n          } else\n            this.onunhandled(r);\n        });\n      } else\n        t.data instanceof ArrayBuffer ? kn(`(${this.url}) onmessage: unhandle ArrayBuffer`) : t.data instanceof Blob && kn(`(${this.url}) onmessage: unhandle Blob`);\n    });\n  }\n  onunhandled(t) {\n    try {\n      t.type === \"err\" ? this.onerror?.(t) : t.event ? console.warn(\n        \"No handler found for event: %o. Message: %O\",\n        t.event,\n        t\n      ) : console.warn(\"No handler found for message: \", t);\n    } catch {\n    }\n  }\n  // 可能需要根据协议变更传输格式\n  _send(t) {\n    this.socket?.readyState === pe.OPEN ? this.socket.send(JSON.stringify([JSON.stringify(t)])) : (this.messageQueue.push(t), this._connect());\n  }\n  ping() {\n    this._send({ type: \"ping\" });\n  }\n  // 注册监听\n  register(t, e, s = {}) {\n    this.listeners[t] || (this.listeners[t] = [], this._send({\n      type: \"register\",\n      address: t,\n      headers: is(\n        s,\n        this.socketCreatorOptions.headers,\n        !1\n      )\n    })), this.listeners[t].push(e);\n  }\n  // 取消注册监听\n  unregister(t, e, s = {}) {\n    const i = this.listeners[t];\n    if (i) {\n      const r = i.indexOf(e);\n      r != -1 && (i.splice(r, 1), i.length === 0 && (this._send({\n        type: \"unregister\",\n        address: t,\n        headers: is(\n          s,\n          this.socketCreatorOptions.headers,\n          !1\n        )\n      }), delete this.listeners[t]));\n    }\n  }\n  // 广播\n  publish(t, e, s = {}) {\n    this._send({\n      type: \"publish\",\n      address: t,\n      headers: is(\n        s,\n        this.socketCreatorOptions.headers,\n        !1\n      ),\n      body: e\n    });\n  }\n  // 普通发送，等待回应\n  async send(t, e, s = {}, i = 3e4) {\n    this.requestid++;\n    const r = this.waitings[this.requestid] = {\n      requestid: this.requestid\n    }, o = await new Promise((a, h) => {\n      r.resolve = a, this._send({\n        type: \"send\",\n        address: t,\n        headers: is(\n          s,\n          this.socketCreatorOptions.headers,\n          !1\n        ),\n        body: {\n          requestid: r.requestid,\n          ...e\n        }\n      }), setTimeout(() => {\n        h(\n          `(${this.url}) send(${r.requestid}: ${Ve(\n            e\n          )}) Timeout!`\n        );\n      }, i);\n    });\n    return delete this.waitings[r.requestid], o;\n  }\n}\nfunction lo() {\n  const n = navigator.userAgent.toLowerCase();\n  let t = \"Unknown\";\n  return /iphone|ipad|ipod/i.test(n) ? t = \"iOS\" : /android/i.test(n) ? t = \"Android\" : /BlackBerry/i.test(n) ? t = \"BlackBerry\" : /mac/i.test(n) ? t = \"macOS\" : /win/i.test(n) ? t = \"Windows\" : /linux/i.test(n) ? t = \"Linux\" : /bsd/i.test(n) && (t = \"BSD\"), t.toLowerCase();\n}\nfunction t2(n = navigator.userAgent) {\n  let t = \"Unknown\";\n  if (/iPhone|iPad|iPod/i.test(n)) {\n    const e = n.match(/OS (\\d+_\\d+)/i);\n    e && (t = e[1].replace(\"_\", \".\"));\n  } else if (/Android/i.test(n)) {\n    const e = n.match(/Android (\\d+\\.\\d+)/i);\n    e && (t = e[1]);\n  } else if (/Mac OS X/i.test(n)) {\n    const e = n.match(/Mac OS X (\\d+_\\d+)/i);\n    e && (t = e[1].replace(\"_\", \".\"));\n  } else if (/Windows NT/i.test(n)) {\n    const e = n.match(/Windows NT (\\d+\\.\\d+)/i);\n    e && (t = e[1]);\n  }\n  return t.toLowerCase();\n}\nfunction uo() {\n  const n = navigator.userAgent.toLowerCase();\n  let t = \"Unknown\";\n  return /opr/i.test(n) || /opera/i.test(n) ? t = \"Opera\" : /chrome/i.test(n) ? t = \"Chrome\" : /firefox/i.test(n) ? t = \"Firefox\" : /safari/i.test(n) ? t = \"Safari\" : /edge/i.test(n) ? t = \"Edge\" : /msie|trident/i.test(n) ? t = \"IE\" : /MicroMessenger/i.test(n) ? t = \"Wechat\" : /alipay/i.test(n) && (t = \"Ali\"), t.toLowerCase();\n}\nfunction e2() {\n  const n = navigator.userAgent;\n  let t = \"Unknown\";\n  if (/Chrome/.test(n)) {\n    const e = n.match(/Chrome\\/(\\d+\\.\\d+)/);\n    e && (t = e[1]);\n  } else if (/Firefox/.test(n)) {\n    const e = n.match(/Firefox\\/(\\d+\\.\\d+)/);\n    e && (t = e[1]);\n  } else if (/Safari/.test(n)) {\n    const e = n.match(/Version\\/(\\d+\\.\\d+)/);\n    e && (t = e[1]);\n  } else if (/Edge/.test(n)) {\n    const e = n.match(/Edge\\/(\\d+\\.\\d+)/);\n    e && (t = e[1]);\n  } else if (/MSIE|Trident/.test(n)) {\n    const e = n.match(/(?:MSIE|rv:)(\\d+\\.\\d+)/);\n    e && (t = e[1]);\n  }\n  return t;\n}\nfunction s2() {\n  return (navigator.browserLanguage || navigator.language).toLowerCase();\n}\nfunction n2() {\n  return Intl.DateTimeFormat().resolvedOptions().timeZone.toLowerCase();\n}\nfunction i2() {\n  return uo() == \"safari\";\n}\nfunction zl() {\n  return lo() === \"ios\";\n}\nfunction Fg() {\n  return lo() === \"macos\";\n}\nfunction r2() {\n  return zl() | Fg();\n}\nfunction Ug() {\n  return lo() === \"android\";\n}\nfunction o2() {\n  const n = window.navigator.appVersion;\n  if (/Android/.test(n) && !/Chrome\\/\\d/.test(n)) {\n    const t = n.match(/Safari\\/(\\d+.\\d)/);\n    return t && typeof t == \"object\" && t.length >= 2 ? parseFloat(t[1]) < 535.19 : !0;\n  } else\n    return !1;\n}\nfunction a2() {\n  return zl() || Ug();\n}\nfunction Gg() {\n  const n = window.navigator.userAgent, t = n.indexOf(\"MSIE \");\n  if (t > 0)\n    return parseInt(n.substring(t + 5, n.indexOf(\".\", t)), 10);\n  if (n.indexOf(\"Trident/\") > 0) {\n    const i = n.indexOf(\"rv:\");\n    return parseInt(n.substring(i + 3, n.indexOf(\".\", i)), 10);\n  }\n  const s = n.indexOf(\"Edge/\");\n  return s > 0 ? parseInt(n.substring(s + 5, n.indexOf(\".\", s)), 10) : -1;\n}\nconst h2 = Gg() !== -1, c2 = document.documentMode ? document.documentMode === 9 : !1, l2 = document.documentMode ? document.documentMode === 10 : !1, u2 = document.documentMode ? document.documentMode === 11 : !1;\nfunction Vg() {\n  return uo() === \"wechat\";\n}\nfunction $g() {\n  return uo() === \"ali\";\n}\nfunction f2() {\n  return Vg() && navigator.userAgent.match(/miniprogram/i) || window.__wxjs_environment === \"miniprogram\";\n}\nfunction d2() {\n  return $g() && navigator.userAgent.match(/miniprogram/i);\n}\nfunction m2(n = 750) {\n  const t = document.documentElement, e = window.top === window.self ? window.devicePixelRatio : 1;\n  t.dataset.dpr = e;\n  let s = 100;\n  const i = function() {\n    t.style.height = window.innerHeight + \"px\";\n    const r = t.clientWidth;\n    t.dataset.width = r, t.dataset.layout = r > n ? \"pc\" : \"mobile\", t.dataset.rem = s = Math.min(\n      100,\n      Math.round(100 * (r / n))\n    ), t.style.fontSize = s + \"px\";\n  };\n  i(), window.rem2px = function(r) {\n    return parseFloat(r) * s;\n  }, window.px2rem = function(r) {\n    return parseFloat(r) / s;\n  }, window.addEventListener && window.addEventListener(\n    \"orientationchange\" in window ? \"orientationchange\" : \"resize\",\n    i,\n    !1\n  );\n}\nclass p2 extends cl {\n  currentItem = {};\n  items = [];\n  groups = [];\n  globalStyles = {};\n  grad = {};\n  idtops = {};\n  text = \"\";\n  constructor(t) {\n    super(t), this.on(\"tag\", (e, s) => {\n      switch (this.text = \"\", this.currentItem = { type: e }, e) {\n        case \"g\":\n          this.groups.push(this.currentItem);\n          break;\n      }\n      this.processAttrs(e, s);\n    }), this.on(\"text\", (e) => {\n      if (this.currentItem.type == \"style\") {\n        try {\n          const s = ll(e);\n          for (const i of s.stylesheet.rules)\n            for (const r of i.declarations)\n              for (const o of i.selectors)\n                this.globalStyles[o] = this.globalStyles[o] || [], this.globalStyles[o].push(\n                  `${r.property}:${r.value}`\n                );\n        } catch {\n          console.error(\"CAN'T parse css text: \" + e);\n        }\n        return;\n      }\n      this.text += e;\n    }), this.on(\"/tag\", (e, s) => {\n      let i = this.groups.length;\n      for (; i--; )\n        if (this.groups[i] != this.currentItem) {\n          let r = \"\", o = \"\";\n          for (const a in this.groups[i])\n            a == \"transform\" ? r = this.groups[i].transform : a == \"class\" && this.globalStyles[\".\" + this.groups[i][a]] ? o = this.globalStyles[\".\" + this.groups[i][a]].join(\";\") + \";\" + o : a == \"id\" && this.globalStyles[\"#\" + this.groups[i][a]] ? o = this.globalStyles[\"#\" + this.groups[i][a]].join(\";\") + \";\" + o : typeof this.currentItem[a] > \"u\" && (this.currentItem[a] = this.groups[i][a]);\n          typeof this.currentItem.transform > \"u\" ? this.currentItem.transform = r : this.currentItem.transform += \" \" + r, typeof this.currentItem.style > \"u\" ? this.currentItem.style = o : this.currentItem.style = o + this.currentItem.style, this.currentItem.class && this.globalStyles[\".\" + this.currentItem.class] ? this.currentItem.style = this.globalStyles[\".\" + this.currentItem.class].join(\";\") + \";\" + this.currentItem.style : this.currentItem.id && this.globalStyles[\"#\" + this.currentItem.id] && (this.currentItem.style = this.globalStyles[\"#\" + this.currentItem.id].join(\";\") + \";\" + this.currentItem.style), Ui(\n            this.currentItem.style,\n            this.currentItem,\n            Gi\n          );\n        }\n      switch (this.processAttrs(e, s), e) {\n        case \"g\":\n          this.groups.pop();\n          break;\n        case \"cirlce\":\n          this.addToItems();\n          break;\n        case \"ellipse\":\n          this.addToItems();\n          break;\n        case \"polygon\":\n          this.addToItems();\n          break;\n        case \"path\":\n          this.addToItems();\n          break;\n        case \"line\":\n          this.addToItems();\n          break;\n        case \"rect\":\n          this.addToItems();\n          break;\n        case \"image\":\n          this.addToItems();\n          break;\n        case \"text\":\n          this.currentItem.text = this.text, this.currentItem[\"text-anchor\"] = this.currentItem[\"text-anchor\"] || \"start\", this.addToItems();\n          break;\n      }\n    }), this.on(\"finish\", () => {\n      this.emit(\"result\", this.items);\n    });\n  }\n  parse() {\n    return super.parse(), this.items;\n  }\n  processAttrs(t, e) {\n    let s = [], i;\n    switch (t) {\n      case \"svg\":\n        let r = \"\", o = \"\";\n        if (e.width && e.height)\n          r = e.width, o = e.height;\n        else if (e.viewBox) {\n          const a = e.viewBox.split(/\\s+/gi);\n          a.length == 4 && (r = String(parseFloat(a[2]) - parseFloat(a[0])), o = String(parseFloat(a[3]) - parseFloat(a[1])));\n        }\n        r && o && this.items.push({\n          type: \"viewbox\",\n          width: r,\n          height: o\n        });\n        break;\n      case \"line\":\n        typeof e.x1 == \"number\" && typeof e.y1 == \"number\" && typeof e.x2 == \"number\" && typeof e.y2 == \"number\" && (this.currentItem.path = \"M\" + [e.x1, e.y1, e.x2, e.y2]);\n        break;\n      case \"stop\":\n        i = {}, e.style && Ui(e.style, i), i.offset = i.offset || e.offset, i.color = i[\"stop-color\"] || e[\"stop-color\"], i.opacity = i[\"stop-opacity\"] || e[\"stop-opacity\"], ~(i.offset + \"\").indexOf(\"%\") ? i.offset = parseFloat(i.offset) : i.offset = parseFloat(i.offset) * 100, i.offset = +i.offset.toFixed(2), this.grad.stops.push(i);\n        break;\n      case \"linearGradient\":\n        this.grad.angle = (360 + Er(\n          parseFloat(e.x1),\n          parseFloat(e.y1),\n          parseFloat(e.x2),\n          parseFloat(e.y2),\n          parseFloat(e.x1) + 100,\n          parseFloat(e.y1)\n        )).toFixed(2), s = [this.grad.angle];\n        for (let a = 0, h = this.grad.stops.length; a < h; a++)\n          i = this.grad.stops[a], a && a != h - 1 ? s.push(i.color + \":\" + i.offset) : s.push(i.color);\n        this.idtops[this.grad.id] = s.join(\"-\"), this.items.forEach((a) => {\n          a.fillid == this.grad.id && (a.fill = this.idtops[this.grad.id]);\n        });\n        break;\n      case \"radialGradient\":\n        s = [];\n        for (let a = 0, h = this.grad.stops.length; a < h; a++)\n          i = this.grad.stops[a], a && a != h - 1 ? s.push(i.color + \":\" + i.offset) : s.push(i.color);\n        this.idtops[this.grad.id] = s.join(\"-\"), this.items.forEach((a) => {\n          a.fillid == this.grad.id && (a.fill = this.idtops[this.grad.id]);\n        });\n        break;\n    }\n    for (const r in e) {\n      const o = e[r];\n      if (Gi.includes(r) && (this.currentItem[r] = o), r === \"id\" && (this.currentItem.type === \"linearGradient\" && (this.grad = {\n        id: r,\n        stops: []\n      }), this.currentItem.type === \"radialGradient\" && (this.grad = {\n        id: r,\n        stops: []\n      })), r === \"style\" && Ui(o, this.currentItem, Gi), r === \"transform\" && (this.currentItem.transform = o + (this.currentItem.transform || \" \")), r === \"fill\") {\n        const a = o.match(/url\\(#([^)]+)\\)/);\n        if (a) {\n          const h = a[1];\n          this.currentItem.fillid = h, this.idtops[h] && (this.currentItem.fill = this.idtops[h]);\n        }\n      }\n      r === \"points\" && this.currentItem.type == \"polygon\" && (this.currentItem.path = \"M\" + o + \"z\"), r === \"d\" && this.currentItem.type == \"path\" && (this.currentItem.path = o), r === \"xlink:href\" && this.currentItem.type == \"image\" && (this.currentItem.src = o);\n    }\n  }\n  addToItems() {\n    this.items.push(this.currentItem);\n  }\n}\nfunction Er(n, t, e, s, i, r) {\n  if (typeof i > \"u\" || typeof r > \"u\") {\n    const o = n - e, a = t - s;\n    return !o && !a ? 0 : (180 + Math.atan2(-a, -o) * 180 / Math.PI + 360) % 360;\n  } else\n    return Er(n, t, i, r) - Er(e, s, i, r);\n}\nfunction Ui(n, t, e) {\n  const s = (n + \"\").split(\";\"), i = /^\\s+|\\s+$/g;\n  for (let r = 0, o = s.length; r < o; r++) {\n    const a = s[r].split(\":\"), h = a[0].replace(i, \"\").replace(/[A-Z]/g, function(c) {\n      return \"-\" + c.toLowerCase();\n    });\n    (!e || e.includes(h)) && (t[h] = a[1].replace(i, \"\"));\n  }\n}\nconst Gi = [\n  \"id\",\n  \"class\",\n  \"viewBox\",\n  \"width\",\n  \"height\",\n  \"x\",\n  \"y\",\n  \"cx\",\n  \"cy\",\n  \"r\",\n  \"rx\",\n  \"ry\",\n  \"cursor\",\n  \"opacity\",\n  \"src\",\n  \"fill\",\n  \"fill-opacity\",\n  \"stroke\",\n  \"stroke-dasharray\",\n  \"stroke-linecap\",\n  \"stroke-linejoin\",\n  \"stroke-miterlimit\",\n  \"stroke-opacity\",\n  \"stroke-width\",\n  \"text-anchor\",\n  \"font\",\n  \"font-family\",\n  \"font-size\",\n  \"font-style\",\n  \"font-weight\",\n  \"letter-spacing\"\n];\nclass g2 {\n  localVideoUtil;\n  remoteVideoUtil;\n  localPeerConnection = null;\n  remotePeerConnection = null;\n  constructor(t, e) {\n    this.localVideoUtil = new jn(t), this.remoteVideoUtil = new jn(e);\n  }\n  start() {\n    this.getLocalMediaStream().then((t) => {\n      this.call(t);\n    });\n  }\n  end() {\n    this.localPeerConnection?.close(), this.remotePeerConnection?.close(), this.localPeerConnection = null, this.remotePeerConnection = null, this.trace(\"Ending call.\");\n  }\n  getLocalMediaStream() {\n    return new Promise((t, e) => {\n      navigator.mediaDevices.getUserMedia({\n        audio: !0,\n        video: !0\n      }).then((s) => {\n        this.localVideoUtil.setSrcObject(s), t(s);\n      }).catch((s) => {\n        this.trace(`navigator.getUserMedia error: ${s}.`), e(s);\n      });\n    });\n  }\n  gotRemoteMediaStream(t) {\n    const e = t.streams[0];\n    this.remoteVideoUtil.setSrcObject(e), this.trace(\"Remote peer connection received remote stream.\");\n  }\n  call(t) {\n    const e = t.getVideoTracks(), s = t.getAudioTracks();\n    e.length > 0 && this.trace(`Using video device: ${e[0].label}.`), s.length > 0 && this.trace(`Using audio device: ${s[0].label}.`);\n    const i = void 0, r = new RTCPeerConnection(i);\n    this.localPeerConnection = r, this.trace(\"Created local peer connection object localPeerConnection.\"), r.addEventListener(\"icecandidate\", this.handleConnection), r.addEventListener(\n      \"iceconnectionstatechange\",\n      this.handleConnectionChange\n    );\n    const o = new RTCPeerConnection(i);\n    this.remotePeerConnection = o, this.trace(\"Created remote peer connection object remotePeerConnection.\"), o.addEventListener(\n      \"icecandidate\",\n      this.handleConnection\n    ), o.addEventListener(\n      \"iceconnectionstatechange\",\n      this.handleConnectionChange\n    ), o.addEventListener(\"track\", this.gotRemoteMediaStream), this.trace(\"Add local localStream to localPeerConnection.\"), r.addTrack(e[0], t), r.addTrack(s[0], t), this.trace(\"localPeerConnection createOffer start.\"), r.createOffer({\n      offerToReceiveVideo: !0\n    }).then((a) => this.createdOffer(a)).catch((a) => this.setSessionDescriptionError(a));\n  }\n  handleConnection(t) {\n    const e = t.target, s = t.candidate;\n    if (e && s) {\n      const i = new RTCIceCandidate(s), r = this.getOtherPeer(e);\n      r && (r.addIceCandidate(i).then(() => {\n        this.handleConnectionSuccess(e);\n      }).catch((o) => {\n        this.handleConnectionFailure(e, o);\n      }), this.trace(\n        `${this.getPeerName(e)} ICE candidate:\n${t.candidate.candidate}.`\n      ));\n    }\n  }\n  handleConnectionSuccess(t) {\n    this.trace(`${this.getPeerName(t)} addIceCandidate success.`);\n  }\n  handleConnectionFailure(t, e) {\n    this.trace(\n      `${this.getPeerName(t)} failed to add ICE Candidate:\n${e.toString()}.`\n    );\n  }\n  handleConnectionChange(t) {\n    const e = t.target;\n    console.log(\"ICE state change event: \", t), e && this.trace(\n      `${this.getPeerName(e)} ICE state: ${e.iceConnectionState}.`\n    );\n  }\n  createdOffer(t) {\n    this.trace(`Offer from localPeerConnection:\n${t.sdp}`), this.localPeerConnection && (this.trace(\"localPeerConnection setLocalDescription start.\"), this.localPeerConnection.setLocalDescription(t).then(() => {\n      this.setLocalDescriptionSuccess(this.localPeerConnection);\n    }).catch((e) => this.setSessionDescriptionError(e))), this.remotePeerConnection && (this.trace(\"remotePeerConnection setRemoteDescription start.\"), this.remotePeerConnection.setRemoteDescription(t).then(() => {\n      this.setRemoteDescriptionSuccess(this.remotePeerConnection);\n    }).catch((e) => this.setSessionDescriptionError(e)), this.trace(\"remotePeerConnection createAnswer start.\"), this.remotePeerConnection.createAnswer().then((e) => this.createdAnswer(e)).catch((e) => this.setSessionDescriptionError(e)));\n  }\n  createdAnswer(t) {\n    this.trace(`Answer from remotePeerConnection:\n${t.sdp}.`), this.remotePeerConnection && (this.trace(\"remotePeerConnection setLocalDescription start.\"), this.remotePeerConnection.setLocalDescription(t).then(() => {\n      this.setLocalDescriptionSuccess(this.remotePeerConnection);\n    }).catch((e) => this.setSessionDescriptionError(e))), this.localPeerConnection && (this.trace(\"localPeerConnection setRemoteDescription start.\"), this.localPeerConnection.setRemoteDescription(t).then(() => {\n      this.setRemoteDescriptionSuccess(this.localPeerConnection);\n    }).catch((e) => this.setSessionDescriptionError(e)));\n  }\n  setSessionDescriptionError(t) {\n    this.trace(`Failed to create session description: ${t.toString()}.`);\n  }\n  setDescriptionSuccess(t, e) {\n    const s = this.getPeerName(t);\n    this.trace(`${s} ${e} complete.`);\n  }\n  setLocalDescriptionSuccess(t) {\n    this.setDescriptionSuccess(t, \"setLocalDescription\");\n  }\n  setRemoteDescriptionSuccess(t) {\n    this.setDescriptionSuccess(t, \"setRemoteDescription\");\n  }\n  trace(t) {\n    t = t.trim();\n    const e = (window.performance.now() / 1e3).toFixed(3);\n    console.log(e, t);\n    const s = document.createElement(\"div\");\n    s.innerHTML = `<div>${e}, ${t}</div>`, document.getElementById(\"trace\")?.appendChild(s);\n  }\n  getOtherPeer(t) {\n    return t === this.localPeerConnection ? this.remotePeerConnection : this.localPeerConnection;\n  }\n  getPeerName(t) {\n    return t === this.localPeerConnection ? \"localPeerConnection\" : \"remotePeerConnection\";\n  }\n}\nclass y2 {\n  canvas;\n  gl;\n  constructor(t) {\n    this.canvas = t;\n    const e = { alpha: !0, premultipliedAlpha: !1 };\n    if (this.gl = this.canvas.getContext(\"webgl\", e), !this.gl)\n      throw new Error(\"WebGL failed to initialize.\");\n  }\n}\nconst Nl = [], Ha = {};\nfunction Yl(n) {\n  Nl.push(n);\n}\nfunction x2(n, t = !1) {\n  const e = Pf();\n  if (Ha[e])\n    return;\n  wx.error((r) => {\n    console.log(r.errMsg || JSON.stringify(r));\n  }), wx.ready(() => {\n    Nl.forEach((r) => r());\n  });\n  const s = [\n    \"updateAppMessageShareData\",\n    \"updateTimelineShareData\",\n    \"onMenuShareWeibo\",\n    \"onMenuShareQZone\",\n    \"startRecord\",\n    \"stopRecord\",\n    \"onVoiceRecordEnd\",\n    \"playVoice\",\n    \"pauseVoice\",\n    \"stopVoice\",\n    \"onVoicePlayEnd\",\n    \"uploadVoice\",\n    \"downloadVoice\",\n    \"chooseImage\",\n    \"previewImage\",\n    \"uploadImage\",\n    \"downloadImage\",\n    \"getLocalImgData\",\n    \"translateVoice\",\n    \"getNetworkType\",\n    \"openLocation\",\n    \"getLocation\",\n    \"hideOptionMenu\",\n    \"showOptionMenu\",\n    \"hideMenuItems\",\n    \"showMenuItems\",\n    \"hideAllNonBaseMenuItem\",\n    \"showAllNonBaseMenuItem\",\n    \"closeWindow\",\n    \"scanQRCode\",\n    \"openProductSpecificView\",\n    \"addCard\",\n    \"chooseCard\",\n    \"openCard\"\n  ], i = [\n    \"wx-open-launch-app\",\n    \"wx-open-launch-app\",\n    \"wx-open-subscribe\",\n    \"wx-open-audio\"\n  ];\n  wx.config(\n    Object.assign(n, {\n      debug: t,\n      jsApiList: s,\n      openTagList: i\n    })\n  ), Ha[e] = !0;\n}\nfunction w2(n) {\n  return new Promise((t, e) => {\n    wx.checkJsApi({\n      jsApiList: [n],\n      success: function(s) {\n        s.checkResult[n] ? t(!0) : e(!1);\n      },\n      fail: function() {\n        e(!1);\n      }\n    });\n  });\n}\nfunction b2(n) {\n  Yl(function() {\n    wx.updateAppMessageShareData(n);\n  });\n}\nfunction v2(n) {\n  Yl(function() {\n    wx.updateTimelineShareData(n);\n  });\n}\nfunction _2(n) {\n  wx.chooseImage(n);\n}\nfunction S2(n) {\n  wx.previewImage(n);\n}\nfunction C2(n) {\n  wx.uploadImage(n);\n}\nfunction E2(n) {\n  wx.downloadImage(n);\n}\nfunction P2(n) {\n  wx.getLocalImgData(n);\n}\nfunction T2() {\n  wx.startRecord();\n}\nfunction M2(n) {\n  wx.stopRecord(n);\n}\nfunction A2(n) {\n  wx.onVoiceRecordEnd(n);\n}\nfunction I2(n) {\n  wx.playVoice(n);\n}\nfunction k2(n) {\n  wx.pauseVoice(n);\n}\nfunction D2(n) {\n  wx.stopVoice(n);\n}\nfunction L2(n) {\n  wx.onVoicePlayEnd(n);\n}\nfunction R2(n) {\n  wx.uploadVoice(n);\n}\nfunction O2(n) {\n  wx.downloadVoice(n);\n}\nfunction z2(n) {\n  wx.translateVoice(n);\n}\nfunction N2(n) {\n  wx.getNetworkType(n);\n}\nfunction Y2(n) {\n  wx.openLocation(n);\n}\nfunction B2(n) {\n  wx.getLocation(n);\n}\nfunction X2(n) {\n  wx.scanQRCode(n);\n}\nfunction F2(n, t, e) {\n  function s() {\n    WeixinJSBridge.invoke(\"getBrandWCPayRequest\", n, function(i) {\n      i.err_msg == \"get_brand_wcpay_request:ok\" ? t() : e(i.err_msg);\n    });\n  }\n  typeof WeixinJSBridge > \"u\" ? document.addEventListener ? document.addEventListener(\"WeixinJSBridgeReady\", s, !1) : document.attachEvent && (document.attachEvent(\"WeixinJSBridgeReady\", s), document.attachEvent(\"onWeixinJSBridgeReady\", s)) : s();\n}\nfunction U2(n, t, e = \"snsapi_userinfo\", s = \"\") {\n  return `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${n}&redirect_uri=${encodeURIComponent(\n    t\n  )}&response_type=code&scope=${e}&state=${s}#wechat_redirect`;\n}\nfunction G2(n) {\n  window.AlipayJSBridge ? n && n() : document.addEventListener(\"AlipayJSBridgeReady\", n, !1);\n}\nfunction nn(n, t) {\n  let e = \"未知错误\";\n  switch (n.error) {\n    case 1:\n      e = \"接口不存在\";\n      break;\n    case 2:\n      e = \"参数无效\";\n      break;\n    case 3:\n      e = \"发生未知错误\";\n      break;\n    case 4:\n      e = \"接口无权限\";\n      break;\n    case 10:\n      e = \"用户取消\";\n      break;\n    case 11:\n      e = \"操作失败\", t === \"chooseImage\" && (e = \"操作失败（权限不够）\");\n      break;\n    case 12:\n      e = \"GPS打开，但定位失败\";\n      break;\n    case 13:\n      e = \"获取地理位置信息失败\";\n      break;\n    case 14:\n      e = \"定位超时\";\n      break;\n    case 15:\n      e = \"网络错误\";\n      break;\n    case 16:\n      e = \"GPS未打开或用户未授权\";\n      break;\n  }\n  return `${n.error}(${e}): ${n.errorMessage}`;\n}\nfunction V2(n, t, e) {\n  ap.tradePay(\n    Object.assign(n, {\n      // fail: (res: commonFailOption) => {\n      //   errorCb?.(aliJsFormatCommonFailMessage(res));\n      // }\n    }),\n    function(s) {\n      let i = \"未知错误\";\n      switch (s.resultCode) {\n        case 9e3:\n          return i = \"订单支付成功\", t?.(i);\n        case 8e3:\n          i = \"正在处理中\";\n          break;\n        case 4e3:\n          i = \"订单支付失败\";\n          break;\n        case 6001:\n          i = \"用户中途取消\";\n          break;\n        case 6002:\n          i = \"网络连接出错\";\n          break;\n        case 99:\n          i = \"用户点击忘记密码导致快捷界面退出(only iOS)\";\n          break;\n      }\n      e?.(i);\n    }\n  );\n}\nfunction $2(n, t, e) {\n  ap.scan(\n    Object.assign(n, {\n      fail: (s) => {\n        e?.(nn(s));\n      }\n    }),\n    function(s) {\n      t?.(s.code);\n    }\n  );\n}\nfunction q2(n, t, e) {\n  ap.getLocation(\n    Object.assign(n, {\n      fail: (s) => {\n        e?.(nn(s));\n      }\n    }),\n    function(s) {\n      t?.(s);\n    }\n  );\n}\nfunction j2(n, t, e) {\n  ap.openLocation(\n    Object.assign(n, {\n      fail: (s) => {\n        e?.(nn(s));\n      }\n    }),\n    function() {\n      t?.();\n    }\n  );\n}\nfunction H2(n, t, e) {\n  ap.chooseImage(\n    Object.assign(n, {\n      fail: (s) => {\n        e?.(nn(s, \"chooseImage\"));\n      }\n    }),\n    function(s) {\n      t?.(s);\n    }\n  );\n}\nfunction W2(n, t, e) {\n  ap.previewImage(\n    Object.assign(n, {\n      fail: (s) => {\n        e?.(nn(s));\n      }\n    }),\n    function() {\n      t?.();\n    }\n  );\n}\nclass Z2 {\n  map;\n  constructor(t, e = 120.619585, s = 31.299379, i = 18) {\n    this.map = new T.Map(t), this.map.centerAndZoom(new T.LngLat(e, s), i);\n  }\n}\nconst Vt = window.crypto.subtle;\nasync function qg(n, t = Hs.SHA256) {\n  if (!Vt)\n    throw new Error(\"Crypto API not supported\");\n  const e = await Vt.digest(\n    t,\n    kr(n)\n  );\n  return ah(e);\n}\nasync function J2(n, t = Hs.SHA256) {\n  return qg(JSON.stringify(Ru(n)), t);\n}\nasync function K2(n, t = Hs.AESGCM) {\n  if (!Vt)\n    throw new Error(\"Crypto API not supported\");\n  const e = crypto.getRandomValues(new Uint8Array(12)), s = await Vt.generateKey(\n    { name: t, length: 256 },\n    !1,\n    // defines key as extractable, use false b/c we do not need to store it\n    [\"encrypt\", \"decrypt\"]\n  ), i = await Vt.encrypt(\n    { name: t, iv: e },\n    s,\n    kr(n)\n  );\n  return { algorithm: t, iv: e, key: s, encryptedData: i };\n}\nasync function Q2(n) {\n  if (!Vt)\n    throw new Error(\"Crypto API not supported\");\n  const t = await Vt.decrypt(\n    {\n      name: n.algorithm,\n      iv: n.iv\n    },\n    n.key,\n    n.encryptedData\n  );\n  return ah(t);\n}\nasync function tb(n, t = Hs.ECDSA, e = \"SHA-384\") {\n  if (!Vt)\n    throw new Error(\"Crypto API not supported\");\n  const { privateKey: s, publicKey: i } = await Vt.generateKey(\n    {\n      name: t,\n      namedCurve: \"P-384\"\n    },\n    !1,\n    // defines key as extractable, use false b/c we do not need to store it\n    [\"sign\", \"verify\"]\n  ), r = kr(\n    JSON.stringify(n)\n  ), o = await Vt.sign(\n    {\n      name: t,\n      hash: { name: e }\n    },\n    s,\n    r\n  );\n  return {\n    algorithm: t,\n    hash: e,\n    publicKey: i,\n    signature: o,\n    encodedData: r\n  };\n}\nasync function eb(n) {\n  if (!Vt)\n    throw new Error(\"Crypto API not supported\");\n  return await Vt.verify(\n    {\n      name: n.algorithm,\n      hash: { name: n.hash }\n    },\n    n.publicKey,\n    n.signature,\n    n.encodedData\n  );\n}\nclass sb {\n  /// 当前页数，从0开始\n  currentPage;\n  /// 每页item数量\n  itemsPerPage;\n  /// page中间连续的个数\n  entriesInterval;\n  /// page边缘个数\n  entriesEdge;\n  linkTo;\n  prevText;\n  nextText;\n  ellipseText;\n  prevShowAlways;\n  nextShowAlways;\n  callback;\n  totalPages;\n  parentVNode;\n  constructor(t, e, s) {\n    this.currentPage = s?.currentPage || 0, this.itemsPerPage = s?.itemsPerPage || 10, this.entriesInterval = s?.entriesInterval || 5, this.entriesEdge = s?.entriesEdge || 1, this.linkTo = s?.linkTo || \"javascript:;\", this.prevText = s?.prevText || \"上一页\", this.nextText = s?.nextText || \"下一页\", this.ellipseText = s?.ellipseText || \"...\", this.prevShowAlways = typeof s?.prevShowAlways == \"boolean\" ? s?.prevShowAlways : !0, this.nextShowAlways = typeof s?.nextShowAlways == \"boolean\" ? s?.nextShowAlways : !0, this.callback = s?.callback || ((i) => !1), this.totalPages = Math.ceil(e / this.itemsPerPage), this.parentVNode = this.createParentVNode(), Bs(this.parentVNode, t), this.selectPage(this.currentPage);\n  }\n  createParentVNode() {\n    return ns(\"div\", { class: \"pagination\" }, []);\n  }\n  appendVNode(t, e, s) {\n    e = e < 0 ? 0 : e < this.totalPages ? e : this.totalPages - 1;\n    const i = s?.text || String(e + 1), r = s?.classes || \"\";\n    t.children.push(\n      e == this.currentPage && r.indexOf(\"prev\") == -1 && r.indexOf(\"next\") == -1 ? ns(\"span\", { class: `current ${r}` }, i) : ns(\n        \"a\",\n        {\n          class: r,\n          href: this.linkTo.replace(/__id__/, String(e)),\n          onClick: (o) => this.selectPage(e, o)\n        },\n        i\n      )\n    );\n  }\n  drawLinks() {\n    const t = this.createParentVNode(), e = Math.ceil(this.entriesInterval / 2), s = this.currentPage > e ? Math.max(\n      Math.min(\n        this.currentPage - e,\n        this.totalPages - this.entriesInterval\n      ),\n      0\n    ) : 0, i = this.currentPage > e ? Math.min(this.currentPage + e, this.totalPages) : Math.min(this.entriesInterval, this.totalPages);\n    if (this.prevText && (this.currentPage > 0 || this.prevShowAlways) && this.appendVNode(t, this.currentPage - 1, {\n      text: this.prevText,\n      classes: \"prev\"\n    }), s > 0 && this.entriesEdge > 0) {\n      const r = Math.min(this.entriesEdge, s);\n      for (let o = 0; o < r; o++)\n        this.appendVNode(t, o);\n      this.entriesEdge < s && this.ellipseText && t.children.push(\n        ns(\"span\", {}, this.ellipseText)\n      );\n    }\n    for (let r = s; r < i; r++)\n      this.appendVNode(t, r);\n    if (i < this.totalPages && this.entriesEdge > 0) {\n      this.totalPages - this.entriesEdge > i && this.ellipseText && t.children.push(\n        ns(\"span\", {}, this.ellipseText)\n      );\n      const r = Math.max(this.totalPages - this.entriesEdge, i);\n      for (let o = r; o < this.totalPages; o++)\n        this.appendVNode(t, o);\n    }\n    this.nextText && (this.currentPage < this.totalPages - 1 || this.nextShowAlways) && this.appendVNode(t, this.currentPage + 1, {\n      text: this.nextText,\n      classes: \"next\"\n    }), co(this.parentVNode, t), this.parentVNode = t;\n  }\n  selectPage(t, e) {\n    this.currentPage = t = t < 0 ? 0 : t < this.totalPages ? t : this.totalPages - 1, this.drawLinks();\n    const s = this.callback(t);\n    return e && (s || gc(e)), s;\n  }\n  prevPage() {\n    return this.selectPage(this.currentPage - 1);\n  }\n  nextPage() {\n    return this.selectPage(this.currentPage + 1);\n  }\n}\nclass nb {\n  static;\n  store;\n  eb;\n  // 多对多\n  axios;\n  ds;\n  constructor(t = {}) {\n    this.static = t.static || {};\n    const e = t.store?.state || {};\n    this.store = gh({\n      reducer: t.store?.reducer || (() => e),\n      initState: e,\n      enhancer: t.store?.enhancer,\n      immutable: typeof t.store?.immutable == \"boolean\" ? t.store?.immutable : !0\n    }), this.eb = new Qn(), this.axios = new Xh({\n      baseURL: t.axios?.baseURL,\n      timeout: t.axios?.timeout,\n      headers: t.axios?.headers,\n      responseType: t.axios?.responseType,\n      responseEncoding: t.axios?.responseEncoding,\n      interceptor: t.axios?.interceptor,\n      retry: t.axios?.retry,\n      cache: t.axios?.cache\n    }), this.ds = new Cf({ concurrency: 1 });\n  }\n}\nclass ib {\n  appId;\n  reportUrl;\n  constructor(t) {\n    this.appId = t.appId, this.reportUrl = t.reportUrl, this.listenJSError(), this.listenAssetsError(), this.listenPromiseError(), t.checkWhiteScreen && this.listenWhiteScreenError();\n  }\n  // 捕获绝大多数运行时错误\n  listenJSError() {\n    window.onerror = (t, e, s, i, r) => {\n      const o = {\n        type: \"js_error\",\n        msg: t,\n        file: e,\n        row: s,\n        col: i,\n        stack: r?.stack\n      };\n      this.report(o);\n    };\n  }\n  // 资源加载错误\n  listenAssetsError() {\n    window.addEventListener(\n      \"error\",\n      (t) => {\n        const e = t.target;\n        if (e instanceof HTMLScriptElement || e instanceof HTMLStyleElement || e instanceof HTMLImageElement) {\n          const s = {\n            type: \"resource_error\",\n            filename: e.src || e.href,\n            tagName: e.tagName\n          };\n          this.report(s);\n        }\n      },\n      !0\n      // 资源错误不会冒泡\n    );\n  }\n  // Promise 报错\n  listenPromiseError() {\n    window.addEventListener(\n      \"unhandledrejection\",\n      (t) => {\n        const e = {\n          type: \"promise_error\",\n          reason: t.reason\n        };\n        this.report(e);\n      }\n    );\n  }\n  // 白屏检测\n  listenWhiteScreenError() {\n    Yc(() => {\n      setTimeout(() => {\n        const t = [\n          [window.innerWidth / 2, window.innerHeight / 2],\n          // 中心点\n          [window.innerWidth / 2, window.innerHeight * 0.2],\n          // 上\n          [window.innerWidth / 2, window.innerHeight * 0.8],\n          // 下\n          [window.innerWidth * 0.2, window.innerHeight / 2],\n          // 左\n          [window.innerWidth * 0.8, window.innerHeight / 2]\n          // 右\n          // ... 可以多取几个点\n        ];\n        let e = 0;\n        if (t.forEach((s) => {\n          const [i, r] = s, a = document.elementsFromPoint(i, r)[0];\n          (a?.tagName === \"BODY\" || a?.tagName === \"HTML\") && e++;\n        }), e >= t.length * 0.8) {\n          const s = {\n            type: \"whitescreen_error\",\n            reason: \"检测到白屏！\"\n          };\n          this.report(s);\n        }\n      }, 3e3);\n    });\n  }\n  // 数据上报：别用 AJAX\n  // 如果页面正在关闭或卸载（用户看到白屏气得关网页），AJAX 请求很可能会被浏览器切断（Canceled），导致上报失败\n  // 标准方案：navigator.sendBeacon\n  // 不占用主线程：它把数据放入浏览器的传输队列，浏览器会在空闲时发送。\n  // 页面关闭也能发：即使用户强制关闭 Tab，浏览器也会保证把这条请求发出去。\n  report(t) {\n    const e = JSON.stringify({\n      ...t,\n      appId: this.appId,\n      time: Vu()\n    });\n    console.error(e), this.reportUrl && navigator.sendBeacon(this.reportUrl, e);\n  }\n}\nexport {\n  yl as ArrowShape,\n  js as BallShape,\n  Cc as BezierEasing,\n  Le as BufferAttribute,\n  Tn as COLOR_NAMES,\n  fy as CSSToJSEasing,\n  ma as Clock,\n  Ft as Color,\n  ml as ColorManagement,\n  fw as CommonKeyCode,\n  Al as ConfettiShapeCombo,\n  nb as Context,\n  Sl as CrossShape,\n  pl as CurveShape,\n  h0 as CustomCanvasContext,\n  zi as CustomCanvasGradient,\n  va as CustomCanvasPattern,\n  cl as DOMParse,\n  rs as DOMSVGUtil,\n  Vh as DOMToBlob,\n  Gh as DOMToString,\n  jn as DOMVideo,\n  Tw as DrawContext,\n  O as Easing,\n  Cl as EllipseShape,\n  sy as FileUpload,\n  g1 as Float32BufferAttribute,\n  vl as FoxShape,\n  xl as HeartShape,\n  wl as HeartVariantShape,\n  f1 as Int16BufferAttribute,\n  m1 as Int32BufferAttribute,\n  c1 as Int8BufferAttribute,\n  Ae as Interpolation,\n  dw as Key,\n  ls as LineShape,\n  fl as LinearSRGBColorSpace,\n  cs as LinearToSRGB,\n  dl as LinearTransfer,\n  Be as Ls,\n  Kw as MVVM,\n  _t as Matrix,\n  zc as Matrix2,\n  en as Matrix3,\n  Ot as Matrix4,\n  Pg as NoColorSpace,\n  sb as Pagination,\n  Sr as PointsShape,\n  Ue as QRCode,\n  _l as RabbitShape,\n  Ze as RectShape,\n  Ml as RingIndicatorShapeCombo,\n  Wn as RingShape,\n  os as SRGBColorSpace,\n  hs as SRGBToLinear,\n  _r as SRGBTransfer,\n  p2 as SVGParse,\n  bn as SVGParsedPathArgsLength,\n  Pl as SegmentShapeCombo,\n  Q as Shape,\n  Nt as ShapeCombo,\n  El as ShipShapeCombo,\n  Tl as SliderShapeCombo,\n  bl as StarShape,\n  my as TWEEN,\n  Rs as TextShape,\n  li as Timeline,\n  gl as TreeShapeCombo,\n  Tc as Tween,\n  d1 as Uint16BufferAttribute,\n  p1 as Uint32BufferAttribute,\n  l1 as Uint8BufferAttribute,\n  u1 as Uint8ClampedBufferAttribute,\n  ui as Vector2,\n  jt as Vector3,\n  Rc as Vector4,\n  _n as WebGLCoordinateSystem,\n  y2 as WebGLRenderer,\n  Ca as WebGPUCoordinateSystem,\n  ib as WebMonitor,\n  g2 as WebRTCClient,\n  pe as WebSocketClient,\n  _a as YZCanvasContext,\n  Pe as __color,\n  ex as addClass,\n  Hy as addWatermark,\n  Yl as addWxJsReadyFnBeforeConfig,\n  R0 as ajax,\n  H2 as aliJsChooseImage,\n  q2 as aliJsGetLocation,\n  j2 as aliJsOpenLocation,\n  W2 as aliJsPreviewImage,\n  G2 as aliJsReady,\n  $2 as aliJsScan,\n  V2 as aliJsTradePay,\n  qt as angle,\n  w1 as animate,\n  Ew as animateShapes,\n  Hx as animationEnd$,\n  jx as animationStart$,\n  B0 as atomReadAttribute,\n  Wc as atomReadAttributes,\n  lx as atomReadStyle,\n  jc as atomReadStyles,\n  fx as atomRemoveAttribute,\n  Yw as atomRemoveDataset,\n  Hc as atomRemoveStyle,\n  ds as atomWriteAttribute,\n  di as atomWriteStyle,\n  e0 as base64EncodeOutputStream,\n  _0 as bitmapMapper,\n  by as blobToImageData,\n  Lc as byteArrayOutputStream,\n  hr as cAF,\n  Hw as cancelFetch,\n  qy as changeBrightness,\n  Z1 as changeCheckboxChecked,\n  jy as changeDiaphaneity,\n  W1 as changeRadioChecked,\n  H1 as changeSelected,\n  $y as changeSize,\n  w2 as checkWxJsApi,\n  $w as clearCookies,\n  Bw as clearLocalStorage,\n  Lw as clearSessionStorage,\n  Hg as closeLog,\n  G1 as closest,\n  gy as computeImageDisplayRect,\n  B1 as containsChild,\n  La as createDefaultMousePoint,\n  D0 as createElement,\n  ix as createElementNS,\n  so as createEvent,\n  k0 as createFragment,\n  oy as createFromEventPattern,\n  qw as createIndexDB,\n  S0 as createObjectURL,\n  uy as createRunCycleInMaxRate,\n  rx as createTextNode,\n  Xg as createWebSocket,\n  L0 as createXMLHttpRequest,\n  X0 as cssAttrsToCanvasAttrs,\n  Q2 as decrypt,\n  hy as dispatchClickFromEvent,\n  yc as dispatchEvent,\n  ay as dispatchEventFromEvent,\n  Ge as distance,\n  Aa as domPrefixes,\n  H0 as drag$,\n  Z0 as dragEnd$,\n  K0 as dragEnter$,\n  Q0 as dragLeave$,\n  tg as dragOver$,\n  W0 as dragStart$,\n  x1 as drawBitmapInCanvas,\n  Ky as drawQRCodeToCanvas,\n  J0 as drop$,\n  Ec as easeNameToCubicBezier,\n  M0 as empty,\n  K2 as encrypt,\n  _y as flipSideToSide,\n  Sy as flipUpsideDown,\n  Sw as followMouseShape,\n  y1 as getBitmapFromCanvas,\n  uo as getBrowserClient,\n  e2 as getBrowserClientVersion,\n  s2 as getBrowserLanguage,\n  Uw as getCSSVar,\n  Nc as getDOMMatrix,\n  t1 as getDirection,\n  sn as getDocumentElement,\n  Ra as getElementPositionInPage,\n  ow as getElementPositionInPage2,\n  el as getElementPositionInViewport,\n  O1 as getEmSize,\n  ny as getEventCurrentTarget,\n  Rl as getFetchId,\n  ty as getFileExtension,\n  fm as getFileMD5Hash,\n  Qg as getFileTypeFromFile,\n  hx as getFormSubmitData,\n  t0 as getImageData,\n  Zy as getImageDataByAIData,\n  vy as getImageMainColor,\n  K1 as getInnerText,\n  Gg as getInternetExplorerVersion,\n  mw as getKeyCode,\n  ey as getMIME,\n  uw as getMouseButton,\n  mt as getMousePositionInElement,\n  Oa as getMousePositionInPage,\n  cw as getMousePositionInViewport,\n  lo as getOperatingSystem,\n  t2 as getOperatingSystemVersion,\n  iw as getPage,\n  rw as getRelativeBoundingClientRect,\n  Bc as getRemSize,\n  ux as getRules,\n  lw as getScrollWheelDelta,\n  P1 as getSelectedText,\n  Yn as getStyle,\n  Y0 as getStyleSheets,\n  Fw as getTheme$,\n  n2 as getTimeZone,\n  aw as getVerticalScrollTopPercentInPage,\n  Qw as getVertxRegisterBaseUrl,\n  tl as getViewport,\n  Mc as getVnode,\n  nw as getWindow,\n  s0 as gifImage,\n  ns as h,\n  ho as hFromEl,\n  nx as hasClass,\n  I0 as hideEl,\n  T0 as html,\n  ox as iframePostMessage,\n  yy as imageDataToBitmap,\n  wy as imageDataToBlob,\n  xy as imageDataToDataURL,\n  O0 as injectStyle,\n  x2 as injectWxJsConfig,\n  Ds as insert,\n  L1 as isActiveEl,\n  $g as isAliBrowser,\n  d2 as isAliMiniProgram,\n  Ug as isAndroid,\n  r2 as isAppleDevice,\n  o2 as isBadAndroid,\n  Zg as isBrowserSupportFileAPI,\n  b1 as isElement,\n  h2 as isIE,\n  l2 as isIE10,\n  u2 as isIE11,\n  c2 as isIE9,\n  zl as isIOS,\n  hw as isInViewport,\n  fi as isInput,\n  Uc as isInputCheckbox,\n  j1 as isInputNumber,\n  Gc as isInputRadio,\n  q1 as isInputText,\n  Fg as isMacOS,\n  a2 as isMobile,\n  D1 as isRootEl,\n  i2 as isSafari,\n  Fc as isSelect,\n  px as isSupportEvent,\n  mx as isSupportPointer,\n  dx as isSupportTouch,\n  $1 as isTextArea,\n  Vg as isWxBrowser,\n  f2 as isWxMiniProgram,\n  Fy as jpgToPng,\n  eg as keyDown$,\n  Wx as keyPress$,\n  sg as keyUp$,\n  Cy as leftRotate,\n  $s as length,\n  Z2 as mapTDTJSSDK,\n  Xy as marginSharpen,\n  Wy as mosaic,\n  Bs as mount,\n  vx as mouseClick$,\n  Cx as mouseContextMenu$,\n  _x as mouseDoubleClick$,\n  F0 as mouseDown$,\n  xx as mouseEnter$,\n  bx as mouseLeave$,\n  ro as mouseMove$,\n  yx as mouseOut$,\n  gx as mouseOver$,\n  U0 as mouseUp$,\n  Sx as mouseWheel$,\n  z1 as nearestElement,\n  F1 as nextElementSibling,\n  Qy as normalizePoint,\n  J2 as objectSignature,\n  C0 as onBeforeUnload,\n  Yc as onDocumentReady,\n  jg as openLog,\n  n0 as outputGifBase64,\n  Jy as outputQRCodeBase64,\n  Ex as pan$,\n  Ax as panCancel$,\n  Lx as panDown$,\n  Mx as panEnd$,\n  Ix as panLeft$,\n  Px as panMove$,\n  kx as panRight$,\n  Tx as panStart$,\n  Dx as panUp$,\n  N1 as parent,\n  Xc as parents,\n  ll as parseCSS,\n  v0 as parseTransformToMatrix,\n  co as patch,\n  Rx as pinch$,\n  Ox as pinchIn$,\n  zx as pinchOut$,\n  Uy as pngToJpg,\n  Qc as pointerCancel$,\n  Jc as pointerDown$,\n  Zc as pointerMove$,\n  Kc as pointerUp$,\n  He as polar,\n  Pw as polymorphTween,\n  Nx as press$,\n  Fe as preventDefault,\n  U1 as previousElementSibling,\n  Jg as querySelectorAllToStringArray,\n  Vs as rAF,\n  Vy as radiusClip,\n  ai as readFileInBrowser,\n  cx as readStyleFromStyles,\n  Gy as rectClip,\n  R1 as rem2px,\n  Q1 as remove,\n  ry as removeAllEventListeners,\n  sx as removeClass,\n  xc as requestAnimationFrameCycle,\n  dy as reverseCSSToJSEasing,\n  jp as reverseEaseNameToCubicBezier,\n  Yp as reverseEasing,\n  v1 as revokeObjectURL,\n  Ey as rightRotate,\n  Yx as rotate$,\n  oe as rotatePoint,\n  ax as runInSandbox,\n  Rp as scheduleIdle,\n  Np as scheduleIdleAsap,\n  Ic as scheduleVnodeAsap,\n  py as scheduleVnodeImmediately,\n  Y1 as scrollParent,\n  I1 as scrollTo,\n  $h as selectFileInBrowser,\n  Gw as setCSSVar,\n  ly as setIntervalAccurate,\n  Wg as setLogUploadFn,\n  k1 as setManualScroll,\n  m2 as setRem,\n  qs as setStyle,\n  Og as setTheme,\n  fa as setTimeoutAccurate,\n  T1 as setWindowTitle,\n  V1 as shadowRoot,\n  By as sharpen,\n  A0 as showEl,\n  X1 as siblings,\n  tb as signEncrypt,\n  qg as signature,\n  cy as simulateEventFromTouch,\n  gc as stopPropagation,\n  sw as storage$,\n  Kg as stringToDOM,\n  Bx as swipe$,\n  Gx as swipeDown$,\n  Xx as swipeLeft$,\n  Fx as swipeRight$,\n  Ux as swipeUp$,\n  j0 as tap$,\n  Vx as tapOutSide$,\n  Cw as targetToAfterDropShape,\n  J1 as text,\n  My as toBlackAndWhite,\n  Dy as toBlue,\n  Oy as toBlueAndGreen,\n  Yy as toBlueAndGrey,\n  wt as toDegree,\n  ky as toGreen,\n  Ny as toGreenAndGrey,\n  Py as toGrey,\n  Ty as toGrey2,\n  Ay as toOpposite,\n  q as toRadian,\n  Iy as toRed,\n  Ry as toRedAndBlue,\n  Ly as toRedAndGreen,\n  zy as toRedAndGrey,\n  Vc as toggleClass,\n  tx as toggleElDisplay,\n  Xw as toggleTheme,\n  q0 as touchCancel$,\n  $0 as touchEnd$,\n  G0 as touchMove$,\n  V0 as touchStart$,\n  Ia as transform,\n  h1 as transformPath2D,\n  qx as transitionEnd$,\n  $x as transitionStart$,\n  fr as updateVnode,\n  Me as useAttribute,\n  pr as useClickA,\n  A1 as useClipboard,\n  Jx as useCompatableDownMovePoint$,\n  Vw as useCookie,\n  Dw as useCoords$,\n  Nw as useDataset,\n  ew as useDocumentVisible$,\n  Qx as useDraggable,\n  tw as useDrop,\n  xw as useElementEventBus,\n  X as useEvent$,\n  Z as useEventListener,\n  zw as useFeRoute,\n  ao as useFetch,\n  Zw as useFetchCache,\n  Ww as useFetchRetry,\n  Jw as useFetchRetryCache,\n  Ow as useHashChange$,\n  ag as useHotKeyDown$,\n  gw as useHotKeyFile,\n  hg as useHotKeyFile$,\n  pw as useHotKeyUp$,\n  Mg as useIntersection$,\n  E0 as useLoadImage,\n  S1 as useLoadLink,\n  _1 as useLoadScript,\n  Lg as useLocalStorage,\n  Ol as useLocale,\n  kg as useLocation$,\n  Ig as useMatchMedia$,\n  rg as useMouseAndPointerDownMovePoint$,\n  ng as useMouseDownMovePoint$,\n  Zx as useMouseMovePoint$,\n  ys as useMousePoint,\n  Tg as useMutation$,\n  iy as useParentEventListener,\n  gr as usePointerDownMovePoint$,\n  Dg as usePopStateChange$,\n  ug as usePressDownMove,\n  ww as usePressDownMoveWithMouse,\n  fg as usePressDownMoveWithPointer,\n  bw as usePressDownMoveWithTouch,\n  Kx as usePull$,\n  cg as useResize,\n  nl as useResize$,\n  kw as useSafeArea$,\n  og as useScroll$,\n  P0 as useSelectFile,\n  E1 as useSelectFileImage,\n  ja as useSessionStorage,\n  ig as useTouchDownMovePoint$,\n  Rw as useUrlChange$,\n  Iw as useVisible$,\n  Aw as useVisibleSimple$,\n  yw as useWindowResize$,\n  eb as verifyDecrypt,\n  M1 as vibrate,\n  Mw as waitElementAddedInDOM,\n  C1 as waitForStyleSheetsLoaded,\n  jw as writeToIndexDB,\n  _2 as wxJsChooseImage,\n  E2 as wxJsDownloadImage,\n  O2 as wxJsDownloadVoice,\n  P2 as wxJsGetLocalImgData,\n  B2 as wxJsGetLocation,\n  N2 as wxJsGetNetworkType,\n  U2 as wxJsLogin,\n  L2 as wxJsOnVoicePlayEnd,\n  A2 as wxJsOnVoiceRecordEnd,\n  Y2 as wxJsOpenLocation,\n  k2 as wxJsPauseVoice,\n  F2 as wxJsPay,\n  I2 as wxJsPlayVoice,\n  S2 as wxJsPreviewImage,\n  X2 as wxJsScanQRCode,\n  T2 as wxJsStartRecord,\n  M2 as wxJsStopRecord,\n  D2 as wxJsStopVoice,\n  z2 as wxJsTranslateVoice,\n  b2 as wxJsUpdateAppMessageShareData,\n  v2 as wxJsUpdateTimelineShareData,\n  C2 as wxJsUploadImage,\n  R2 as wxJsUploadVoice\n};\n//# sourceMappingURL=zyzgroup_core_web.js.map\n","<script setup lang=\"ts\">\nimport { watchEffect, ref } 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    global?: boolean;\n    opacity?: number;\n  }>(),\n  {\n    global: true,\n    opacity: 0.6\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"open\"): void;\n  (event: \"close\"): void;\n}>();\n\nconst el = ref();\n\nconst color = `rgba(0, 0, 0, ${props.opacity})`;\n\nconst visible = ref(false);\n\n// fixScroll\nlet initParentOverflow = \"\";\nif (props.global) {\n  initParentOverflow =\n    atomReadStyle(document.documentElement, \"overflow\") || \"visible\";\n} else {\n  watchEffect(() => {\n    if (!el.value || initParentOverflow) {\n      // not mounted yet, or the element was unmounted (e.g. by v-if)\n      return;\n    }\n    initParentOverflow =\n      atomReadStyle(el.value.parentElement, \"overflow\") || \"visible\";\n  });\n}\n\nfunction setParentOverflow() {\n  atomWriteStyle(\n    props.global ? document.documentElement : el.value.parentElement,\n    \"overflow\",\n    visible.value ? \"hidden\" : initParentOverflow || \"visible\"\n  );\n}\n\nfunction open() {\n  visible.value = true;\n  setParentOverflow();\n  emits(\"open\");\n}\n\nfunction close() {\n  visible.value = false;\n  setParentOverflow();\n  emits(\"close\");\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <!-- FOUC: flash of unstyled content 未样式化文本闪烁 -->\n  <!-- v-if=\"visible\"使子元素重新创建 或 子元素传不同 key 会重新创建 -->\n  <!-- display: visible ? 'block' : 'none', 子元素不会重新创建 -->\n  <div\n    ref=\"el\"\n    class=\"overlay\"\n    v-if=\"visible\"\n    :style=\"{\n      display: 'block',\n      position: 'fixed',\n      width: '100%',\n      height: '100%',\n      'z-index': '99999',\n      inset: '0',\n      'background-color': color,\n      overflow: 'hidden',\n      'overscroll-behavior-y': 'contain', // avoid scroll chaining\n      'scrollbar-gutter': 'stable'\n    }\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","const Br = {};\nfunction jr() {\n  return typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : this || Br;\n}\nconst E = jr(), qr = \"@YZ/\";\nfunction yt(t, e = qr) {\n  return t.startsWith(e) ? t : `${e}${t}`;\n}\nfunction Mt(t) {\n  return typeof t == \"string\" && t.startsWith(\"Symbol(\") && t.endsWith(\")\");\n}\nfunction It(t) {\n  return Mt(t) && (t = t.slice(7, -1)), t;\n}\nfunction Lt(t) {\n  return t = It(t), t = yt(t), typeof Symbol == \"function\" ? Symbol(t) : `Symbol(${t})`;\n}\nconst ge = Lt(\"TIMESTAMP\"), ae = Lt(\"META\");\nfunction zr(t, e) {\n  const n = e.toString();\n  if (!Mt(n))\n    return !1;\n  if (t && typeof t == \"object\") {\n    if (It(n) == \"\")\n      return e in t;\n    for (const r of Reflect.ownKeys(t))\n      if (r.toString() == n)\n        return !0;\n    return !1;\n  }\n  return !1;\n}\nfunction rn(t) {\n  if (!Mt(t))\n    return t;\n  switch (t = It(t), t) {\n    case yt(\"TIMESTAMP\"):\n      return ge;\n    case yt(\"META\"):\n      return ae;\n    default:\n      return Lt(t);\n  }\n}\nfunction wt(t) {\n  if (Array.isArray(t))\n    return t.map(wt);\n  if (t && typeof t == \"object\") {\n    const e = {};\n    for (const n of Reflect.ownKeys(t)) {\n      const r = t[n];\n      e[typeof n == \"symbol\" ? n.toString() : n] = typeof r == \"symbol\" ? r.toString() : wt(r);\n    }\n    return e;\n  }\n  return typeof t == \"symbol\" ? t.toString() : t;\n}\nfunction bt(t) {\n  if (Array.isArray(t))\n    return t.map(bt);\n  if (t && typeof t == \"object\") {\n    const e = {};\n    for (const n of Object.keys(t))\n      e[rn(n)] = bt(t[n]);\n    return e;\n  }\n  return rn(t);\n}\nfunction Hr(t) {\n  return JSON.stringify(wt(t));\n}\nconst $t = Hr;\nfunction Vr(t) {\n  return bt(JSON.parse(t));\n}\nconst a1 = Vr;\nclass Wr {\n}\nfunction Qe(t) {\n  t || (t = E), Object.hasOwnProperty.call(t, ae) === !1 && Object.defineProperty(t, ae, {\n    value: new Wr()\n  });\n  const e = {\n    set: (n, r) => t[ae][n] = r,\n    get: (n, r) => {\n      const s = t[ae][n];\n      return s === void 0 && r !== void 0 ? (e.set(n, r), r) : s;\n    },\n    delete: (n) => {\n      delete t[ae][n];\n    }\n  };\n  return e;\n}\nvar W = /* @__PURE__ */ ((t) => (t.UNKNOWN = \"\", t.TEXT = \"text/plain\", t.MD = \"text/plain\", t.HTML = \"text/html\", t.XML_TEXT = \"text/xml\", t.CSS = \"text/css\", t.JPEG = \"image/jpeg\", t.PNG = \"image/png\", t.GIF = \"image/gif\", t.BMP = \"image/bmp\", t.WEBP = \"image/webp\", t.SVG = \"image/svg+xml\", t.ICON = \"image/x-icon\", t.MICROSOFT_ICON = \"image/vnd.microsoft.icon\", t.MPEG = \"audio/mpeg\", t.MP3 = \"audio/mpeg\", t.MP4 = \"video/mp4\", t.OGG = \"audio/ogg\", t.WAV = \"audio/wav\", t.MIDI = \"audio/midi\", t.WEBM = \"video/webm\", t.VIDEO_OGG = \"video/ogg\", t.OCTET_STREAM = \"application/octet-stream\", t.JAVASCRIPT = \"application/javascript\", t.ECMASCRIPT = \"application/ecmascript\", t.JSON = \"application/json\", t.XML = \"application/xml\", t.XHTML = \"application/xhtml+xml\", t.XWWW = \"application/x-www-form-urlencoded\", t.DOC = \"application/msword\", t.CSV = \"application/x-csv\", t.EXCEL = \"application/vnb.ms-excel\", t.PPT = \"application/vnb.mspowerpoint\", t.PDF = \"application/pdf\", t.ZIP = \"application/zip\", t.TGZ = \"application/x-gtar\", t.TAR_GZ = \"application/x-gzip\", t.EOT = \"appliaction/vnd.ms-fontobject\", t.TTF = \"aplication/font-sfnt\", t.PKCS12 = \"aplication/pkcs12\", t))(W || {}), Ue = /* @__PURE__ */ ((t) => (t.ascii = \"ascii\", t.utf8 = \"utf8\", t.utf16le = \"utf16le\", t.ucs2 = \"ucs2\", t.base64 = \"base64\", t.base64url = \"base64url\", t.latin1 = \"latin1\", t.binary = \"binary\", t.hex = \"hex\", t))(Ue || {}), Gr = /* @__PURE__ */ ((t) => (t.text = \"text\", t.dataURL = \"dataURL\", t.binaryString = \"binaryString\", t.arraybuffer = \"arraybuffer\", t))(Gr || {}), Xr = /* @__PURE__ */ ((t) => (t.md5 = \"md5\", t.sha1 = \"sha1\", t.sha256 = \"sha256\", t.SHA256 = \"SHA-256\", t.sha512 = \"sha512\", t.SHA512 = \"SHA-512\", t.AESGCM = \"AES-GCM\", t.ECDSA = \"ECDSA\", t))(Xr || {}), Jr = /* @__PURE__ */ ((t) => (t.aes_128_cbc = \"aes-128-cbc\", t.aes_128_ecb = \"aes-128-ecb\", t.aes_192_cbc = \"aes-192-cbc\", t.ae_192_ecb = \"aes-192-ecb\", t.aes_256_cbc = \"aes-256-cbc\", t.aes_256_ecb = \"aes-256-ecb\", t.base64 = \"base64\", t))(Jr || {});\nconst c1 = [\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], ie = (t) => {\n  let e = null;\n  switch (t) {\n    case \"any-character\":\n      e = /[^]/;\n      break;\n    case \"bin\":\n      e = /^(0b)?[0-1]+$/i;\n      break;\n    case \"oct\":\n      e = /^(0o)?[0-7]+$/i;\n      break;\n    case \"hex\":\n      e = /^(0x)?[0-9a-fA-F]+$/i;\n      break;\n    case \"ascii\":\n      e = /^[\\x00-\\xFF]+$/i;\n      break;\n    case \"int\":\n      e = /^[-+]?[0-9]+$/;\n      break;\n    case \"number\":\n      e = /[-+]?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/gi;\n      break;\n    case \"number-single\":\n      e = /[-+]?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/i;\n      break;\n    case \"split\":\n      e = /\\s*,\\s*/gi;\n      break;\n    case \"trim\":\n      e = /^\\s+|\\s+$/g;\n      break;\n    case \"regexp\":\n      e = /[\\\\^$.*+?()[\\]{}|]/g;\n      break;\n    case \"regexp-flags\":\n      e = /\\w*$/;\n      break;\n    case \"native-method\":\n      e = RegExp(\n        \"^\" + Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(ie(\"regexp\"), \"\\\\$&\").replace(\n          /hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\n          \"$1.*?\"\n        ) + \"$\"\n      );\n      break;\n    case \"svg-segment\":\n      e = /([mlhvzaqtcs])([^mlhvzaqtcs]*)/gi;\n      break;\n    case \"mobile-china\":\n      e = /^[1]{1}[0-9]{10}$/;\n      break;\n    case \"email\":\n      e = /^[A-Za-z0-9_!#$%&'*+/=?`{|}~^.-]+\\@[A-Za-z0-9._-]+\\.[A-Za-z0-9]+$/gm;\n      break;\n    case \"ip\":\n      e = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;\n      break;\n    case \"url\":\n      e = /^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$/;\n      break;\n    case \"element-url\":\n      e = /^url\\(['\"]?(.+?)['\"]?\\)$/i;\n      break;\n    case \"date\":\n      e = /^\\d{4}(\\-|\\/|\\.)(\\d{1,2})(\\-|\\/|\\.)(\\d{1,2})$/;\n      break;\n    case \"time\":\n      e = /^(\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/;\n      break;\n    case \"datetime\":\n      e = /^\\d{4}(\\-|\\/|\\.)(\\d{1,2})(\\-|\\/|\\.)(\\d{1,2})\\s+(\\d{1,2}):(\\d{1,2}):(\\d{1,2})$/;\n      break;\n    case \"base64-data\":\n      e = /^\\s*data:(?:[a-z]+\\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\\-._~:@/?%\\s]*?)\\s*$/i;\n      break;\n    case \"hex-color\":\n      e = /^#([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\n      break;\n    case \"color\":\n      e = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\))\\s*$/i;\n      break;\n    case \"whitespace\":\n      e = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]/g;\n      break;\n    case \"commaSpaces\":\n      e = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/;\n      break;\n    case \"var-name\":\n      e = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;\n      break;\n    case \"bezier\":\n      e = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/;\n      break;\n    case \"chinese-name\":\n      e = /^(?:[\\u4e00-\\u9fa5·]{2,16})$/;\n      break;\n    case \"chinese\":\n      e = new RegExp(\n        String.raw`\n          [\\u{FA0E}\\u{FA0F}\\u{FA11}\\u{FA13}\\u{FA14}\\u{FA1F}\\u{FA21}\\u{FA23}\\u{FA24}\\u{FA27}-\\u{FA29}]\n          |[\\u{4E00}-\\u{9FCC}]\n          |[\\u{3400}-\\u{4DB5}]\n          |[\\u{20000}-\\u{2A6D6}]\n          |[\\u{2A700}-\\u{2B734}]\n          |[\\u{2B740}-\\u{2B81D}]\n          |[\\u{2B820}-\\u{2CEAF}]\n          |[\\u{2CEB0}-\\u{2EBEF}]\n        `.replace(/\\s+/g, \"\"),\n        \"u\"\n      );\n      break;\n    case \"mime-image\":\n      e = /^image\\//;\n      break;\n    case \"mime-video\":\n      e = /^video\\//;\n      break;\n    case \"mime-audio\":\n      e = /^audio\\//;\n      break;\n    case \"mime-document-word\":\n      e = /^application\\/(?:vnd\\.openxmlformats-officedocument\\.wordprocessingml\\.document|msword|vnd\\.ms-word\\.document\\.macroenabled\\.12|vnd\\.openxmlformats-officedocument\\.wordprocessingml\\.template|vnd\\.ms-word\\.template\\.macroenabled\\.12)$/;\n      break;\n    case \"mime-document-excel\":\n      e = /^application\\/(?:vnd\\.openxmlformats-officedocument\\.spreadsheetml\\.sheet|vnd\\.ms-excel|vnd\\.ms-excel\\.sheet\\.macroenabled\\.12|vnd\\.openxmlformats-officedocument\\.spreadsheetml\\.template|vnd\\.ms-excel\\.template\\.macroenabled\\.12)$/;\n      break;\n    case \"mime-document-ppt\":\n      e = /^application\\/(?:vnd\\.ms-powerpoint|vnd\\.openxmlformats-officedocument\\.presentationml\\.presentation|vnd\\.ms-powerpoint\\.presentation\\.macroenabled\\.12|vnd\\.openxmlformats-officedocument\\.presentationml\\.template|vnd\\.ms-powerpoint\\.template\\.macroenabled\\.12)$/;\n      break;\n    case \"mime-document-json\":\n      e = /^application\\/json$/;\n      break;\n    case \"mime-document-xml\":\n      e = /^(?:application|text)\\/(?:xml|xhtml\\+xml)$/;\n      break;\n  }\n  return e;\n};\nfunction Yr(t) {\n  if (t.flags)\n    return t.flags;\n  const e = [];\n  return t.global && e.push(\"g\"), t.ignoreCase && e.push(\"i\"), t.multiline && e.push(\"m\"), t.sticky && e.push(\"y\"), t.unicode && e.push(\"u\"), e.join(\"\");\n}\nfunction Zr(t) {\n  const e = new RegExp(t.source, Yr(t));\n  return e.lastIndex = t.lastIndex, e;\n}\nconst xe = (t, e) => (typeof t == \"string\" && (t = ie(t) || new RegExp(t)), t.test(e)), u1 = (t, e) => (typeof t == \"string\" && (t = ie(t) || new RegExp(t)), e.search(t)), l1 = (t, e) => (typeof t == \"string\" && (t = ie(t) || new RegExp(t)), e.split(t)), Ft = (t, e) => {\n  typeof t == \"string\" && (t = ie(t) || new RegExp(t));\n  const n = e.match(t);\n  return n ? t.flags.toLowerCase().indexOf(\"g\") >= 0 ? n.map(\n    (r) => ({\n      matchIndex: -1,\n      fullMatch: r,\n      groupMatchs: []\n    })\n  ) : {\n    matchIndex: typeof n.index == \"number\" ? n.index : -1,\n    fullMatch: n[0],\n    groupMatchs: n.slice(1)\n  } : null;\n}, f1 = (t, e) => {\n  typeof t == \"string\" && (t = ie(t) || new RegExp(t));\n  const n = [], r = e.matchAll(t);\n  for (const s of r)\n    n.push({\n      matchIndex: typeof s.index == \"number\" ? s.index : -1,\n      fullMatch: s[0],\n      groupMatchs: s.slice(1)\n    });\n  return n;\n}, h1 = (t, e) => {\n  if (typeof t == \"string\" && (t = ie(t) || new RegExp(t)), t.flags.toLowerCase().indexOf(\"g\") < 0)\n    return Ft(t, e);\n  const n = [];\n  let r;\n  for (; r = t.exec(e); )\n    n.push({\n      matchIndex: typeof r.index == \"number\" ? r.index : -1,\n      fullMatch: r[0],\n      groupMatchs: r.slice(1)\n    });\n  return n;\n};\nfunction Q(t) {\n  const e = t.match(/[\\s\\S]/gu);\n  return e ? e.length : 0;\n}\nfunction d1(t) {\n  return [...t].length;\n}\nfunction p1(t) {\n  return Array.from(t).length;\n}\nfunction m1(t) {\n  const e = t.length;\n  let n = 0, r = 0;\n  for (; n < e; ) {\n    const s = t.charCodeAt(n);\n    if (s >= 55296 && s <= 56319) {\n      const i = t.charCodeAt(n + 1);\n      i >= 56320 && i <= 57343 && n++;\n    }\n    r++, n++;\n  }\n  return r;\n}\nfunction g1(t, e) {\n  return Array.from(t).slice(0, e).join(\"\");\n}\nfunction y1(t, e) {\n  const n = t.codePointAt(e);\n  return n ? String.fromCodePoint(n) : void 0;\n}\nfunction w1(t) {\n  if (!/^\\s*[0-9A-Z]+\\s*$/i.test(t))\n    throw new Error(\"纳税人识别号只能由数字和大写字母组成\");\n  const e = t.trim().toUpperCase(), n = Q(e);\n  if (n !== 15 && n !== 17 && n !== 18 && n !== 20)\n    throw new Error(\"税号应为15/17/18/20位数字或大写字母组合，请检查。\");\n  return e;\n}\nfunction b1(t) {\n  if (!/^\\s*[0-9A-Z（）\\u{FA0E}\\u{FA0F}\\u{FA11}\\u{FA13}\\u{FA14}\\u{FA1F}\\u{FA21}\\u{FA23}\\u{FA24}\\u{FA27}-\\u{FA29}\\u{4E00}-\\u{9FCC}\\u{3400}-\\u{4DB5}\\u{20000}-\\u{2A6D6}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEAF}\\u{2CEB0}-\\u{2EBEF}]+\\s*$/iu.test(\n    t\n  ))\n    throw new Error(\"名称只能包含：中文+英文+数字+全角括号\");\n  const e = t.trim(), n = Q(e);\n  if (n == 0)\n    throw new Error(\"请输入名称\");\n  if (n > 100)\n    throw new Error(\"名称过长，请修改 (不超过100个字符)\");\n  return e;\n}\nfunction S1(t) {\n  if (!/^\\s*([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}\\s*$/i.test(\n    t\n  ))\n    throw new Error(\"请输入正确的邮箱\");\n  return t.trim();\n}\nfunction x1(t = 12, e = \"all\") {\n  let n = \"ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghijklmnopqrstuvwxyz0123456789\";\n  e == \"number\" && (n = \"0123456789\");\n  const r = n.length;\n  let s = \"\";\n  for (let i = 0; i < t; i++)\n    s += n[Math.floor(Math.random() * r)];\n  return s;\n}\nconst In = () => Math.random().toString(36).slice(2), A1 = () => String.fromCharCode(\n  Math.random() * (\"z\".charCodeAt(0) - \"a\".charCodeAt(0)) + \"a\".charCodeAt(0)\n);\nfunction O1(t, e) {\n  const n = Object.keys(e);\n  for (let r = 0, s = n.length; r < s; r++)\n    t = t.replace(new RegExp(\"{\" + n[r] + \"}\", \"gi\"), e[n[r]]);\n  return t;\n}\nfunction v1(t, ...e) {\n  let n = \"\", r;\n  for (r = 0; r < e.length; r++)\n    n += t.raw[r] + e[r];\n  return n += t.raw[r] || \"\", n;\n}\nfunction R1(t) {\n  return t.charAt(0).toUpperCase() + t.slice(1);\n}\nfunction Kr(t) {\n  return t.replace(/(^\\w)/g, (e) => e.toLowerCase());\n}\nconst _1 = (t, e = \"-\") => {\n  let n = t.replace(new RegExp(\"[_-]?([A-Z])\", \"g\"), e + \"$1\").toLowerCase();\n  const r = new RegExp(`^${e}`);\n  return r.test(t) || (n = n.replace(r, \"\")), n;\n};\nfunction Qr(t) {\n  return t.replace(/(^\\w|[_-]\\w)/g, (e) => e.slice(-1).toUpperCase());\n}\nfunction T1(t) {\n  return Kr(Qr(t));\n}\nfunction E1(t) {\n  return t ? t.replaceAll(/^\\s+|\\s+$/g, \"\").replaceAll(/\\r?\\n/g, \"\") : \"\";\n}\nfunction k1(t = \"\") {\n  const e = /[`~!@#$^\\-&*()=|{}':;',\\\\\\[\\]\\.<>\\/?~！@#￥……&*（）——|{}【】'；：\"\"'。，、？\\s]/g;\n  return t.replaceAll(e, \"\");\n}\nfunction C1(t, e = \"\", n = /\\[data-v-[0-9a-zA-Z]*\\]/g) {\n  return t = t.replaceAll(n, e), t;\n}\nfunction P1(t, e, n = \"0\", r = \"left\") {\n  const s = Q(t);\n  if (e > s) {\n    const i = e - s;\n    let o, a;\n    switch (r) {\n      case \"left\":\n        t = Array(i + 1).join(n) + t;\n        break;\n      case \"right\":\n        t = t + Array(i + 1).join(n);\n        break;\n      default:\n        o = Math.ceil(i / 2), a = i - o, t = Array(a + 1).join(n) + t + Array(o + 1).join(n);\n        break;\n    }\n  }\n  return t;\n}\nconst D1 = (t, e) => t.repeat(e), M1 = (t, e, n = \"...\") => Q(t) < e ? t : `${t.slice(0, e - 3)}${n}`, I1 = (t, e, n, r = \"...\") => {\n  const s = Q(t);\n  return s < e || n - e >= s ? t : `${t.slice(0, e)}${r}${t.slice(s - n)}`;\n}, L1 = (t) => t.split(\"\").reverse().join(\"\");\nfunction $1(t) {\n  const e = t.codePointAt(0);\n  return typeof e < \"u\" && e > 65535;\n}\nfunction F1(t) {\n  let e = \"\";\n  for (let n = 0, r = t.length; n < r; n++) {\n    const s = t.charCodeAt(n);\n    s >= 1 && s <= 127 ? e += t.charAt(n) : s > 2047 ? (e += String.fromCharCode(224 | s >> 12 & 15), e += String.fromCharCode(128 | s >> 6 & 63), e += String.fromCharCode(128 | s >> 0 & 63)) : (e += String.fromCharCode(192 | s >> 6 & 31), e += String.fromCharCode(128 | s >> 0 & 63));\n  }\n  return e;\n}\nfunction N1(t) {\n  const e = t.length;\n  let n = \"\", r = 0, s, i;\n  for (; r < e; ) {\n    const o = t.charCodeAt(r++);\n    switch (o >> 4) {\n      case 0:\n      case 1:\n      case 2:\n      case 3:\n      case 4:\n      case 5:\n      case 6:\n      case 7:\n        n += t.charAt(r - 1);\n        break;\n      case 12:\n      case 13:\n        s = t.charCodeAt(r++), n += String.fromCharCode((o & 31) << 6 | s & 63);\n        break;\n      case 14:\n        s = t.charCodeAt(r++), i = t.charCodeAt(r++), n += String.fromCharCode(\n          (o & 15) << 12 | (s & 63) << 6 | (i & 63) << 0\n        );\n        break;\n    }\n  }\n  return n;\n}\nfunction U1(t, e = \"utf-8\") {\n  e = e.toLowerCase();\n  let n = 0;\n  if (e === \"utf-16\" || e === \"utf16\")\n    for (let r = 0, s = t.length; r < s; r++)\n      t.charCodeAt(r) <= 65535 ? n += 2 : n += 4;\n  else\n    for (let r = 0, s = t.length; r < s; r++) {\n      const i = t.charCodeAt(r);\n      i <= 127 ? n += 1 : i <= 2047 ? n += 2 : i <= 65535 ? n += 3 : n += 4;\n    }\n  return n;\n}\nfunction et(t) {\n  const e = new ArrayBuffer(t.length), n = new Uint8Array(e);\n  for (let r = 0, s = t.length; r < s; r++)\n    n[r] = t[r];\n  return e;\n}\nfunction es(t) {\n  return ArrayBuffer.isView(t);\n}\nfunction ts(t) {\n  return es(t) && !(t instanceof DataView);\n}\nfunction B1(t) {\n  return ts(t) && t.constructor.name;\n}\nfunction j1(t) {\n  return new DataView(t);\n}\nfunction q1(t, e) {\n  return new t(e);\n}\nfunction z1(t, ...e) {\n  let n = 0;\n  for (const i of e)\n    n += i.length;\n  const r = new t(n);\n  let s = 0;\n  for (const i of e)\n    r.set(i, s), s += i.length;\n  return r;\n}\nfunction Nt(t) {\n  return t.slice(0);\n}\nfunction H1(t, e = !0) {\n  const n = e ? Nt(t.buffer) : t.buffer;\n  return new DataView(n, t.byteOffset, t.byteLength);\n}\nfunction V1(t, e = !0) {\n  const n = e ? Nt(t.buffer) : t.buffer;\n  return new t.constructor(\n    n,\n    t.byteOffset,\n    t.length\n  );\n}\nconst Ln = \"[object Undefined]\", $n = \"[object Null]\", Fn = \"[object Boolean]\", ns = \"[object Number]\", rs = \"[object BigInt]\", Nn = \"[object String]\", Un = \"[object Symbol]\", ss = \"[object Function]\", is = \"[object Array]\", os = \"[object GeneratorFunction]\";\nfunction Y(t) {\n  return Object.prototype.toString.call(t);\n}\nfunction W1(t, e) {\n  return e != null && t instanceof e;\n}\nfunction G1(t) {\n  const e = typeof t;\n  return e !== \"object\" ? e : Y(t).replace(/^\\[object (\\S+)\\]$/, \"$1\").toLowerCase();\n}\nfunction X1(t) {\n  return Y(t) === Ln;\n}\nfunction J1(t) {\n  return Y(t) === $n;\n}\nfunction as(t) {\n  return t != null;\n}\nfunction Y1(t) {\n  return t === null && t === void 0;\n}\nfunction Z1(t) {\n  return Y(t) === Fn;\n}\nfunction cs(t) {\n  return Y(t) === Nn;\n}\nfunction K1(t) {\n  return t === t + 0;\n}\nfunction Q1(t) {\n  return !isNaN(parseFloat(t)) && isFinite(t);\n}\nfunction us(t) {\n  return Y(t) === Un;\n}\nfunction ea(t) {\n  const e = t ? Symbol.prototype : void 0, n = e ? e.valueOf : void 0;\n  return n ? Object(n.call(t)) : {};\n}\nfunction Ut(t) {\n  const e = Y(t);\n  return e === Ln || e === $n || e === Fn || e === ns || e === Nn || e === Un || e === rs;\n}\nfunction re(t) {\n  const e = Y(t);\n  return e == ss || e == os;\n}\nfunction ta(t) {\n  return re(t) && Object.prototype.hasOwnProperty.call(t, \"toString\");\n}\nfunction ls(t) {\n  return /^function\\s+\\w*\\s*\\(\\s*\\)\\s*{\\s+\\[native code\\]\\s+}$/i.exec(\n    Bn(t)\n  ) != null;\n}\nfunction ft(t) {\n  return Ae(t) ? ls(t) || /^\\[object .+?Constructor\\]$/.test(Bn(t)) : !1;\n}\nfunction $(t) {\n  return Y(t) === is;\n}\nfunction na(t) {\n  return t != null && typeof t.length == \"number\" && t.length > -1 && t.length % 1 == 0 && t.length <= Number.MAX_SAFE_INTEGER && !re(t);\n}\nfunction Ae(t) {\n  const e = typeof t;\n  return !!t && (e == \"object\" || e == \"function\");\n}\nfunction J(t) {\n  return !!t && typeof t == \"object\";\n}\nfunction D(t) {\n  return J(t) && !$(t);\n}\nfunction ra(t) {\n  return J(t) ? Object == t.constructor : !1;\n}\nfunction fs(t) {\n  const e = typeof t;\n  return e == \"string\" || e == \"number\" || e == \"symbol\" || e == \"boolean\" ? t !== \"__proto__\" : t === null;\n}\nfunction sa(t) {\n  const e = t && t.constructor, n = typeof e == \"function\" && e.prototype || Object.prototype;\n  return t === n;\n}\nfunction ia(t) {\n  if (!t || !t.hasOwnProperty)\n    return !1;\n  const e = [\"value\", \"initializer\", \"get\", \"set\"];\n  for (let n = 0, r = e.length; n < r; n++)\n    if (Object.hasOwnProperty.call(t, e[n]))\n      return !0;\n  return !1;\n}\nconst oa = (t) => {\n  for (const e in t)\n    if (Object.prototype.hasOwnProperty.call(t, e))\n      return !1;\n  return !0;\n};\nfunction aa(t) {\n  return typeof Promise < \"u\" && t instanceof Promise || Ae(t) && typeof t.then == \"function\" && typeof t.catch == \"function\";\n}\nfunction hs(t) {\n  return Ae(t) && typeof t.next == \"function\";\n}\nfunction ca(t) {\n  const e = t.constructor;\n  return e ? (e.name || e.displayName) === \"GeneratorFunction\" : !1;\n}\nfunction ua(t) {\n  return t && re(Symbol) ? re(t[Symbol.iterator]) : $(t);\n}\nfunction Oe(t) {\n  const e = [];\n  for (const n in t)\n    Object.prototype.hasOwnProperty.call(t, n) && e.push(n);\n  return e;\n}\nfunction la(t) {\n  const e = [];\n  for (const n in t)\n    Object.prototype.hasOwnProperty.call(t, n) && e.push(t[n]);\n  return e;\n}\nfunction fa(t) {\n  const e = [];\n  for (const n in t)\n    Object.prototype.hasOwnProperty.call(t, n) && e.push([n, t[n]]);\n  return e;\n}\nfunction ha(t) {\n  const e = {};\n  return Oe(t).forEach(\n    (n) => e[n] = Object.getOwnPropertyDescriptor(t, n)\n  ), e;\n}\nfunction da(t, e) {\n  if (us(t)) {\n    do {\n      if (e === Object.prototype)\n        return typeof e[t] < \"u\";\n      if (Object.prototype.hasOwnProperty.call(e, t))\n        return !0;\n    } while (e = Object.getPrototypeOf(e));\n    return !1;\n  } else\n    return t in e;\n}\nfunction De(t, e, n = !0) {\n  if (D(t) && D(e))\n    for (const r of Oe(e))\n      (n || typeof t[r] > \"u\") && (t[r] = e[r]);\n  return t;\n}\nfunction ds(t, e, n = !0) {\n  if (D(t) && D(e))\n    for (const r of Oe(e))\n      (n || typeof t[r] > \"u\") && (D(t[r]) && D(e[r]) ? ds(t[r], e[r], n) : t[r] = e[r]);\n  return t;\n}\nfunction ps(t) {\n  Object.freeze(t), Object.keys(t).forEach((e) => {\n    Ae(t[e]) && ps(t[e]);\n  });\n}\nfunction pa(t) {\n  const e = Object.entries(t).slice(0), n = e.length;\n  let r = -1;\n  const s = n - 1;\n  for (; ++r < n; ) {\n    const i = r + Math.floor(Math.random() * (s - r + 1)), o = e[i];\n    e[i] = e[r], e[r] = o;\n  }\n  return Object.fromEntries(e);\n}\nfunction ma(t, e = {}) {\n  const n = Symbol(\"isa\");\n  function r(s) {\n    for (const i of Reflect.ownKeys(t))\n      Object.defineProperty(s.prototype, i, {\n        value: t[i],\n        writable: !0\n      });\n    return Object.defineProperty(s.prototype, n, { value: !0 }), s;\n  }\n  for (const s of Reflect.ownKeys(e))\n    Object.defineProperty(r, s, {\n      value: e[s],\n      enumerable: Object.propertyIsEnumerable.call(e, s)\n    });\n  return Object.defineProperty(r, Symbol.hasInstance, {\n    value: (s) => !!s[n]\n  }), r;\n}\nfunction ga(...t) {\n  class e {\n    constructor() {\n      for (const r of t)\n        De(this, new r(), !0);\n    }\n  }\n  for (const n of t)\n    De(e, n, !0), De(e.prototype, n.prototype, !0);\n  return e;\n}\nfunction ya(t) {\n  try {\n    postMessage(t, \"*\");\n  } catch (e) {\n    if (e?.code === 25)\n      return !1;\n  }\n  return !0;\n}\nfunction wa(t, e) {\n  return Ut(t) || re(t) ? e = t : $(t) ? e = [...t] : e ? (Object.setPrototypeOf(e, t), De(e, t, !0)) : e = Object.create(\n    Object.getPrototypeOf(t),\n    Object.getOwnPropertyDescriptors(t)\n  ), e;\n}\nfunction ba(t, ...e) {\n  return new t.constructor(...e);\n}\nfunction te(t, e = /* @__PURE__ */ new WeakMap()) {\n  if (!Ae(t))\n    return t;\n  if (e.has(t))\n    return e.get(t);\n  let n;\n  const r = t.constructor;\n  if (re(t) ? n = t : r === Array ? n = [] : r === Map ? n = /* @__PURE__ */ new Map() : r === Set ? n = /* @__PURE__ */ new Set() : r === RegExp ? n = Zr(t) : r === Date ? n = new Date(t.getTime()) : typeof ArrayBuffer < \"u\" && r === ArrayBuffer ? n = Nt(t) : r === Promise ? n = new Promise((s, i) => {\n    t.then(\n      (o) => {\n        s(te(o, e));\n      },\n      (o) => {\n        i(te(o, e));\n      }\n    );\n  }) : r === Error ? n = Object.create(t) : n = Object.create(\n    Object.getPrototypeOf(t)\n    // Object.getOwnPropertyDescriptors(from)\n  ), t instanceof Map)\n    t.forEach((s, i) => {\n      n.set(te(i, e), te(s, e));\n    });\n  else if (t instanceof Set)\n    t.forEach((s) => {\n      n.add(te(s, e));\n    });\n  else\n    for (const s in t)\n      try {\n        Object.getOwnPropertyDescriptor(t, s) && (n[s] = te(t[s], e));\n      } catch (i) {\n        if (i instanceof TypeError)\n          continue;\n        if (i instanceof ReferenceError)\n          continue;\n      }\n  if (Object.getOwnPropertySymbols) {\n    const s = Object.getOwnPropertySymbols(t);\n    for (let i = 0, o = s.length; i < o; i++) {\n      const a = s[i], c = Object.getOwnPropertyDescriptor(t, a);\n      c && (n[a] = te(t[a], e), Object.defineProperty(n, a, c));\n    }\n  }\n  return e.set(t, n), n;\n}\nfunction Sa(t) {\n  if (t === null)\n    return null;\n  class e {\n  }\n  return e.prototype = t, new e();\n}\nfunction xa(t, e) {\n  t.prototype = Object.create(e.prototype), t.prototype.constructor = t;\n}\nfunction Aa(t, e) {\n  return t.__proto__ = e, t;\n}\nfunction ms(t, e) {\n  return t === e || t !== t && e !== e;\n}\nfunction gs(t, e) {\n  if (t === e)\n    return !0;\n  const n = Object.keys(t), r = Object.keys(e);\n  if (n.length !== r.length)\n    return !1;\n  for (const s of n) {\n    const i = t[s], o = e[s], a = D(i) && D(o);\n    if (a && !gs(i, o) || !a && i !== o)\n      return !1;\n  }\n  return !0;\n}\nfunction Oa(t, e) {\n  return t.bind ? t.bind(e) : function(...r) {\n    return t.apply(e, r);\n  };\n}\nfunction va(t) {\n  const e = /* @__PURE__ */ new WeakMap();\n  return new Proxy(t, {\n    get(n, r) {\n      const s = Reflect.get(n, r);\n      return typeof s != \"function\" ? s : (e.has(s) || e.set(s, s.bind(n)), e.get(s));\n    }\n  });\n}\nfunction Ra(t, e) {\n  if (!D(t))\n    return t;\n  for (const n in e)\n    Object.prototype.hasOwnProperty.call(e, n) && delete t[n];\n  return t;\n}\nfunction _a(t, e) {\n  if (!D(t))\n    return t;\n  for (const n in t)\n    Object.prototype.hasOwnProperty.call(t, n) && !e(n, t[n]) && delete t[n];\n  return t;\n}\nfunction Ta(t, e) {\n  const n = {};\n  return D(t) && e.forEach((r) => {\n    Object.prototype.hasOwnProperty.call(t, r) && (n[r] = t[r]);\n  }), n;\n}\nfunction Ea(t) {\n  return D(t) && Oe(t).forEach((e) => {\n    delete t[e];\n  }), t;\n}\nfunction L(t, e = `\\r\n`, n = 6, r = 1) {\n  if (cs(t))\n    return `\"${t}\"`;\n  if (Ut(t))\n    return \"\" + t;\n  if (re(t))\n    return \"[Fn]\";\n  if (r > n)\n    return $(t) ? \"[...]\" : \"{...}\";\n  let s = \"\", i = \"\";\n  for (let o = 0; o < r; o++)\n    s += \"  \", o > 0 && (i += \"  \");\n  return $(t) ? `[${t.map(\n    (o) => e + s + L(o, e, n, r + 1)\n  ).join(\", \")}${e}${i}]` : `{${Oe(t).map(\n    (o) => `${e}${s}${o}: ${L(\n      t[o],\n      e,\n      n,\n      r + 1\n    )}`\n  ).join(\", \")}${e}${i}}`;\n}\nfunction Bn(t) {\n  if (t != null)\n    try {\n      return Function.prototype.toString.call(t);\n    } catch {\n      try {\n        return \"\" + t;\n      } catch {\n      }\n    }\n  return \"\";\n}\nfunction ka(t, e = \"\", n = [\"\", \"sign\", \"key\"]) {\n  return D(t) ? Object.keys(t).filter((r) => {\n    for (let s = 0, i = n.length; s < i; s++)\n      if (t[r] == n[s])\n        return !1;\n    return !0;\n  }).sort().map((r) => `${r}=${t[r]}`).join(\"&\") + e : String(t);\n}\nfunction jn(t, e, n = \"\") {\n  let r = [];\n  return t === e ? r : typeof t != \"object\" || typeof e != \"object\" || !t || !e ? (r.push({\n    path: n,\n    newValue: e,\n    oldValue: t\n  }), r) : ((/* @__PURE__ */ new Set([...Object.keys(t), ...Object.keys(e)])).forEach((i) => {\n    const o = n ? `${n}.${i}` : i;\n    r = r.concat(jn(t[i], e[i], o));\n  }), r);\n}\nfunction Ca(t, e) {\n  try {\n    return e.split(\".\").reduce((n, r) => n?.[r], t);\n  } catch {\n    return;\n  }\n}\nfunction Pa(t, e, n) {\n  if (!t || !e)\n    return t;\n  const r = e.split(\".\");\n  let s = t;\n  for (let i = 0, o = r.length - 1; i < o; i++) {\n    const a = r[i];\n    (!(a in s) || typeof s[a] != \"object\" || s[a] === null) && (s[a] = {}), s = s[a];\n  }\n  return s[r[r.length - 1]] = n, t;\n}\nconst Da = 9007199254740991, Ma = -9007199254740991, Ia = Math.pow(2, -52);\nfunction qn(t) {\n  return Number.isNaN(t);\n}\nfunction La(t) {\n  return typeof t == \"number\" && qn(t);\n}\nconst $a = (t) => t % 2 === 0;\nfunction ys(t) {\n  if (t <= 1)\n    return !1;\n  for (let e = 2; e <= Math.sqrt(t); e++)\n    if (t % e === 0)\n      return !1;\n  return !0;\n}\nfunction ws(t) {\n  for (; !ys(t); )\n    t++;\n  return t;\n}\nconst Fa = (...t) => t.reduce((e, n) => e + n) / t.length;\nfunction G(t, e) {\n  const n = parseFloat(t);\n  return Number.isNaN(n) ? typeof e == \"number\" ? e : NaN : n;\n}\nfunction Na(t, e, n) {\n  return typeof t == \"string\" ? (t = t.trim().toLowerCase(), t.indexOf(\"%\") > 0 ? G(t, e) / 100 * n : t.indexOf(\"vw\") > 0 ? G(t, e) / 100 * window.innerWidth : t.indexOf(\"vh\") > 0 ? G(t, e) / 100 * window.innerHeight : t.indexOf(\"vm\") > 0 ? G(t, e) / 100 * Math.min(window.innerWidth, window.innerHeight) : t == \"top\" || t == \"left\" ? 0 : t == \"center\" || t == \"middle\" ? n * 0.5 : t == \"bottom\" || t == \"right\" ? n : G(t, e)) : G(t, e);\n}\nfunction bs(t = 1e-6) {\n  return function(e, n) {\n    return Math.abs(e - n) < t;\n  };\n}\nfunction Ua(t, e) {\n  const n = (t.toString().split(\".\")[1] || \"\").length, r = (e.toString().split(\".\")[1] || \"\").length, s = Math.pow(10, Math.max(n, r));\n  return (t * s + e * s) / s;\n}\nfunction ce(t, e, n) {\n  const r = Math.min(e, n), s = Math.max(e, n);\n  return t < r ? r : t > s ? s : t;\n}\nfunction Ba(t, e = 0) {\n  const n = Math.pow(10, e);\n  return Math.round(n * t) / n;\n}\nfunction ja(t, e) {\n  return (t % e + e) % e;\n}\nfunction Ss(t, e, n) {\n  return typeof t == \"number\" && typeof e == \"number\" ? (1 - n) * t + n * e : typeof t == \"number\" ? t : typeof e == \"number\" ? e : 0;\n}\nfunction qa(t, e, n) {\n  const r = Math.max(t.length, e.length), s = new Array(r);\n  for (let i = 0; i < r; i++)\n    s[i] = Ss(t[i], e[i], n);\n  return s;\n}\nfunction za(t, e, n, r) {\n  return (s) => n + (r - n) * ((s - t) / (e - t));\n}\nfunction Ha(t, e, n) {\n  return (r) => {\n    const s = ce(r, t, e);\n    return n == 0 ? s : e - s < n ? e : Math.round(s / n) * n;\n  };\n}\nfunction Va(t, e = 12) {\n  return G(t, 0).toPrecision(e);\n}\nfunction zn(t, e = 12) {\n  return G(t, 0).toFixed(e);\n}\nfunction K(t, e = 12) {\n  return +zn(t, e);\n}\nfunction Wa(t) {\n  return K(t, 0);\n}\nfunction Ga(t, e = 4, n = \",\") {\n  const r = new RegExp(`\\\\d{1,${e}}(?=(\\\\d{${e}})+$)`, \"g\");\n  return String(t).replace(r, `$&${n}`);\n}\nfunction Xa(t, e) {\n  const n = Ft(\"number-single\", String(t));\n  return {\n    hasNumber: !!n,\n    number: n && !Array.isArray(n) && n.fullMatch ? parseFloat(n.fullMatch) : as(e) ? e : NaN,\n    prefix: n && !Array.isArray(n) && n.fullMatch ? t.substring(0, n.matchIndex) : \"\",\n    suffix: n && !Array.isArray(n) && n.fullMatch ? t.substring(n.matchIndex + n.fullMatch.length) : \"\"\n  };\n}\nfunction xs(t) {\n  const e = Ft(\"number\", t);\n  return e ? Array.isArray(e) ? e.map((n) => Number(n.fullMatch)) : [Number(e.fullMatch)] : [];\n}\nfunction Ja() {\n  return Math.random() > 0.5 ? 1 : -1;\n}\nfunction As(t = 0, e = 100) {\n  return Math.random() * (e - t) + t;\n}\nfunction Ya(t = 0, e = 100) {\n  return Math.floor(As(t, e));\n}\nfunction Za(t = 0) {\n  return () => ++t;\n}\nfunction Ka(t, e) {\n  switch (e.constructor) {\n    case Float32Array:\n      return t;\n    case Uint32Array:\n      return Math.round(t * 4294967295);\n    case Uint16Array:\n      return Math.round(t * 65535);\n    case Uint8Array:\n      return Math.round(t * 255);\n    case Int32Array:\n      return Math.round(t * 2147483647);\n    case Int16Array:\n      return Math.round(t * 32767);\n    case Int8Array:\n      return Math.round(t * 127);\n    default:\n      throw new Error(\"Invalid component type.\");\n  }\n}\nfunction Qa(t, e) {\n  switch (e.constructor) {\n    case Float32Array:\n      return t;\n    case Uint32Array:\n      return t / 4294967295;\n    case Uint16Array:\n      return t / 65535;\n    case Uint8Array:\n      return t / 255;\n    case Int32Array:\n      return Math.max(t / 2147483647, -1);\n    case Int16Array:\n      return Math.max(t / 32767, -1);\n    case Int8Array:\n      return Math.max(t / 127, -1);\n    default:\n      throw new Error(\"Invalid component type.\");\n  }\n}\nconst ec = (t) => new Array(t).fill(void 0), tc = (t) => Array.isArray(t) && t.length > 0;\nfunction nc(t, e) {\n  const n = new Array(t);\n  let r = -1;\n  for (; ++r < t; )\n    n[r] = e(r);\n  return n;\n}\nfunction rc(t, e) {\n  return Array.from({ length: t }, (n, r) => e);\n}\nfunction Os(t, e, n) {\n  return Array.from(\n    { length: t },\n    () => new Array(e).fill(n)\n  );\n}\nfunction sc(t, e) {\n  return t[0].length ? Os(\n    t.map((n) => n.filter((r, s) => s === 0)[0]).length,\n    t[0].length,\n    e\n  ) : new Error(\"Illegal, Array must be any[][]!\");\n}\nfunction vs(t, e) {\n  return [...t[e]];\n}\nfunction Rs(t, e) {\n  return t.map((n) => n.filter((r, s) => s === e)[0]);\n}\nfunction ic(t, e, n) {\n  return {\n    row: vs(t, e),\n    column: Rs(t, n)\n  };\n}\nfunction oc(t, e) {\n  const n = t.length || 0;\n  let r = -1;\n  for (; ++r < n && e(t[r], r, t) !== !1; )\n    ;\n  return t;\n}\nfunction _s(t, e, n) {\n  [t[e], t[n]] = [t[n], t[e]];\n}\nfunction ac(t, e) {\n  return _s(t, 0, e);\n}\nfunction cc(t) {\n  t.sort((n, r) => n - r);\n  const e = Math.floor(t.length / 2);\n  return t[e];\n}\nfunction uc(t) {\n  if (t.length)\n    return t[0];\n}\nfunction lc(t) {\n  if (t.length)\n    return t[t.length - 1];\n}\nfunction fc(t, e) {\n  for (let n = 0, r = t.length; n < r; n++)\n    if (t[n] == e)\n      return !0;\n  return !1;\n}\nfunction Ts(t = [], e = []) {\n  const n = t.length, r = e.length;\n  for (let i = 0; i < r; i++)\n    t[i] = e[i];\n  let s = Math.max(0, n - r);\n  for (; s > 0; )\n    t.pop(), s--;\n  return t;\n}\nfunction hc(t) {\n  for (; t.length; )\n    t.pop();\n}\nfunction dc(t, e, n) {\n  return t.splice(ce(e, 0, t.length - 1), 0, n), t;\n}\nfunction pc(t, e) {\n  const n = t.findIndex((r) => r === e);\n  return n >= 0 && t.splice(n, 1), t;\n}\nconst mc = (t) => $(t) && Object.keys(t).length > 0, gc = (t, e) => t.length === e.length && t.every((n, r) => n === e[r]);\nfunction* Hn(t) {\n  for (const e of t)\n    $(e) ? yield* Hn(e) : yield e;\n}\nfunction yc(t) {\n  if ($(t))\n    return [...Hn(t)];\n}\nfunction Es(t) {\n  let e = [];\n  return t.forEach((n) => {\n    $(n) ? e = e.concat(Es(n)) : e.push(n);\n  }), e;\n}\nfunction ks(t) {\n  return t.reduce((e, n) => e.concat($(n) ? ks(n) : n), []);\n}\nfunction wc(t) {\n  for (; t.some((e) => $(e)); )\n    t = [].concat(...t);\n  return t;\n}\nfunction bc(t) {\n  return t.toString().split(\",\");\n}\nfunction Sc(t) {\n  return t.flat(1 / 0);\n}\nfunction xc(t) {\n  let e = JSON.stringify(t);\n  return e = e.replace(/(\\[|\\])/g, \"\"), e = \"[\" + e + \"]\", JSON.parse(e);\n}\nconst Ac = (t) => t.sort(() => 0.5 - Math.random());\nfunction Oc(t) {\n  return [...new Set(t)];\n}\nfunction Cs(t, e) {\n  return t.findIndex((n) => n == e) >= 0;\n}\nfunction vc(t, ...e) {\n  return e.forEach((n) => {\n    Cs(t, n) || t.push(n);\n  }), t;\n}\nfunction Rc(t, e) {\n  return [.../* @__PURE__ */ new Set([...t, ...e])];\n}\nfunction _c(t, e) {\n  return /* @__PURE__ */ new Set([...t, ...e]);\n}\nfunction Tc(t, e) {\n  return [...new Set(t.filter((n) => e.includes(n)))];\n}\nfunction Ec(t, e) {\n  return new Set([...t].filter((n) => e.has(n)));\n}\nfunction kc(t, e) {\n  const n = /* @__PURE__ */ new Map();\n  t.forEach((s) => {\n    n.set(s, !0);\n  });\n  const r = [];\n  return e.forEach((s) => {\n    n.has(s) && (r.push(s), n.delete(s));\n  }), r;\n}\nfunction Cc(t, e) {\n  return [...new Set(t.filter((n) => !e.includes(n)))];\n}\nfunction Pc(t, e) {\n  return new Set([...t].filter((n) => !e.has(n)));\n}\nfunction Dc(t) {\n  for (let e = t.length - 1; e >= 0; --e)\n    if (t[e] >= 65535)\n      return !0;\n  return !1;\n}\nfunction Mc(t, e = \"Asia/Shanghai\") {\n  const n = (/* @__PURE__ */ new Date()).getTimezoneOffset() * 60 * 1e3;\n  return new Date(t.getTime() - n);\n}\nfunction Be() {\n  return (performance || Date).now();\n}\nfunction X(t = /* @__PURE__ */ new Date()) {\n  return t.getTime();\n}\nfunction Ic(t = /* @__PURE__ */ new Date(), e = \"yyyy-mm-dd hh:ii:ss.SSS\") {\n  return ve(t, e);\n}\nfunction N(t) {\n  return !qn(t.valueOf());\n}\nconst Bt = 864e5;\nfunction Vn(t) {\n  return t > 1e12;\n}\nfunction Lc(t) {\n  return t > 1e9 && !Vn(t);\n}\nfunction tt(t) {\n  if (t == null)\n    return /* @__PURE__ */ new Date(NaN);\n  if (t instanceof Date)\n    return new Date(t);\n  if (typeof t == \"string\") {\n    const n = t.match(\n      /^(\\d{4})[-/.]?(\\d{1,2})?[-/.]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?[zZ]?$/\n    );\n    if (n && n[1] && n[2]) {\n      const r = parseInt(n[1]), s = n[2] ? Math.max(parseInt(n[2]) - 1, 0) : 0, i = n[3] ? parseInt(n[3]) : 1, o = n[4] ? parseInt(n[4]) : 0, a = n[5] ? parseInt(n[5]) : 0, c = n[6] ? parseInt(n[6]) : 0, u = n[7] ? parseInt(n[7].substring(0, 3)) : 0;\n      return /Z$/i.test(t) ? new Date(Date.UTC(r, s, i, o, a, c, u)) : new Date(r, s, i, o, a, c, u);\n    } else\n      return /* @__PURE__ */ new Date(NaN);\n  }\n  if (Array.isArray(t))\n    return new Date(\n      t[0],\n      Math.max(t[1] - 1, 0),\n      t[2] || 1,\n      t[3] || 0,\n      t[4] || 0,\n      t[5] || 0,\n      t[6] || 0\n    );\n  const e = Vn(t);\n  return new Date(e ? t : t * 1e3);\n}\nfunction $c(t, e = 3) {\n  const n = Math.max(t.length, 6);\n  let r = \"\";\n  for (let i = 0; i < n - 4; i++)\n    r += t[i] || \"0\";\n  const s = [\n    r,\n    \"\" + (t[n - 4] || \"0\") + (t[n - 3] || \"0\"),\n    \"\" + (t[n - 2] || \"0\") + (t[n - 1] || \"0\")\n  ];\n  switch (e) {\n    case 1:\n      return s[0];\n    case 2:\n      return s[0] + \":\" + s[1];\n    case 3:\n      return s[0] + \":\" + s[1] + \":\" + s[2];\n  }\n}\nfunction Fc(t, e = 3) {\n  const n = Math.max(t.length, 6);\n  let r = 0;\n  for (let o = 0; o < n - 4; o++)\n    r = r * 10 + (t[o] || 0);\n  const s = [\n    Math.floor(r),\n    Math.floor((t[n - 4] || 0) * 10 + (t[n - 3] || 0)),\n    Math.floor((t[n - 2] || 0) * 10 + (t[n - 1] || 0))\n  ];\n  let i = \"\";\n  switch (e) {\n    case 1:\n      s[0] ? i += s[0] + \"小时\" : (s[1] || s[2]) && (i += \"1小时\");\n      break;\n    case 2:\n      s[0] && (i += s[0] + \"小时\"), s[1] ? i += s[1] + \"分钟\" : s[2] && (i += \"1分钟\");\n      break;\n    case 3:\n    default:\n      s[0] && (i += s[0] + \"小时\"), (s[1] || s[2]) && (i += s[1] + \"分钟\"), s[2] && (i += s[2] + \"秒\");\n      break;\n  }\n  return i || \"0秒\";\n}\nfunction Me(t) {\n  const e = Math.max(t.length, 6);\n  let n = 0;\n  n += (t[e - 2] || 0) * 10 + (t[e - 1] || 0), n += ((t[e - 4] || 0) * 10 + (t[e - 3] || 0)) * 60;\n  let r = 0;\n  for (let s = 0; s < e - 4; s++)\n    r = r * 10 + (t[s] || 0);\n  return n += r * 60 * 60, Math.floor(Math.max(0, n));\n}\nfunction le(t, e = !1) {\n  let n = 0;\n  typeof t == \"number\" ? n = t : n = Me(t);\n  const r = [], s = n % 60;\n  r.unshift(s % 10), r.unshift(Math.floor(s / 10)), n = Math.floor(n / 60);\n  const i = n % 60;\n  if (r.unshift(i % 10), r.unshift(Math.floor(i / 10)), n = Math.floor(n / 60), e) {\n    const o = n % 100;\n    for (r.unshift(o % 10), r.unshift(Math.floor(o / 10)), n = Math.floor(n / 100); n; )\n      r.unshift(n % 10), n = Math.floor(n / 10);\n  } else {\n    const o = n % 24;\n    r.unshift(o % 10), r.unshift(Math.floor(o / 10));\n  }\n  return r;\n}\nfunction Nc(t, e = !1) {\n  const n = xs(t);\n  let r = 0, s = 0, i = 0;\n  for (let o = 0, a = Math.max(n.length, 3); o < a; o++) {\n    const c = Math.floor(Math.abs(n[o] || 0));\n    o == 0 ? e ? r = c : r = c % 24 : o == 1 ? s = c : o == 2 && (i = c);\n  }\n  return le(r * 60 * 60 + s * 60 + i, e);\n}\nfunction Uc(t) {\n  const e = t.getHours(), n = t.getMinutes(), r = t.getSeconds();\n  return le(e * 60 * 60 + n * 60 + r);\n}\nfunction Bc(t, e = !1) {\n  const n = t[0] || 0, r = t[1] || 0, s = t[2] || 0;\n  return le(n * 60 * 60 + r * 60 + s, e);\n}\nfunction jc(t, e, n = !1) {\n  const r = (N(t) && N(e) ? Math.abs(e.getTime() - t.getTime()) : 0) / 1e3;\n  return le(r, n);\n}\nfunction qc(t, e = 1, n = !1) {\n  return t[t.length - 1] += e, le(t, n);\n}\nfunction zc(t, e = 1, n = !1) {\n  return t[t.length - 1] -= e, le(t, n);\n}\nfunction Hc(t, e) {\n  Ts(e, t);\n}\nfunction Vc(t, e, n) {\n  const r = Me(t), s = Me(e), i = Me(n);\n  return s >= r ? i >= r && i <= s : i >= r || i <= s;\n}\nfunction sn(t, e) {\n  if (!N(t))\n    throw new Error(`Date(${t}) is Invalid !`);\n  if (!N(e))\n    throw new Error(`Date(${e}) is Invalid !`);\n  return Math.ceil((e.getTime() - t.getTime()) / Bt);\n}\nfunction Wc(t, e, n) {\n  return !(!N(t) || !N(e) || !N(n) || sn(t, n) < 0 || sn(n, e) < 0);\n}\nfunction ve(t, e = \"yyyy-mm-dd hh:ii:ss\") {\n  if (!N(t))\n    return \"\";\n  const n = /(y+)/.exec(e);\n  if (n && n[1]) {\n    const s = n[1];\n    e = e.replace(\n      s,\n      // (date.getFullYear() + \"\").substring(Math.max(4 - year.length, 0))\n      (t.getFullYear() + \"\").substring(4 - s.length)\n    );\n  }\n  const r = {\n    \"m+\": t.getMonth() + 1,\n    //月份\n    \"d+\": t.getDate(),\n    //日\n    \"h+\": t.getHours(),\n    //小时\n    \"i+\": t.getMinutes(),\n    //分\n    \"s+\": t.getSeconds(),\n    //秒\n    \"q+\": Math.floor((t.getMonth() + 3) / 3),\n    // 季度\n    \"S+\": t.getMilliseconds()\n    //毫秒\n  };\n  for (const s in r) {\n    const i = new RegExp(\"(\" + s + \")\").exec(e);\n    if (i && i[1]) {\n      const o = i[1];\n      e = e.replace(\n        o,\n        // d.length == 1 ? \"\" + o[k] : (\"00\" + o[k]).substring((\"\" + o[k]).length)\n        // d.length == 1\n        //   ? \"\" + o[k]\n        //   : (\"00\" + o[k]).substring((\"\" + o[k]).length - d.length + 2)\n        o.length === 1 ? \"\" + r[s] : (\"00\" + r[s]).slice(-o.length)\n      );\n    }\n  }\n  return e;\n}\nfunction Gc(t = \"yyyy-mm-dd hh:ii:ss\") {\n  return (e) => ve(e, t);\n}\nfunction Xc(t, e = \"-\") {\n  return ve(t, `yyyy${e}mm${e}dd`);\n}\nfunction Jc(t, e = \":\") {\n  return ve(t, `hh${e}ii${e}ss`);\n}\nfunction Yc(t) {\n  return N(t) ? t.toTimeString().slice(0, 8) : \"\";\n}\nfunction Zc(t, e = \"-\", n = \":\") {\n  return ve(\n    t,\n    `yyyy${e}mm${e}dd hh${n}ii${n}ss`\n  );\n}\nfunction Kc(t) {\n  return N(t) ? [0, 6].indexOf(t.getDay()) !== -1 : !1;\n}\nfunction Qc(t) {\n  return N(t) ? Math.floor(\n    (t.getTime() - new Date(t.getFullYear(), 0, 0).getTime()) / Bt\n  ) : -1;\n}\nfunction Ps(t, e) {\n  return new Date(t, e, 0).getDate();\n}\nfunction Ds(t, e) {\n  const n = new Date(t, e, 1);\n  return n.setHours(0, 0, 0, 0), n.getTime() - 1;\n}\nfunction e2(t, e) {\n  return Ds(t, e) + 1;\n}\nfunction Ms(t, e) {\n  const n = new Date(t, e - 1, 1);\n  return n.setHours(0, 0, 0, 0), n.getTime();\n}\nfunction t2(t, e) {\n  return Ms(t, e) - 1;\n}\nfunction n2(t, e = 1) {\n  const n = typeof t == \"string\" ? tt(t) : new Date(t);\n  n.setHours(0, 0, 0, 0);\n  const r = new Date(n);\n  return n.setMonth(n.getMonth() + e), n.getDate() < r.getDate() && n.setDate(0), new Date(n.getTime() - 1);\n}\nfunction r2(t, e = 1, n = !1) {\n  const r = typeof t == \"string\" ? tt(t) : new Date(t);\n  r.setHours(0, 0, 0, 0);\n  const s = new Date(r);\n  return r.setMonth(r.getMonth() + e), r.getDate() < s.getDate() ? (r.setDate(0), r) : n ? r : new Date(r.getTime() - 1);\n}\nfunction Ee(t, e = 1) {\n  const n = typeof t == \"string\" ? tt(t) : t;\n  return new Date(n.getTime() + e * Bt);\n}\nfunction pe(t) {\n  const e = t.getFullYear(), n = t.getMonth() + 1, r = t.getDate();\n  let s = t.getDay();\n  return s == 0 && (s = 7), {\n    year: e,\n    month: n,\n    day: r,\n    weekday: s,\n    monthDays: Ps(e, n),\n    date: new Date(t)\n  };\n}\nfunction s2(t = \"\") {\n  const e = [], n = pe(\n    typeof t == \"string\" ? t != \"\" ? tt(t) : /* @__PURE__ */ new Date() : t\n  );\n  function r(s, i) {\n    if (s.month !== n.month)\n      return;\n    const o = [];\n    i == \"forward\" ? e.unshift(o) : e.push(o), o.push(s);\n    let a = s;\n    for (let c = s.weekday - 1; c >= 1; c--)\n      a = pe(Ee(a.date, -1)), o.unshift(a);\n    a = s;\n    for (let c = s.weekday + 1; c <= 7; c++)\n      a = pe(Ee(a.date, 1)), o.push(a);\n    o[0].day > 1 && (i == \"both\" || i == \"forward\") && r(pe(Ee(o[0].date, -1)), \"forward\"), o[6].day < n.monthDays && (i == \"both\" || i == \"backward\") && r(pe(Ee(o[6].date, 1)), \"backward\");\n  }\n  return r(n, \"both\"), e;\n}\nfunction i2(t, e) {\n  const n = typeof e?.aliveInSeconds == \"number\" ? Math.max(e.aliveInSeconds, 0) : -1, r = typeof e?.aliveUntilTimestamp == \"number\" ? Math.max(e.aliveUntilTimestamp, 0) : -1;\n  function s(c, u = !1) {\n    return Ut(c) || $(c) ? { v: c, [ge]: X() } : u && zr(c, ge) ? c : {\n      ...c,\n      [ge]: X()\n    };\n  }\n  let i = s(t, !0);\n  return {\n    get: () => {\n      let c = !1;\n      return (n >= 0 && X() > i[ge] + n * 1e3 || // 时间戳\n      r >= 0 && X() > r) && (c = !0), c && (i.v = void 0), i;\n    },\n    set: (c) => i = s(c)\n  };\n}\nconst Is = () => typeof window == \"object\" && typeof document == \"object\", o2 = () => !Is(), a2 = typeof BigInt < \"u\", c2 = typeof Symbol < \"u\", u2 = typeof document < \"u\", l2 = typeof window < \"u\", f2 = typeof history < \"u\";\nfunction h2(t, e) {\n  const n = t.split(\".\"), r = e.split(\".\");\n  for (let s = 0, i = n.length; s < i; s++) {\n    if (r.length == s)\n      return 1;\n    if (n[s] != r[s])\n      return n[s] > r[s] ? 1 : -1;\n  }\n  return n.length != r.length ? -1 : 0;\n}\nconst Ls = (() => !!(E.Worker && E.Blob && E.Promise && E.OffscreenCanvas && E.OffscreenCanvasRenderingContext2D && E.HTMLCanvasElement && E.HTMLCanvasElement.prototype.transferControlToOffscreen && E.URL && E.URL.createObjectURL))(), d2 = (() => {\n  if (!E.OffscreenCanvas)\n    return !1;\n  const t = new OffscreenCanvas(1, 1), e = t.getContext(\"2d\");\n  if (!e)\n    return !1;\n  e.fillRect(0, 0, 1, 1);\n  const n = t.transferToImageBitmap();\n  try {\n    e.createPattern(n, \"no-repeat\");\n  } catch {\n    return !1;\n  }\n  return !0;\n})();\nfunction ke(t, e) {\n  let n = t.length;\n  for (; n--; )\n    if (ms(t[n][0], e))\n      return n;\n  return -1;\n}\nclass on {\n  __data__ = {};\n  constructor(e = []) {\n    this.clear();\n    const n = e.length;\n    let r = -1;\n    for (; ++r < n; ) {\n      const s = e[r];\n      this.set(s[0], s[1]);\n    }\n  }\n  clear() {\n    this.__data__ = {};\n  }\n  has(e) {\n    return Object.prototype.hasOwnProperty.call(this.__data__, e);\n  }\n  set(e, n) {\n    return this.__data__[e] = n, this;\n  }\n  get(e) {\n    return this.has(e) ? this.__data__[e] : void 0;\n  }\n  delete(e) {\n    return this.has(e) && delete this.__data__[e];\n  }\n}\nclass St {\n  __data__ = [];\n  constructor(e = []) {\n    this.clear();\n    const n = e.length;\n    let r = -1;\n    for (; ++r < n; ) {\n      const s = e[r];\n      this.set(s[0], s[1]);\n    }\n  }\n  clear() {\n    this.__data__ = [];\n  }\n  has(e) {\n    return ke(this.__data__, e) > -1;\n  }\n  set(e, n) {\n    const r = ke(this.__data__, e);\n    return r < 0 ? this.__data__.push([e, n]) : this.__data__[r][1] = n, this;\n  }\n  get(e) {\n    const n = ke(this.__data__, e);\n    return n < 0 ? void 0 : this.__data__[n][1];\n  }\n  delete(e) {\n    const n = ke(this.__data__, e);\n    return n < 0 ? !1 : (n == this.__data__.length - 1 ? this.__data__.pop() : Array.prototype.splice.call(this.__data__, n, 1), !0);\n  }\n}\nclass p2 {\n  __data__ = this.clear();\n  constructor(e = []) {\n    this.clear();\n    const n = e.length;\n    let r = -1;\n    for (; ++r < n; ) {\n      const s = e[r];\n      this.set(s[0], s[1]);\n    }\n  }\n  clear() {\n    const e = {\n      string: new on(),\n      hash: new on(),\n      map: new (Map || St)()\n    };\n    return this.__data__ = e, e;\n  }\n  getData(e) {\n    return fs(e) ? this.__data__[typeof e == \"string\" ? \"string\" : \"hash\"] : this.__data__.map;\n  }\n  has(e) {\n    return this.getData(e).has(e);\n  }\n  set(e, n) {\n    return this.getData(e).set(e, n), this;\n  }\n  get(e) {\n    return this.getData(e).get(e);\n  }\n  delete(e) {\n    return this.getData(e).delete(e);\n  }\n}\nclass m2 {\n  __data__;\n  constructor(e = []) {\n    this.__data__ = new St(e);\n  }\n  clear() {\n    this.__data__ = new St();\n  }\n  has(e) {\n    return this.__data__.has(e);\n  }\n  set(e, n) {\n    return this.__data__.set(e, n), this;\n  }\n  get(e) {\n    return this.__data__.get(e);\n  }\n  delete(e) {\n    return this.__data__.delete(e);\n  }\n}\nlet xt;\ntry {\n  xt = Map;\n} catch {\n  xt = function() {\n  };\n}\nconst g2 = xt;\nfunction an(t) {\n  const e = Array(t.size);\n  return t.forEach(function(n, r) {\n    e.push([r, n]);\n  }), e;\n}\nfunction $s(t, e) {\n  return t.set(e[0], e[1]), t;\n}\nfunction y2(t, e) {\n  return (e ? e(an(t), !0) : an(t)).reduce($s, /* @__PURE__ */ new Map());\n}\nlet At;\ntry {\n  At = Set;\n} catch {\n  At = function() {\n  };\n}\nconst w2 = At;\nfunction cn(t) {\n  const e = Array(t.size);\n  return t.forEach((n, r) => {\n    e[r] = n;\n  }), e;\n}\nfunction Fs(t, e) {\n  return t.add(e), t;\n}\nfunction b2(t, e) {\n  return (e ? e(cn(t), !0) : cn(t)).reduce(Fs, /* @__PURE__ */ new Set());\n}\nconst Ns = (t, e = 16) => t.toString(e), Us = (t, e = 16) => {\n  let n = t.toLowerCase();\n  const r = n.indexOf(\"0b\") == 0, s = n.indexOf(\"0o\") == 0, i = n.indexOf(\"0x\") == 0;\n  (r || s || i) && (n = n.slice(2)), r && (e = 2), s && (e = 8), i && (e = 16);\n  const o = parseInt(n, e);\n  if (isNaN(o))\n    throw new Error(`radixStringToNumber(${t}, ${e}) 无法解析！`);\n  return o;\n};\nfunction Bs(t) {\n  return Array.from(new Uint8Array(t));\n}\nfunction js(t) {\n  const e = [];\n  for (; t > 0; ) {\n    const n = t & 255;\n    e.unshift(n), t = (t - n) / 256;\n  }\n  return e;\n}\nfunction qs(t) {\n  t.toLowerCase().indexOf(\"0x\") == 0 && (t = t.slice(2));\n  const e = [];\n  for (let n = 0, r = t.length; n < r; n += 2)\n    e.push(Us(t.slice(n, n + 2), 16));\n  return e;\n}\nfunction zs(t) {\n  const e = [];\n  for (let n = 0, r = t.length; n < r; n++) {\n    const s = t.charCodeAt(n);\n    s && e.push(s);\n  }\n  return e;\n}\nfunction S2(t) {\n  return new TextEncoder().encode(t);\n}\nfunction x2(t) {\n  const e = [];\n  for (const n of t) {\n    const r = n.codePointAt(0);\n    r && e.push(r);\n  }\n  return e;\n}\nfunction A2(t) {\n  return et(t);\n}\nfunction O2(t) {\n  return et(js(t));\n}\nfunction v2(t) {\n  return et(qs(t));\n}\nfunction Hs(t) {\n  return et(zs(t));\n}\nfunction Vs(t) {\n  return Xs(encodeURIComponent(t)).replaceAll(\"+\", \"*\").replaceAll(\"/\", \"-\").replaceAll(\"=\", \"\");\n}\nfunction Ws(t) {\n  let e = t.replaceAll(\"*\", \"+\").replaceAll(\"-\", \"/\");\n  const n = e.length % 4;\n  return n && (e = e.padEnd(e.length + (4 - n), \"=\")), decodeURIComponent(Xn(e));\n}\nfunction R2(t) {\n  return Vs(Gs(Bs(t)));\n}\nfunction _2(t) {\n  return Hs(Ws(t));\n}\nfunction T2(t) {\n  let e = 0;\n  for (let n = 0, r = t.length; n < r; n++)\n    e = e * 256 + t[n];\n  return e;\n}\nfunction E2(t) {\n  let e = \"\";\n  for (let n = 0, r = t.length; n < r; n++)\n    e += Ns(t[n], 16).padStart(2, \"0\");\n  return e;\n}\nfunction Gs(t) {\n  return String.fromCodePoint.apply(null, t);\n}\nfunction k2(t) {\n  return String.fromCharCode.apply(\n    null,\n    new Uint16Array(t)\n  );\n}\nfunction C2(t, e = Ue.utf8) {\n  return new TextDecoder(e).decode(t);\n}\nfunction P2(t) {\n  return Xn(t);\n}\nfunction D2(t, e) {\n  const n = e?.mime, r = e?.encode, s = e?.type;\n  return s ? new Blob([t], {\n    type: s\n  }) : n ? r === Ue.base64 ? new Blob([t], { type: `${n};${r}` }) : r === Ue.utf8 ? new Blob([t], {\n    type: `${n};charset=${r}`\n  }) : new Blob([t], {\n    type: `${n}`\n  }) : new Blob([t]);\n}\nconst M2 = (t) => {\n  let e = W.UNKNOWN;\n  switch (new DataView(t).getUint32(0, jt()).toString(16).toUpperCase()) {\n    case \"FFD8FFDB\":\n      e = W.JPEG;\n      break;\n    case \"FFD8FFE0\":\n    case \"FFD8FFE1\":\n    case \"FFD8FFE2\":\n    case \"FFD8FFE3\":\n      e = W.JPEG;\n      break;\n    case \"89504E47\":\n      e = W.PNG;\n      break;\n    case \"47494638\":\n      e = W.GIF;\n      break;\n    case \"52494646\":\n      e = W.WEBP;\n      break;\n    case \"25504446\":\n      e = W.PDF;\n      break;\n    case \"504B0304\":\n      e = W.ZIP;\n      break;\n  }\n  return e;\n};\nclass Wn extends Error {\n  constructor(e) {\n    super(e);\n  }\n}\nconst Gn = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Xs(t) {\n  const e = String(t);\n  let n = \"\";\n  for (\n    let r = 0, s, i = 0, o = Gn;\n    // if the next str index does not exist:\n    //   change the mapping table to \"=\"\n    //   check if d has no fractional digits\n    e.charAt(i | 0) || (o = \"=\", i % 1);\n    // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n    n += o.charAt(63 & r >> 8 - i % 1 * 8)\n  ) {\n    if (s = e.charCodeAt(i += 3 / 4), s > 255)\n      throw new Wn(\n        \"'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.\"\n      );\n    r = r << 8 | s;\n  }\n  return n;\n}\nfunction Xn(t) {\n  const e = String(t).replace(/[=]+$/, \"\");\n  if (e.length % 4 === 1)\n    throw new Wn(\n      \"'atob' failed: The string to be decoded is not correctly encoded.\"\n    );\n  let n = \"\";\n  for (\n    let r = 0, s = 0, i, o = 0;\n    // get next character\n    i = e.charAt(o++);\n    // eslint-disable-line no-cond-assign\n    // character found in table? initialize bit storage and add its ascii value;\n    ~i && (s = r % 4 ? s * 64 + i : i, // and if not first of each 4 characters,\n    // convert the first 8 bits to one ascii character\n    r++ % 4) ? n += String.fromCharCode(255 & s >> (-2 * r & 6)) : 0\n  )\n    i = Gn.indexOf(i);\n  return n;\n}\nfunction jt() {\n  const t = Uint32Array.of(305419896), e = new Uint8Array(t.buffer);\n  switch (e[0] * 16777216 + e[1] * 65536 + e[2] * 256 + e[3]) {\n    case 305419896:\n      return !1;\n    case 2018915346:\n      return !0;\n  }\n}\nfunction I2(t, e, n = jt()) {\n  const r = t.getUint32(e, n), s = t.getUint32(e + 4, n), i = n ? r + 2 ** 32 * s : 2 ** 32 * r + s;\n  return Number.isSafeInteger(i) || console.warn(i, \"exceeds MAX_SAFE_INTEGER. Precision may be lost\"), i;\n}\nfunction L2(t, e, n = jt()) {\n  const r = BigInt(32);\n  BigInt(0);\n  const s = BigInt(t.getUint32(e | 0, !!n) >>> 0), i = BigInt(\n    t.getUint32((e | 0) + 4 | 0, !!n) >>> 0\n  );\n  return n ? i << r | s : s << r | i;\n}\nfunction oe(t) {\n  let e = \"\";\n  return {\n    match: (n) => (e = `\"${String(n)}\"不能为空`, n != null && n !== \"\"),\n    error: t || e\n  };\n}\nfunction Js(t, e) {\n  let n = \"\";\n  return {\n    match: (r) => (n = `\"${r}\"不能小于\"${t}\"`, r >= t),\n    error: e || n\n  };\n}\nfunction Ys(t, e) {\n  let n = \"\";\n  return {\n    match: (r) => (n = `\"${r}\"不能大于\"${t}\"`, r <= t),\n    error: e || n\n  };\n}\nfunction $2(t, e) {\n  let n = \"\";\n  return {\n    match: (r) => (n = `\"${r}\"的长度不能小于\"${t}\"`, Q(r) >= t),\n    error: e || n\n  };\n}\nfunction F2(t, e) {\n  let n = \"\";\n  return {\n    match: (r) => (n = `\"${r}\"的长度不能大于\"${t}\"`, Q(r) <= t),\n    error: e || n\n  };\n}\nfunction Zs(t, e) {\n  let n = \"\";\n  return {\n    match: (r) => (n = `\"${r}\"的长度必须为\"${t}\"`, Q(r) == t),\n    error: e || n\n  };\n}\nfunction Ks(t) {\n  return {\n    match: (e) => xe(\"email\", e),\n    error: t || \"邮箱格式不正确\"\n  };\n}\nfunction Qs(t) {\n  return {\n    match: (e) => xe(\"mobile-china\", e),\n    error: t || \"手机格式不正确\"\n  };\n}\nfunction ei(t) {\n  return {\n    match: (e) => xe(\"date\", e),\n    error: t || \"日期格式不正确\"\n  };\n}\nfunction ti(t) {\n  return {\n    match: (e) => xe(\"time\", e),\n    error: t || \"时间格式不正确\"\n  };\n}\nfunction ni(t) {\n  return {\n    match: (e) => xe(\"datetime\", e),\n    error: t || \"时间格式不正确\"\n  };\n}\nfunction ri(t, e) {\n  let n = \"\";\n  return {\n    match: (r) => (n = `\"${r}\" 不在 \"${t}\" 范围内`, t.some((s) => s === r)),\n    error: e || n\n  };\n}\nfunction Z(t, e) {\n  const n = e.reduce((r, s) => {\n    const { match: i, error: o } = s;\n    return i(t) || r.push(o), r;\n  }, []);\n  return {\n    valid: n.length === 0,\n    errors: n\n  };\n}\nclass N2 {\n  criterias = [];\n  constructor(e = []) {\n    e.forEach((n) => this.add(n));\n  }\n  add(...e) {\n    this.criterias.push(...e);\n  }\n  clear() {\n    this.criterias = [];\n  }\n  get() {\n    return (e) => Z(e, this.criterias);\n  }\n  run(e) {\n    return this.get()(e);\n  }\n}\nfunction U2(t) {\n  return (e) => {\n    const n = Z(e, [\n      oe(t?.emptyError || \"邮箱不能为空\"),\n      Ks(t?.error || \"邮箱格式不正确\")\n    ]);\n    if (!n.valid && t?.throw)\n      throw new Error(n.errors[0]);\n    return n;\n  };\n}\nfunction B2(t) {\n  return (e) => {\n    const n = Z(e, [\n      oe(t?.emptyError || \"手机号不能为空\"),\n      Qs(t?.error || \"手机格式不正确\")\n    ]);\n    if (!n.valid && t?.throw)\n      throw new Error(n.errors[0]);\n    return n;\n  };\n}\nfunction j2(t) {\n  return (e) => {\n    const n = Z(e, [\n      oe(t?.emptyError || \"日期不能为空\"),\n      ei(t?.error || \"日期格式不正确\")\n    ]);\n    if (!n.valid && t?.throw)\n      throw new Error(n.errors[0]);\n    return n;\n  };\n}\nfunction q2(t) {\n  return (e) => {\n    const n = Z(e, [\n      oe(t?.emptyError || \"时间不能为空\"),\n      ti(t?.error || \"时间格式不正确\")\n    ]);\n    if (!n.valid && t?.throw)\n      throw new Error(n.errors[0]);\n    return n;\n  };\n}\nfunction z2(t) {\n  return (e) => {\n    const n = Z(e, [\n      oe(t?.emptyError || \"时间不能为空\"),\n      ni(t?.error || \"时间格式不正确\")\n    ]);\n    if (!n.valid && t?.throw)\n      throw new Error(n.errors[0]);\n    return n;\n  };\n}\nfunction H2(t) {\n  return (e) => {\n    const n = [oe(t?.emptyError)];\n    typeof t?.min == \"number\" && n.push(Js(t.min, t?.minError)), typeof t?.max == \"number\" && n.push(Ys(t.max, t?.maxError));\n    const r = Z(e, n);\n    if (!r.valid && t?.throw)\n      throw new Error(r.errors[0]);\n    return r;\n  };\n}\nfunction V2(t, e) {\n  return (n) => {\n    const r = [\n      oe(e?.emptyError || e?.error),\n      Zs(t, e?.error)\n    ], s = Z(n, r);\n    if (!s.valid && e?.throw)\n      throw new Error(s.errors[0]);\n    return s;\n  };\n}\nfunction W2(t, e) {\n  return (n) => {\n    const r = Z(n, [ri(t, e?.error)]);\n    if (!r.valid && e?.throw)\n      throw new Error(r.errors[0]);\n    return r;\n  };\n}\nfunction G2(t) {\n  const e = String(t).toLowerCase();\n  if (e.indexOf(\"km\") >= 0 || e.indexOf(\"m\") >= 0)\n    return e;\n  const n = parseFloat(e);\n  return n < 0 ? \"\" : n >= 1e3 ? Math.ceil(n / 1e3 * 10) / 10 + \"km\" : Math.ceil(n) + \"m\";\n}\nfunction X2(t, e = 2) {\n  return zn(t / 100, e);\n}\nfunction J2(t, e) {\n  const n = t.getReader();\n  n.read().then(function r({ done: s, value: i }) {\n    return e(i), s ? Promise.resolve(s) : n.read().then(r);\n  });\n}\nclass ye {\n  value;\n  left;\n  right;\n  constructor(e, n) {\n    this.value = e, this.left = n?.left, this.right = n?.right;\n  }\n  clone() {\n    return new ye(this.value, {\n      left: this.left,\n      right: this.right\n    });\n  }\n}\nclass Y2 {\n  root;\n  constructor() {\n  }\n  add(e) {\n    if (!this.root)\n      this.root = new ye(e);\n    else {\n      let n = this.root;\n      for (; n; )\n        if (e === n.value) {\n          console.log(\"Duplicates cannot be added\");\n          break;\n        } else if (e < n.value)\n          if (n.left)\n            n = n.left;\n          else {\n            n.left = new ye(e);\n            break;\n          }\n        else if (e > n.value)\n          if (n.right)\n            n = n.right;\n          else {\n            n.right = new ye(e);\n            break;\n          }\n    }\n  }\n  remove(e) {\n    let n = this.root, r, s;\n    for (; n; )\n      if (e < n.value)\n        r = n, n = n.left;\n      else if (e > n.value)\n        r = n, n = n.right;\n      else {\n        s = n;\n        break;\n      }\n    if (!s) {\n      console.log(\"The node was not found\");\n      return;\n    }\n    if (r) {\n      const i = r.left === s;\n      if (!s.left && !s.right)\n        i ? r.left = void 0 : r.right = void 0;\n      else if (s.left && !s.right)\n        i ? r.left = s.left : r.right = s.left;\n      else if (s.right && !s.left)\n        i ? r.left = s.right : r.right = s.right;\n      else {\n        const o = s.right, a = s.left;\n        i ? r.left = o : r.right = o;\n        let c = o, u;\n        for (; c; )\n          u = c, c = c.left;\n        u && (u.left = a), console.log(\"The node was successfully deleted\");\n      }\n    } else if (!s.left && !s.right)\n      this.root = void 0;\n    else if (s.left && !s.right)\n      this.root = s.left;\n    else if (s.right && !s.left)\n      this.root = s.right;\n    else {\n      const i = s.right, o = s.left;\n      this.root = i;\n      let a = i, c;\n      for (; a; )\n        c = a, a = a.left;\n      c && (c.left = o), console.log(\"The node was successfully deleted\");\n    }\n    return s;\n  }\n  // 树的高度\n  // 最大深度： root 到 叶子节点\n  maxDepth(e = this.root) {\n    let n = 0;\n    const r = (s, i = 1) => {\n      s && (!s.left && !s.right && (n = Math.max(n, i)), r(s.left, i + 1), r(s.right, i + 1));\n    };\n    return r(e), n;\n  }\n  // 最小深度： root 到 叶子节点\n  minDepth(e = this.root) {\n    if (!e)\n      return 0;\n    const n = [[e, 1]];\n    for (; n.length; ) {\n      const [r, s] = n.shift();\n      if (!r.left && !r.right)\n        return s;\n      r.left && n.push([r.left, s + 1]), r.right && n.push([r.right, s + 1]);\n    }\n  }\n  // 如果某二叉树中任意节点的左右子树的深度相差不超过 1，那么它就是一棵平衡二叉树\n  // 该方法最坏的情况是每个父节点都只有一个子节点，这样树的高度时间复杂度为 O(n)，即“链表”的长度。而第 d 层调用 height 函数的时间复杂度是 O(d)，所以整体的时间复杂度为 高度时间复杂度 * 调用height函数的时间复杂度，即 O(n^2)。\n  isBalance(e = this.root) {\n    return e ? Math.abs(this.maxDepth(e.left) - this.maxDepth(e.right)) <= 1 && this.isBalance(e.left) && this.isBalance(e.right) : !0;\n  }\n  // 广度优先遍历\n  bfs(e = this.root, n) {\n    if (!e)\n      return;\n    const r = [e];\n    for (; r.length; ) {\n      const s = r.shift();\n      if (!n?.(s))\n        break;\n      s.left && r.push(s.left), s.right && r.push(s.right);\n    }\n  }\n  // 深度优先遍历\n  dfs(e = this.root, n) {\n    e && n?.(e) && (this.dfs(e.left, n), this.dfs(e.right, n));\n  }\n  // 递归遍历 - 先序遍历 current, left, right\n  preOrderRecursive(e = this.root, n) {\n    e && n?.(e) && (this.preOrderRecursive(e.left, n), this.preOrderRecursive(e.right, n));\n  }\n  // 递归遍历 - 中序遍历 left, current, right\n  // 中序遍历：递增序列\n  // 中序遍历倒序：递减序列\n  inOrderRecursive(e = this.root, n) {\n    e && (this.inOrderRecursive(e.left, n), n?.(e) && this.inOrderRecursive(e.right, n));\n  }\n  // 递归遍历 - 后序遍历 left, right, current\n  postOrderRecursive(e = this.root, n) {\n    e && (this.postOrderRecursive(e.left, n), this.postOrderRecursive(e.right, n), n?.(e));\n  }\n  // 非递归遍历 - 先序遍历 current, left, right\n  preOrder(e = this.root, n) {\n    const r = [];\n    for (e && r.push(e); r.length && (e = r.pop(), !!n?.(e)); )\n      e.right && r.push(e.right), e.left && r.push(e.left);\n  }\n  // 中序遍历：递增序列\n  // 非递归遍历 - 中序遍历 left, current, right\n  inOrder(e = this.root, n) {\n    const r = [];\n    for (; r.length || e; ) {\n      for (; e; )\n        r.push(e), e = e.left;\n      if (e = r.pop(), !n?.(e))\n        break;\n      e = e.right;\n    }\n  }\n  // 中序遍历倒序：递减序列 right, current, left\n  inOrderReverse(e = this.root, n) {\n    const r = [];\n    for (; r.length || e; ) {\n      for (; e; )\n        r.push(e), e = e.right;\n      if (e = r.pop(), !n?.(e))\n        break;\n      e = e.left;\n    }\n  }\n  // 非递归遍历 - 后序遍历 left, right, current\n  postOrder(e = this.root, n) {\n    const r = [], s = [];\n    for (e && r.push(e); r.length; )\n      e = r.pop(), s.push(e), e.left && r.push(e.left), e.right && r.push(e.right);\n    n && s.reverse().map(n);\n  }\n  // 获得第K大的节点, K从1开始\n  kthLargest(e) {\n    let n = 0, r;\n    return this.inOrderReverse(this.root, (s) => (n++, n == e ? (r = s.value, !1) : !0)), r;\n  }\n  // 反转二叉树\n  // 寻找递归公式\n  // 解题要采用自上而下的思考方式，那我们取前面的 1， 2，3 结点来看，对于根节点 1 来说，假设 2, 3 结点下的节点都已经翻转，那么只要翻转 2， 3 节点即满足需求\n  // 对于 2， 3 结点来说，也是翻转其左右节点即可,依此类推,对每一个根节点，依次翻转其左右节点，\n  // 所以我们可知问题与子问题的关系是 翻转(根节点) = 翻转(根节点的左节点) + 翻转(根节点的右节点)\n  // 即 invert(root) = invert(root->left) + invert(root->right),\n  // 而显然递归的终止条件是当结点为叶子结点时终止（因为叶子节点没有左右结点）\n  // 时间复杂度分析: 由于会对每一个节点都去做翻转，所以时间复杂度是 O(n)\n  // 空间复杂度分析: 由于每次调用 invertTree 函数都相当于一次压栈操作，\n  //   那最多压了几次栈呢，从根节点出发不断对左结果调用翻转函数, 直到叶子节点，每调用一次都会压栈，左节点调用完后，出栈，再对右节点压栈 ...,\n  //   可知栈的大小为3， 即树的高度，如果是完全二叉树 ，则树的高度为logn, 即空间复杂度为O(logn)\n  //   最坏情况，如果此二叉树是只有左节点，没有右节点，则树的高度即结点的个数 n，此时空间复杂度为 O(n)\n  //   总的来看，空间复杂度为O(n)\n  invertTree(e = this.root) {\n    if (!e)\n      return;\n    const n = this.invertTree(e.left), r = this.invertTree(e.right);\n    return e.right = n, e.left = r, e;\n  }\n}\nclass qt {\n  value;\n  toEdges;\n  constructor(e, n = []) {\n    this.value = e, this.toEdges = n;\n  }\n  clone() {\n    return new qt(this.value, this.toEdges);\n  }\n}\nclass je {\n  fromNode;\n  toNode;\n  // 权重\n  weight;\n  constructor(e, n, r = 1) {\n    this.fromNode = e, this.toNode = n, this.weight = r;\n  }\n  clone() {\n    return new je(this.fromNode, this.toNode, this.weight);\n  }\n}\nclass Z2 {\n  // 有无方向\n  isdirected;\n  nodes = [];\n  visitFn;\n  constructor(e = !1, n) {\n    this.isdirected = e, this.visitFn = n || ((r) => console.log(r.value + \",\"));\n  }\n  addNode(e) {\n    this.nodes.push(new qt(e));\n  }\n  removeNode(e) {\n    this.nodes = this.nodes.filter((n) => n.value !== e), this.nodes.forEach((n) => {\n      n.toEdges = n.toEdges.filter((r) => r.toNode.value !== e);\n    });\n  }\n  findNode(e) {\n    return this.nodes.find((n) => n.value === e);\n  }\n  addEdge(e, n, r = 1) {\n    const s = this.findNode(e), i = this.findNode(n);\n    s && i && (s.toEdges.push(new je(s, i, r)), this.isdirected && i.toEdges.push(new je(i, s, r)));\n  }\n  // 邻接矩阵\n  toMatrixArray() {\n    const e = this.nodes.length, n = Array.from(\n      { length: e },\n      () => Array(e).fill(0)\n    );\n    return this.nodes.forEach((r, s) => {\n      r.toEdges.forEach((i) => {\n        const o = this.nodes.indexOf(i.toNode);\n        n[s][o] = 1;\n      });\n    }), n;\n  }\n  // 邻接表\n  toLinkedArrayObject() {\n    const e = this.nodes.length, n = {};\n    for (let r = 0; r < e; r++) {\n      const s = [];\n      this.nodes[r].toEdges.forEach((i) => {\n        s.push(this.nodes.indexOf(i.toNode));\n      }), n[String(this.nodes[r].value)] = s;\n    }\n    return n;\n  }\n  // 深度优先遍历\n  dfs(e, n = /* @__PURE__ */ new Set()) {\n    this.visitFn(e), n.add(e), e.toEdges.forEach((r) => {\n      n.has(r.toNode) || this.dfs(r.toNode, n);\n    });\n  }\n  // 广度优先遍历\n  wfs(e) {\n    const n = /* @__PURE__ */ new Set(), r = [e];\n    for (; r.length; ) {\n      const s = r.shift();\n      this.visitFn(s), n.add(s), s.toEdges.forEach((i) => {\n        n.has(i.toNode) || r.push(i.toNode);\n      });\n    }\n  }\n}\nclass nt {\n  heap = [];\n  compareFn;\n  constructor(e, n) {\n    if (this.compareFn = e, n) {\n      this.heap = n;\n      const r = this.size() - 1, s = this.getParentIndex(r);\n      for (let i = s; i >= 0; i--)\n        this.shiftDown(i);\n    }\n  }\n  size() {\n    return this.heap.length;\n  }\n  isEmpty() {\n    return this.size() === 0;\n  }\n  // 获取父元素坐标\n  getParentIndex(e) {\n    return e - 1 >> 1;\n  }\n  // 获取左子节点元素坐标\n  getLeftChildIndex(e) {\n    const n = e * 2 + 1;\n    return n < this.size() ? n : null;\n  }\n  // 获取右子节点元素坐标\n  getRightChildIndex(e) {\n    const n = e * 2 + 2;\n    return n < this.size() ? n : null;\n  }\n  // 交换元素\n  swap(e, n) {\n    e >= 0 && e < this.size() && n >= 0 && n < this.size() && ([this.heap[e], this.heap[n]] = [this.heap[n], this.heap[e]]);\n  }\n  // 查看堆顶元素\n  peek() {\n    return this.heap[0];\n  }\n  // 尾部插入元素\n  // 时间复杂度O(logN)\n  push(e) {\n    this.heap.push(e), this.shiftUp(this.size() - 1);\n  }\n  // 上移操作\n  shiftUp(e) {\n    if (e === 0)\n      return;\n    const n = this.getParentIndex(e);\n    this.compareFn(this.heap[n], this.heap[e]) || (this.swap(n, e), this.shiftUp(n));\n  }\n  // 堆顶删除元素\n  // 时间复杂度O(logN)\n  pop() {\n    if (this.isEmpty())\n      return null;\n    {\n      const e = this.heap[0], n = this.heap.pop();\n      return n !== void 0 && !this.isEmpty() && (this.heap[0] = n, this.shiftDown(0)), e;\n    }\n  }\n  // 下移操作\n  shiftDown(e) {\n    if (e >= this.size() - 1)\n      return;\n    const n = this.getLeftChildIndex(e), r = this.getRightChildIndex(e);\n    n && !this.compareFn(this.heap[e], this.heap[n]) && (this.swap(n, e), this.shiftDown(n)), r && !this.compareFn(this.heap[e], this.heap[r]) && (this.swap(r, e), this.shiftDown(r));\n  }\n}\nconst K2 = nt;\nclass Q2 extends nt {\n  constructor(e, n) {\n    const r = (s, i) => s > i;\n    super(e ?? r, n);\n  }\n}\nclass eu extends nt {\n  constructor(e, n) {\n    const r = (s, i) => s < i;\n    super(e ?? r, n);\n  }\n}\nclass zt {\n  value;\n  next;\n  constructor(e, n) {\n    this.value = e, this.next = n;\n  }\n  clone() {\n    return new zt(this.value, this.next);\n  }\n}\nclass si {\n  head;\n  tail;\n  length = 0;\n  constructor() {\n  }\n  size() {\n    return this.length;\n  }\n  isEmpty() {\n    return this.size() === 0;\n  }\n  insert(e, n) {\n    const r = new zt(n);\n    if (e == 0)\n      return r.next = this.head, this.head = r, this.isEmpty() && (this.tail = this.head), this.length++, !0;\n    {\n      let s = this.head, i = this.head?.next, o = 1;\n      for (; o++ < e; )\n        s = i, i = i?.next;\n      return s ? (s.next = r, r.next = i, i || (this.tail = r), this.length++, !0) : !1;\n    }\n  }\n  delete(e) {\n    if (!this.isEmpty())\n      if (e == 0) {\n        const n = this.head;\n        return this.size() == 1 ? this.head = this.tail = void 0 : this.head = this.head?.next, this.length--, n;\n      } else {\n        let n = this.head, r = this.head?.next, s = 1;\n        for (; s++ < e && r; )\n          n = r, r = r?.next;\n        return n ? (n.next = r?.next, (!r || !r.next) && (this.tail = n), r && this.length--, r) : void 0;\n      }\n  }\n  deleteNode(e) {\n    e.next ? (e.value = e.next.value, e.next = e.next.next, e.next || (this.tail = e), this.length--) : this.pop();\n  }\n  // 尾部加入\n  push(e) {\n    return this.insert(this.size(), e);\n  }\n  // 尾部删除\n  pop() {\n    return this.delete(this.size() - 1);\n  }\n  // 头部加入\n  unshift(e) {\n    return this.insert(0, e);\n  }\n  // 头部删除\n  shift() {\n    return this.delete(0);\n  }\n  // 遍历\n  // visitFn 返回 true 继续遍历， 返回 false 中断遍历\n  traverse(e) {\n    let n = this.head, r = 0;\n    for (; n && e?.(n, r++); )\n      n = n.next;\n  }\n  at(e) {\n    if (e < 0 || e >= this.size() || this.isEmpty())\n      return;\n    if (e === 0)\n      return this.head;\n    if (e === this.size() - 1)\n      return this.tail;\n    let n = this.head;\n    for (; --e >= 0 && n; )\n      n = n.next;\n    return n;\n  }\n  getIndex(e) {\n    let n = -1;\n    return this.traverse((r, s) => (r.value == e && (n = s), n == -1)), n;\n  }\n  toArray() {\n    const e = [];\n    return this.traverse((n) => (e.push(n.value), !0)), e;\n  }\n  // 列表反转\n  // 时间复杂度 O(N)\n  reverse() {\n    this.tail = this.head;\n    let e, n;\n    for (; this.head && this.head.next; )\n      e = n, n = this.head, this.head = this.head.next, n.next = e;\n    return this.head && (this.head.next = n), this;\n  }\n  // 快慢指针: 判断链表中是否有环\n  hasCycle(e = this.head) {\n    if (!e || !e.next)\n      return !1;\n    let n = e, r = e.next;\n    for (; n !== r; ) {\n      if (!n || !r || !r.next)\n        return !1;\n      n = n.next, r = r.next.next;\n    }\n    return !0;\n  }\n}\nconst H = {\n  THROW: 1,\n  DROP: 2,\n  SLIDE: 3,\n  EXPAND: 4\n};\nclass Re {\n  queue;\n  limit;\n  overflow;\n  constructor(e = 10, n = H.EXPAND) {\n    this.queue = [], this.limit = e, this.overflow = n;\n  }\n  length() {\n    return this.queue.length;\n  }\n  isEmpty() {\n    return this.length() === 0;\n  }\n  findIndex(e) {\n    return this.queue.findIndex(e);\n  }\n  deleteIndex(e) {\n    return !!this.queue.splice(e, 1).length;\n  }\n  delete(e) {\n    const n = this.findIndex(e);\n    return n > -1 ? this.deleteIndex(n) : !1;\n  }\n  // 入队\n  enqueue(e) {\n    if (this.length() < this.limit) {\n      this.queue.push(e);\n      return;\n    }\n    switch (this.overflow) {\n      case H.EXPAND:\n        this.limit *= 2, this.queue.push(e);\n        break;\n      case H.SLIDE:\n        this.deleteIndex(0), this.queue.push(e);\n        break;\n      case H.THROW:\n        throw new Error(`Queue limit(${this.limit}) overflow!`);\n      case H.DROP:\n    }\n  }\n  push(e) {\n    this.enqueue(e);\n  }\n  put(e) {\n    this.enqueue(e);\n  }\n  // 出队\n  dequeue() {\n    return this.queue.shift();\n  }\n  pop() {\n    return this.dequeue();\n  }\n  take() {\n    return this.dequeue();\n  }\n  // 获取队顶对象\n  peek() {\n    return this.queue[0];\n  }\n  // 获取对象\n  index(e) {\n    return this.queue[e];\n  }\n  // 全部出队\n  clear() {\n    this.queue = [];\n  }\n  // 全部出队\n  flush() {\n    const e = [];\n    let n;\n    for (; n = this.dequeue(); )\n      e.push(n);\n    return e;\n  }\n}\nconst tu = () => new Re(0, H.DROP), nu = (t) => new Re(t, H.THROW), ru = (t) => new Re(t, H.DROP), su = (t) => new Re(t, H.SLIDE), ii = (t) => new Re(t, H.EXPAND);\nclass iu {\n  stack;\n  constructor() {\n    this.stack = [];\n  }\n  get length() {\n    return this.stack.length;\n  }\n  isEmpty() {\n    return this.length === 0;\n  }\n  push(e) {\n    return this.stack.push(e);\n  }\n  pop() {\n    return this.stack.pop();\n  }\n  peek() {\n    return this.stack[this.length - 1];\n  }\n  clear() {\n    this.stack = [];\n  }\n}\nconst un = {\n  SLIDE: 1,\n  EXPAND: 2\n};\nclass ou {\n  size;\n  table;\n  objectSignature;\n  overflow;\n  ttl;\n  constructor(e) {\n    this.table = new Array(e?.size || 137), this.size = this.table.length, this.objectSignature = e?.objectSignature || ((n) => String(n)), this.overflow = e?.overflow || un.EXPAND, this.ttl = e?.ttl || 6e4;\n  }\n  // 散列函数，纯函数\n  hash(e) {\n    if (e == null || e == null)\n      throw new Error(\"HashTable can't put undefined or null\");\n    const n = this.objectSignature(e), r = 31;\n    let s = 0;\n    for (let i = 0, o = n.length; i < o; i++)\n      s += r * s + n.charCodeAt(i);\n    return s % this.size;\n  }\n  // 扩展散列表大小至一个更大的质数\n  resize() {\n    const e = this.size, n = ws(this.size * 2), r = new Array(n), s = this.table;\n    this.table = r, this.size = n;\n    for (let i = 0, o = e; i < o; i++)\n      if (s[i] !== void 0 && !this.isOutdated(s[i])) {\n        let a = this.hash(s[i].value);\n        for (; r[a] !== void 0; )\n          a = (a + 1) % n;\n        r[a] = s[i];\n      }\n    s.length = 0;\n  }\n  put(e) {\n    this.size > 200 && Math.random() < 0.1 && this.clean();\n    let n = this.hash(e);\n    const r = n;\n    for (; this.table[n] !== void 0 && !this.isOutdated(this.table[n]); )\n      if (n = (n + 1) % this.size, r == n) {\n        if (this.overflow == un.EXPAND)\n          return this.resize(), this.put(e);\n        break;\n      }\n    return this.table[n] = { value: e, timestamp: Date.now() }, n;\n  }\n  // 性能瓶颈\n  // visitFn : return false to break loop\n  traverse(e) {\n    for (let n = 0, r = this.size; n < r; n++)\n      if (this.table[n] !== void 0 && !e(this.table[n].value, n))\n        return n;\n    return -1;\n  }\n  // filter : return false 删除\n  update(e) {\n    this.traverse((n, r) => (e(n) === !1 && this.deleteIndex(r), !0));\n  }\n  getIndex(e) {\n    let n = this.hash(e);\n    const r = n;\n    for (; this.table[n]?.value !== e; )\n      if (this.table[n] === void 0 || (this.isOutdated(this.table[n]) && (this.table[n] = void 0), n = (n + 1) % this.size, r == n))\n        return -1;\n    return this.isOutdated(this.table[n]) ? (this.table[n] = void 0, -1) : n;\n  }\n  has(e) {\n    return this.getIndex(e) >= 0;\n  }\n  // 性能瓶颈\n  find(e) {\n    const n = this.traverse((r) => !e(r));\n    return n >= 0 ? this.table[n]?.value : void 0;\n  }\n  deleteIndex(e) {\n    return e >= 0 && e < this.size && this.table[e] !== void 0 ? (this.table[e] = void 0, !0) : !1;\n  }\n  delete(e) {\n    return this.deleteIndex(this.getIndex(e));\n  }\n  clear() {\n    this.table = [];\n  }\n  // 数据是否过期\n  isOutdated(e) {\n    return Date.now() - e.timestamp > this.ttl;\n  }\n  // 性能瓶颈\n  // 供外部使用：主动清理过期数据\n  clean() {\n    for (let e = 0, n = this.size; e < n; e++)\n      this.table[e] !== void 0 && this.isOutdated(this.table[e]) && (this.table[e] = void 0);\n  }\n}\nclass au {\n  obj = {};\n  constructor() {\n  }\n  put(e, n) {\n    this.obj[e] = this.obj[e] || [], this.obj[e].push(n);\n  }\n  get(e) {\n    return this.obj[e] || [];\n  }\n  has(e) {\n    let n = !1;\n    return this.traverse((r) => r == e ? (n = !0, !1) : !0), n;\n  }\n  keys() {\n    const e = [];\n    for (const n in this.obj)\n      e.push(n);\n    return e;\n  }\n  // visitFn : return false to break loop\n  traverse(e) {\n    for (const n in this.obj)\n      for (let r = 0, s = this.obj[n].length; r < s && e(this.obj[n][r]); r++)\n        ;\n  }\n}\nclass rt {\n  maps = /* @__PURE__ */ new Map();\n  constructor() {\n  }\n  // Object.entries(...);\n  // Object.fromEntries(...);\n  entries() {\n    return [...this.maps.entries()];\n  }\n  // Object.keys(...);\n  keys() {\n    return [...this.maps.keys()];\n  }\n  // Object.values(...);\n  values() {\n    return [...this.maps.values()];\n  }\n  json() {\n    const e = {};\n    for (const n of this.maps)\n      e[n[0]] = n[1];\n    return e;\n  }\n  get length() {\n    return this.maps.size;\n  }\n  set(e, n) {\n    this.maps.set(e, n);\n  }\n  get(e) {\n    return this.maps.get(e);\n  }\n  has(e) {\n    return this.maps.has(e);\n  }\n  // Map 对象是按插入的顺序返回键值\n  getEntryFromIndex(e) {\n    let n = -1;\n    for (const r of this.maps)\n      if (++n == e)\n        return r;\n  }\n  // 性能瓶颈\n  getEntry(e) {\n    for (const n of this.maps)\n      if (e(n[0], n[1]))\n        return n;\n  }\n  firstEntry() {\n    return this.getEntryFromIndex(0);\n  }\n  // 从头部删除\n  shift() {\n    const e = this.firstEntry();\n    if (e) {\n      const [n] = e;\n      this.delete(n);\n    }\n    return e;\n  }\n  delete(e) {\n    return this.maps.delete(e);\n  }\n  clear() {\n    this.maps.clear();\n  }\n  // filter : return false 删除\n  update(e) {\n    const n = this.entries();\n    for (let r = 0, s = n.length; r < s; r++) {\n      const [i, o] = n[r];\n      e(i, o) === !1 && this.delete(i);\n    }\n  }\n}\nclass Jn extends rt {\n  constructor(e) {\n    super();\n    for (const n in e)\n      super.set(n, e[n]), this[n] = e[n].serverValue;\n  }\n  clone() {\n    return new Jn(this.json());\n  }\n  // types(): readonly string[] {\n  //   const types = [...super.keys()] as const;\n  //   type Types = (typeof types)[number];\n  //   return types;\n  // }\n  isExist(e) {\n    return !!super.values().find((n) => n.serverValue === e);\n  }\n  getName(e) {\n    const n = super.values().find((r) => r.serverValue === e);\n    return n ? n.name || n.serverDescription : \"\";\n  }\n  setName(e, n) {\n    const r = super.values().find((s) => s.serverValue === e);\n    r && (r.name = n);\n  }\n}\nfunction cu() {\n  E.OPEN_LOG = !0;\n}\nfunction uu() {\n  E.OPEN_LOG = !1;\n}\nfunction lu(t) {\n  E.LOG_UPLOAD_FN = t;\n}\nfunction fe() {\n  return !!E.OPEN_LOG;\n}\nfunction Ht(t) {\n  E.LOG_UPLOAD_FN && E.LOG_UPLOAD_FN(t);\n}\nfunction R(t) {\n  Ht({ level: \"info\", msg: t }), fe() && (!console || typeof console != \"object\" || typeof console.log != \"function\" || console.log(t));\n}\nfunction oi(t) {\n  Ht({ level: \"warn\", msg: t }), fe() && (!console || typeof console != \"object\" || typeof console.warn != \"function\" || console.warn(t));\n}\nfunction fu(t) {\n  Ht({ level: \"error\", msg: t }), fe() && (!console || typeof console != \"object\" || typeof console.error != \"function\" || console.error(t));\n}\nconst Ce = {}, ln = {\n  start: (t) => {\n    fe() && (!console || typeof console != \"object\" || // typeof console.group !== \"function\"\n    typeof console.groupCollapsed != \"function\" || console.groupCollapsed(t));\n  },\n  end: () => {\n    !console || typeof console != \"object\" || typeof console.groupEnd != \"function\" || console.groupEnd();\n  }\n}, qe = {\n  start: (t) => {\n    fe() && (Ce[t] = Be());\n  },\n  end: (t) => {\n    Ce[t] && (R(`${t}: ${Be() - Ce[t]} ms`), delete Ce[t]);\n  }\n}, fn = {\n  start: (t) => {\n    fe() && (!console || typeof console != \"object\" || typeof console.profile != \"function\" || console.profile(t));\n  },\n  end: (t) => {\n    !console || typeof console != \"object\" || typeof console.profileEnd != \"function\" || console.profileEnd(t);\n  }\n}, ai = () => {\n}, hu = (t) => t, Yn = (t) => () => t, du = Yn(!0), pu = Yn(!1), mu = (t) => ({ value: t, done: !0 });\nfunction gu(t, e, n) {\n  return Object.assign({}, n, { [t]: e });\n}\nconst Zn = 300;\nfunction ci(t, e = Zn, n) {\n  const r = typeof n?.leading == \"boolean\" ? n.leading : !0, s = typeof n?.trailing == \"boolean\" ? n.trailing : !1;\n  let i = !0, o;\n  return function(...c) {\n    if (!i) {\n      o = c;\n      return;\n    }\n    i = !1, r && t.apply(n?.thisArg || this, c), s && (o = c), setTimeout(() => {\n      s && t.apply(n?.thisArg || this, o), o = void 0, i = !0;\n    }, e);\n  };\n}\nfunction ui(t, e = Zn, n) {\n  let r, s = 0;\n  return function(...o) {\n    let a = !!n?.immediate && !r;\n    !a && n?.throttle && (a = !!s && Be() - s >= e), r && clearTimeout(r);\n    const c = () => {\n      t.apply(n?.thisArg || this, o), n?.throttle && (s = Be());\n    };\n    r = setTimeout(() => {\n      a || c(), r = void 0;\n    }, e), a && c();\n  };\n}\nfunction li(t, ...e) {\n  const n = t.length;\n  return e = e || [], function(...r) {\n    const s = e.concat(Array.prototype.slice.call(r));\n    return s.length < n ? li.call(this, t, ...s) : t.apply(this, s);\n  };\n}\nfunction fi(...t) {\n  return t.length === 0 ? (...e) => e : t.length === 1 ? t[0] : t.reduce(\n    (e, n) => (...r) => e(n(...r))\n  );\n}\nconst yu = (...t) => t.length === 0 ? (...e) => e : t.length === 1 ? t[0] : t.reduceRight(\n  (e, n) => (...r) => e(n(...r))\n), wu = (...t) => t.length === 0 ? (...e) => e : t.length === 1 ? t[0] : t.reduceRight(\n  (e, n) => (...r) => n(...r, e),\n  ai\n);\nfunction bu(t) {\n  for (; t && t instanceof Function; )\n    t = t();\n  return t;\n}\nfunction Su(t) {\n  let e, n = !1;\n  const r = [];\n  return function(...i) {\n    if (r.push(i), !n) {\n      for (n = !0; r.length; )\n        e = t.apply(this, r.shift());\n      return n = !1, e;\n    }\n  };\n}\nfunction xu(t, e) {\n  return function(...n) {\n    return t.apply(e || this, n.reverse());\n  };\n}\nfunction Au(t, e) {\n  let n = !1, r;\n  return async function(...s) {\n    return n || (n = !0, r = await t.apply(e || this, s)), r;\n  };\n}\nfunction hi(t = 0, e) {\n  const n = e?.min || 300, r = e?.max || 6e4, s = e?.exponent || 2, i = e?.factor || 0.5;\n  let o = n * Math.pow(s, t);\n  if (i) {\n    const a = Math.random(), c = Math.floor(a * i * o);\n    o = Math.floor(a * 10) & 1 ? o + c : o - c;\n  }\n  return Math.min(o, r) | 0;\n}\nfunction Kn(t, e = 3, n, r) {\n  return async function(...s) {\n    const i = `retry(${t.name})(${s.map((a) => L(a))})`;\n    let o;\n    for (let a = 0; a < e; a++)\n      try {\n        return await t.call(r || this, ...s);\n      } catch (c) {\n        R(`(${i}) 第 ${a + 1} 次尝试失败, retrying...`), o = c, await new Promise(\n          (u) => setTimeout(\n            u,\n            typeof n == \"number\" ? n : hi(a)\n            // : 300 * Math.pow(2, attempt)\n          )\n        );\n      }\n    throw R(\n      `(${i}) 已 ${e} 次失败，不再重试。 Last error: ${L(\n        o\n      )}`\n    ), o;\n  };\n}\nfunction Qn(t, e = 60, n = new rt(), r) {\n  return async function(...s) {\n    const i = `cache(${t.name})(${s.map((u) => L(u))})`, o = Date.now();\n    e && n.update((u, l) => o - l.timestamp < e * 1e3);\n    const a = $t(s), c = n.get(a);\n    if (c) {\n      if (!e || o - c.timestamp < e * 1e3)\n        return R(`${i} 击中缓存`), c.value;\n      n.delete(a);\n    }\n    try {\n      R(`${i} 没有缓存, 尝试立即执行...`);\n      const l = await t.call(r || this, ...s);\n      return R(`${i} 缓存设置成功`), n.set(a, {\n        value: l,\n        timestamp: Date.now()\n      }), l;\n    } catch (u) {\n      throw R(`${i} 执行失败 : ${L(u)}`), u;\n    }\n  };\n}\nfunction di(t, e = new rt(), n) {\n  return async function(...r) {\n    const s = $t(r), i = `memorize(${t.name})(${r.map((a) => L(a))})`, o = await e.get(s);\n    if (o)\n      return R(`${i} memorize hit: ${L(o)}`), o;\n    try {\n      R(`${i} memorize miss, await fetching fresh data...`);\n      const a = await t.call(n || this, ...r);\n      return R(`${i} memorize settled`), await e.set(s, a), a;\n    } catch (a) {\n      throw R(`${i} returns error: ${L(a)}`), a;\n    }\n  };\n}\nfunction Ou(t, e) {\n  const { ignoreResult: n = () => !1 } = e || {};\n  return async (...r) => {\n    for (let s = 0, i = t.length; s < i; s++)\n      try {\n        const o = await t[s](...r);\n        if (!n(o))\n          return o;\n      } catch (o) {\n        e?.onError?.(o);\n      }\n    throw new Error(\"tryEach failed. No function returned a value\");\n  };\n}\nfunction vu(t, e, n) {\n  return function(...r) {\n    return t.apply(this, r) ? e.apply(this, r) : n.apply(this, r);\n  };\n}\nfunction Ru(t, e) {\n  return function(...n) {\n    try {\n      return t.apply(this, n);\n    } catch (r) {\n      return e.apply(this, r);\n    }\n  };\n}\nfunction _u(t) {\n  return (e) => (R(t + \": \" + e), e);\n}\nfunction Tu(t, e) {\n  return function(n) {\n    return t.call(this, e(n));\n  };\n}\nconst Eu = (t) => (e) => e.map(t), ku = (t) => (e, n) => e.reduce(t, n);\nvar Ot = function(t, e) {\n  return Ot = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(n, r) {\n    n.__proto__ = r;\n  } || function(n, r) {\n    for (var s in r)\n      Object.prototype.hasOwnProperty.call(r, s) && (n[s] = r[s]);\n  }, Ot(t, e);\n};\nfunction Vt(t, e) {\n  if (typeof e != \"function\" && e !== null)\n    throw new TypeError(\"Class extends value \" + String(e) + \" is not a constructor or null\");\n  Ot(t, e);\n  function n() {\n    this.constructor = t;\n  }\n  t.prototype = e === null ? Object.create(e) : (n.prototype = e.prototype, new n());\n}\nfunction pi(t, e, n, r) {\n  function s(i) {\n    return i instanceof n ? i : new n(function(o) {\n      o(i);\n    });\n  }\n  return new (n || (n = Promise))(function(i, o) {\n    function a(l) {\n      try {\n        u(r.next(l));\n      } catch (h) {\n        o(h);\n      }\n    }\n    function c(l) {\n      try {\n        u(r.throw(l));\n      } catch (h) {\n        o(h);\n      }\n    }\n    function u(l) {\n      l.done ? i(l.value) : s(l.value).then(a, c);\n    }\n    u((r = r.apply(t, e || [])).next());\n  });\n}\nfunction er(t, e) {\n  var n = { label: 0, sent: function() {\n    if (i[0] & 1)\n      throw i[1];\n    return i[1];\n  }, trys: [], ops: [] }, r, s, i, o = Object.create((typeof Iterator == \"function\" ? Iterator : Object).prototype);\n  return o.next = a(0), o.throw = a(1), o.return = a(2), typeof Symbol == \"function\" && (o[Symbol.iterator] = function() {\n    return this;\n  }), o;\n  function a(u) {\n    return function(l) {\n      return c([u, l]);\n    };\n  }\n  function c(u) {\n    if (r)\n      throw new TypeError(\"Generator is already executing.\");\n    for (; o && (o = 0, u[0] && (n = 0)), n; )\n      try {\n        if (r = 1, s && (i = u[0] & 2 ? s.return : u[0] ? s.throw || ((i = s.return) && i.call(s), 0) : s.next) && !(i = i.call(s, u[1])).done)\n          return i;\n        switch (s = 0, i && (u = [u[0] & 2, i.value]), u[0]) {\n          case 0:\n          case 1:\n            i = u;\n            break;\n          case 4:\n            return n.label++, { value: u[1], done: !1 };\n          case 5:\n            n.label++, s = u[1], u = [0];\n            continue;\n          case 7:\n            u = n.ops.pop(), n.trys.pop();\n            continue;\n          default:\n            if (i = n.trys, !(i = i.length > 0 && i[i.length - 1]) && (u[0] === 6 || u[0] === 2)) {\n              n = 0;\n              continue;\n            }\n            if (u[0] === 3 && (!i || u[1] > i[0] && u[1] < i[3])) {\n              n.label = u[1];\n              break;\n            }\n            if (u[0] === 6 && n.label < i[1]) {\n              n.label = i[1], i = u;\n              break;\n            }\n            if (i && n.label < i[2]) {\n              n.label = i[2], n.ops.push(u);\n              break;\n            }\n            i[2] && n.ops.pop(), n.trys.pop();\n            continue;\n        }\n        u = e.call(t, n);\n      } catch (l) {\n        u = [6, l], s = 0;\n      } finally {\n        r = i = 0;\n      }\n    if (u[0] & 5)\n      throw u[1];\n    return { value: u[0] ? u[1] : void 0, done: !0 };\n  }\n}\nfunction be(t) {\n  var e = typeof Symbol == \"function\" && Symbol.iterator, n = e && t[e], r = 0;\n  if (n)\n    return n.call(t);\n  if (t && typeof t.length == \"number\")\n    return {\n      next: function() {\n        return t && r >= t.length && (t = void 0), { value: t && t[r++], done: !t };\n      }\n    };\n  throw new TypeError(e ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nfunction ze(t, e) {\n  var n = typeof Symbol == \"function\" && t[Symbol.iterator];\n  if (!n)\n    return t;\n  var r = n.call(t), s, i = [], o;\n  try {\n    for (; (e === void 0 || e-- > 0) && !(s = r.next()).done; )\n      i.push(s.value);\n  } catch (a) {\n    o = { error: a };\n  } finally {\n    try {\n      s && !s.done && (n = r.return) && n.call(r);\n    } finally {\n      if (o)\n        throw o.error;\n    }\n  }\n  return i;\n}\nfunction He(t, e, n) {\n  if (n || arguments.length === 2)\n    for (var r = 0, s = e.length, i; r < s; r++)\n      (i || !(r in e)) && (i || (i = Array.prototype.slice.call(e, 0, r)), i[r] = e[r]);\n  return t.concat(i || Array.prototype.slice.call(e));\n}\nfunction ue(t) {\n  return this instanceof ue ? (this.v = t, this) : new ue(t);\n}\nfunction mi(t, e, n) {\n  if (!Symbol.asyncIterator)\n    throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var r = n.apply(t, e || []), s, i = [];\n  return s = Object.create((typeof AsyncIterator == \"function\" ? AsyncIterator : Object).prototype), a(\"next\"), a(\"throw\"), a(\"return\", o), s[Symbol.asyncIterator] = function() {\n    return this;\n  }, s;\n  function o(d) {\n    return function(p) {\n      return Promise.resolve(p).then(d, h);\n    };\n  }\n  function a(d, p) {\n    r[d] && (s[d] = function(g) {\n      return new Promise(function(y, w) {\n        i.push([d, g, y, w]) > 1 || c(d, g);\n      });\n    }, p && (s[d] = p(s[d])));\n  }\n  function c(d, p) {\n    try {\n      u(r[d](p));\n    } catch (g) {\n      m(i[0][3], g);\n    }\n  }\n  function u(d) {\n    d.value instanceof ue ? Promise.resolve(d.value.v).then(l, h) : m(i[0][2], d);\n  }\n  function l(d) {\n    c(\"next\", d);\n  }\n  function h(d) {\n    c(\"throw\", d);\n  }\n  function m(d, p) {\n    d(p), i.shift(), i.length && c(i[0][0], i[0][1]);\n  }\n}\nfunction gi(t) {\n  if (!Symbol.asyncIterator)\n    throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var e = t[Symbol.asyncIterator], n;\n  return e ? e.call(t) : (t = typeof be == \"function\" ? be(t) : t[Symbol.iterator](), n = {}, r(\"next\"), r(\"throw\"), r(\"return\"), n[Symbol.asyncIterator] = function() {\n    return this;\n  }, n);\n  function r(i) {\n    n[i] = t[i] && function(o) {\n      return new Promise(function(a, c) {\n        o = t[i](o), s(a, c, o.done, o.value);\n      });\n    };\n  }\n  function s(i, o, a, c) {\n    Promise.resolve(c).then(function(u) {\n      i({ value: u, done: a });\n    }, o);\n  }\n}\nfunction C(t) {\n  return typeof t == \"function\";\n}\nfunction yi(t) {\n  var e = function(r) {\n    Error.call(r), r.stack = new Error().stack;\n  }, n = t(e);\n  return n.prototype = Object.create(Error.prototype), n.prototype.constructor = n, n;\n}\nvar ht = yi(function(t) {\n  return function(n) {\n    t(this), this.message = n ? n.length + ` errors occurred during unsubscription:\n` + n.map(function(r, s) {\n      return s + 1 + \") \" + r.toString();\n    }).join(`\n  `) : \"\", this.name = \"UnsubscriptionError\", this.errors = n;\n  };\n});\nfunction hn(t, e) {\n  if (t) {\n    var n = t.indexOf(e);\n    0 <= n && t.splice(n, 1);\n  }\n}\nvar Wt = function() {\n  function t(e) {\n    this.initialTeardown = e, this.closed = !1, this._parentage = null, this._finalizers = null;\n  }\n  return t.prototype.unsubscribe = function() {\n    var e, n, r, s, i;\n    if (!this.closed) {\n      this.closed = !0;\n      var o = this._parentage;\n      if (o)\n        if (this._parentage = null, Array.isArray(o))\n          try {\n            for (var a = be(o), c = a.next(); !c.done; c = a.next()) {\n              var u = c.value;\n              u.remove(this);\n            }\n          } catch (g) {\n            e = { error: g };\n          } finally {\n            try {\n              c && !c.done && (n = a.return) && n.call(a);\n            } finally {\n              if (e)\n                throw e.error;\n            }\n          }\n        else\n          o.remove(this);\n      var l = this.initialTeardown;\n      if (C(l))\n        try {\n          l();\n        } catch (g) {\n          i = g instanceof ht ? g.errors : [g];\n        }\n      var h = this._finalizers;\n      if (h) {\n        this._finalizers = null;\n        try {\n          for (var m = be(h), d = m.next(); !d.done; d = m.next()) {\n            var p = d.value;\n            try {\n              dn(p);\n            } catch (g) {\n              i = i ?? [], g instanceof ht ? i = He(He([], ze(i)), ze(g.errors)) : i.push(g);\n            }\n          }\n        } catch (g) {\n          r = { error: g };\n        } finally {\n          try {\n            d && !d.done && (s = m.return) && s.call(m);\n          } finally {\n            if (r)\n              throw r.error;\n          }\n        }\n      }\n      if (i)\n        throw new ht(i);\n    }\n  }, t.prototype.add = function(e) {\n    var n;\n    if (e && e !== this)\n      if (this.closed)\n        dn(e);\n      else {\n        if (e instanceof t) {\n          if (e.closed || e._hasParent(this))\n            return;\n          e._addParent(this);\n        }\n        (this._finalizers = (n = this._finalizers) !== null && n !== void 0 ? n : []).push(e);\n      }\n  }, t.prototype._hasParent = function(e) {\n    var n = this._parentage;\n    return n === e || Array.isArray(n) && n.includes(e);\n  }, t.prototype._addParent = function(e) {\n    var n = this._parentage;\n    this._parentage = Array.isArray(n) ? (n.push(e), n) : n ? [n, e] : e;\n  }, t.prototype._removeParent = function(e) {\n    var n = this._parentage;\n    n === e ? this._parentage = null : Array.isArray(n) && hn(n, e);\n  }, t.prototype.remove = function(e) {\n    var n = this._finalizers;\n    n && hn(n, e), e instanceof t && e._removeParent(this);\n  }, t.EMPTY = function() {\n    var e = new t();\n    return e.closed = !0, e;\n  }(), t;\n}();\nWt.EMPTY;\nfunction tr(t) {\n  return t instanceof Wt || t && \"closed\" in t && C(t.remove) && C(t.add) && C(t.unsubscribe);\n}\nfunction dn(t) {\n  C(t) ? t() : t.unsubscribe();\n}\nvar nr = {\n  onUnhandledError: null,\n  onStoppedNotification: null,\n  Promise: void 0,\n  useDeprecatedSynchronousErrorHandling: !1,\n  useDeprecatedNextContext: !1\n}, vt = {\n  setTimeout: function(t, e) {\n    for (var n = [], r = 2; r < arguments.length; r++)\n      n[r - 2] = arguments[r];\n    var s = vt.delegate;\n    return s?.setTimeout ? s.setTimeout.apply(s, He([t, e], ze(n))) : setTimeout.apply(void 0, He([t, e], ze(n)));\n  },\n  clearTimeout: function(t) {\n    var e = vt.delegate;\n    return (e?.clearTimeout || clearTimeout)(t);\n  },\n  delegate: void 0\n};\nfunction rr(t) {\n  vt.setTimeout(function() {\n    throw t;\n  });\n}\nfunction Rt() {\n}\nfunction wi(t) {\n  t();\n}\nvar Gt = function(t) {\n  Vt(e, t);\n  function e(n) {\n    var r = t.call(this) || this;\n    return r.isStopped = !1, n ? (r.destination = n, tr(n) && n.add(r)) : r.destination = Ai, r;\n  }\n  return e.create = function(n, r, s) {\n    return new _t(n, r, s);\n  }, e.prototype.next = function(n) {\n    this.isStopped || this._next(n);\n  }, e.prototype.error = function(n) {\n    this.isStopped || (this.isStopped = !0, this._error(n));\n  }, e.prototype.complete = function() {\n    this.isStopped || (this.isStopped = !0, this._complete());\n  }, e.prototype.unsubscribe = function() {\n    this.closed || (this.isStopped = !0, t.prototype.unsubscribe.call(this), this.destination = null);\n  }, e.prototype._next = function(n) {\n    this.destination.next(n);\n  }, e.prototype._error = function(n) {\n    try {\n      this.destination.error(n);\n    } finally {\n      this.unsubscribe();\n    }\n  }, e.prototype._complete = function() {\n    try {\n      this.destination.complete();\n    } finally {\n      this.unsubscribe();\n    }\n  }, e;\n}(Wt), bi = Function.prototype.bind;\nfunction dt(t, e) {\n  return bi.call(t, e);\n}\nvar Si = function() {\n  function t(e) {\n    this.partialObserver = e;\n  }\n  return t.prototype.next = function(e) {\n    var n = this.partialObserver;\n    if (n.next)\n      try {\n        n.next(e);\n      } catch (r) {\n        Pe(r);\n      }\n  }, t.prototype.error = function(e) {\n    var n = this.partialObserver;\n    if (n.error)\n      try {\n        n.error(e);\n      } catch (r) {\n        Pe(r);\n      }\n    else\n      Pe(e);\n  }, t.prototype.complete = function() {\n    var e = this.partialObserver;\n    if (e.complete)\n      try {\n        e.complete();\n      } catch (n) {\n        Pe(n);\n      }\n  }, t;\n}(), _t = function(t) {\n  Vt(e, t);\n  function e(n, r, s) {\n    var i = t.call(this) || this, o;\n    if (C(n) || !n)\n      o = {\n        next: n ?? void 0,\n        error: r ?? void 0,\n        complete: s ?? void 0\n      };\n    else {\n      var a;\n      i && nr.useDeprecatedNextContext ? (a = Object.create(n), a.unsubscribe = function() {\n        return i.unsubscribe();\n      }, o = {\n        next: n.next && dt(n.next, a),\n        error: n.error && dt(n.error, a),\n        complete: n.complete && dt(n.complete, a)\n      }) : o = n;\n    }\n    return i.destination = new Si(o), i;\n  }\n  return e;\n}(Gt);\nfunction Pe(t) {\n  rr(t);\n}\nfunction xi(t) {\n  throw t;\n}\nvar Ai = {\n  closed: !0,\n  next: Rt,\n  error: xi,\n  complete: Rt\n}, Xt = function() {\n  return typeof Symbol == \"function\" && Symbol.observable || \"@@observable\";\n}();\nfunction Oi(t) {\n  return t;\n}\nfunction vi() {\n  for (var t = [], e = 0; e < arguments.length; e++)\n    t[e] = arguments[e];\n  return sr(t);\n}\nfunction sr(t) {\n  return t.length === 0 ? Oi : t.length === 1 ? t[0] : function(n) {\n    return t.reduce(function(r, s) {\n      return s(r);\n    }, n);\n  };\n}\nvar ee = function() {\n  function t(e) {\n    e && (this._subscribe = e);\n  }\n  return t.prototype.lift = function(e) {\n    var n = new t();\n    return n.source = this, n.operator = e, n;\n  }, t.prototype.subscribe = function(e, n, r) {\n    var s = this, i = _i(e) ? e : new _t(e, n, r);\n    return wi(function() {\n      var o = s, a = o.operator, c = o.source;\n      i.add(a ? a.call(i, c) : c ? s._subscribe(i) : s._trySubscribe(i));\n    }), i;\n  }, t.prototype._trySubscribe = function(e) {\n    try {\n      return this._subscribe(e);\n    } catch (n) {\n      e.error(n);\n    }\n  }, t.prototype.forEach = function(e, n) {\n    var r = this;\n    return n = pn(n), new n(function(s, i) {\n      var o = new _t({\n        next: function(a) {\n          try {\n            e(a);\n          } catch (c) {\n            i(c), o.unsubscribe();\n          }\n        },\n        error: i,\n        complete: s\n      });\n      r.subscribe(o);\n    });\n  }, t.prototype._subscribe = function(e) {\n    var n;\n    return (n = this.source) === null || n === void 0 ? void 0 : n.subscribe(e);\n  }, t.prototype[Xt] = function() {\n    return this;\n  }, t.prototype.pipe = function() {\n    for (var e = [], n = 0; n < arguments.length; n++)\n      e[n] = arguments[n];\n    return sr(e)(this);\n  }, t.prototype.toPromise = function(e) {\n    var n = this;\n    return e = pn(e), new e(function(r, s) {\n      var i;\n      n.subscribe(function(o) {\n        return i = o;\n      }, function(o) {\n        return s(o);\n      }, function() {\n        return r(i);\n      });\n    });\n  }, t.create = function(e) {\n    return new t(e);\n  }, t;\n}();\nfunction pn(t) {\n  var e;\n  return (e = t ?? nr.Promise) !== null && e !== void 0 ? e : Promise;\n}\nfunction Ri(t) {\n  return t && C(t.next) && C(t.error) && C(t.complete);\n}\nfunction _i(t) {\n  return t && t instanceof Gt || Ri(t) && tr(t);\n}\nfunction Ti(t) {\n  return C(t?.lift);\n}\nfunction Jt(t) {\n  return function(e) {\n    if (Ti(e))\n      return e.lift(function(n) {\n        try {\n          return t(n, this);\n        } catch (r) {\n          this.error(r);\n        }\n      });\n    throw new TypeError(\"Unable to lift unknown Observable type\");\n  };\n}\nfunction Ve(t, e, n, r, s) {\n  return new Ei(t, e, n, r, s);\n}\nvar Ei = function(t) {\n  Vt(e, t);\n  function e(n, r, s, i, o, a) {\n    var c = t.call(this, n) || this;\n    return c.onFinalize = o, c.shouldUnsubscribe = a, c._next = r ? function(u) {\n      try {\n        r(u);\n      } catch (l) {\n        n.error(l);\n      }\n    } : t.prototype._next, c._error = i ? function(u) {\n      try {\n        i(u);\n      } catch (l) {\n        n.error(l);\n      } finally {\n        this.unsubscribe();\n      }\n    } : t.prototype._error, c._complete = s ? function() {\n      try {\n        s();\n      } catch (u) {\n        n.error(u);\n      } finally {\n        this.unsubscribe();\n      }\n    } : t.prototype._complete, c;\n  }\n  return e.prototype.unsubscribe = function() {\n    var n;\n    if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n      var r = this.closed;\n      t.prototype.unsubscribe.call(this), !r && ((n = this.onFinalize) === null || n === void 0 || n.call(this));\n    }\n  }, e;\n}(Gt), ki = function(t) {\n  return t && typeof t.length == \"number\" && typeof t != \"function\";\n};\nfunction Ci(t) {\n  return C(t?.then);\n}\nfunction Pi(t) {\n  return C(t[Xt]);\n}\nfunction Di(t) {\n  return Symbol.asyncIterator && C(t?.[Symbol.asyncIterator]);\n}\nfunction Mi(t) {\n  return new TypeError(\"You provided \" + (t !== null && typeof t == \"object\" ? \"an invalid object\" : \"'\" + t + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\nfunction Ii() {\n  return typeof Symbol != \"function\" || !Symbol.iterator ? \"@@iterator\" : Symbol.iterator;\n}\nvar Li = Ii();\nfunction $i(t) {\n  return C(t?.[Li]);\n}\nfunction Fi(t) {\n  return mi(this, arguments, function() {\n    var n, r, s, i;\n    return er(this, function(o) {\n      switch (o.label) {\n        case 0:\n          n = t.getReader(), o.label = 1;\n        case 1:\n          o.trys.push([1, , 9, 10]), o.label = 2;\n        case 2:\n          return [4, ue(n.read())];\n        case 3:\n          return r = o.sent(), s = r.value, i = r.done, i ? [4, ue(void 0)] : [3, 5];\n        case 4:\n          return [2, o.sent()];\n        case 5:\n          return [4, ue(s)];\n        case 6:\n          return [4, o.sent()];\n        case 7:\n          return o.sent(), [3, 2];\n        case 8:\n          return [3, 10];\n        case 9:\n          return n.releaseLock(), [7];\n        case 10:\n          return [2];\n      }\n    });\n  });\n}\nfunction Ni(t) {\n  return C(t?.getReader);\n}\nfunction Ui(t) {\n  if (t instanceof ee)\n    return t;\n  if (t != null) {\n    if (Pi(t))\n      return Bi(t);\n    if (ki(t))\n      return ji(t);\n    if (Ci(t))\n      return qi(t);\n    if (Di(t))\n      return ir(t);\n    if ($i(t))\n      return zi(t);\n    if (Ni(t))\n      return Hi(t);\n  }\n  throw Mi(t);\n}\nfunction Bi(t) {\n  return new ee(function(e) {\n    var n = t[Xt]();\n    if (C(n.subscribe))\n      return n.subscribe(e);\n    throw new TypeError(\"Provided object does not correctly implement Symbol.observable\");\n  });\n}\nfunction ji(t) {\n  return new ee(function(e) {\n    for (var n = 0; n < t.length && !e.closed; n++)\n      e.next(t[n]);\n    e.complete();\n  });\n}\nfunction qi(t) {\n  return new ee(function(e) {\n    t.then(function(n) {\n      e.closed || (e.next(n), e.complete());\n    }, function(n) {\n      return e.error(n);\n    }).then(null, rr);\n  });\n}\nfunction zi(t) {\n  return new ee(function(e) {\n    var n, r;\n    try {\n      for (var s = be(t), i = s.next(); !i.done; i = s.next()) {\n        var o = i.value;\n        if (e.next(o), e.closed)\n          return;\n      }\n    } catch (a) {\n      n = { error: a };\n    } finally {\n      try {\n        i && !i.done && (r = s.return) && r.call(s);\n      } finally {\n        if (n)\n          throw n.error;\n      }\n    }\n    e.complete();\n  });\n}\nfunction ir(t) {\n  return new ee(function(e) {\n    Vi(t, e).catch(function(n) {\n      return e.error(n);\n    });\n  });\n}\nfunction Hi(t) {\n  return ir(Fi(t));\n}\nfunction Vi(t, e) {\n  var n, r, s, i;\n  return pi(this, void 0, void 0, function() {\n    var o, a;\n    return er(this, function(c) {\n      switch (c.label) {\n        case 0:\n          c.trys.push([0, 5, 6, 11]), n = gi(t), c.label = 1;\n        case 1:\n          return [4, n.next()];\n        case 2:\n          if (r = c.sent(), !!r.done)\n            return [3, 4];\n          if (o = r.value, e.next(o), e.closed)\n            return [2];\n          c.label = 3;\n        case 3:\n          return [3, 1];\n        case 4:\n          return [3, 11];\n        case 5:\n          return a = c.sent(), s = { error: a }, [3, 11];\n        case 6:\n          return c.trys.push([6, , 9, 10]), r && !r.done && (i = n.return) ? [4, i.call(n)] : [3, 8];\n        case 7:\n          c.sent(), c.label = 8;\n        case 8:\n          return [3, 10];\n        case 9:\n          if (s)\n            throw s.error;\n          return [7];\n        case 10:\n          return [7];\n        case 11:\n          return e.complete(), [2];\n      }\n    });\n  });\n}\nfunction or(t, e) {\n  return Jt(function(n, r) {\n    var s = 0;\n    n.subscribe(Ve(r, function(i) {\n      r.next(t.call(e, i, s++));\n    }));\n  });\n}\nvar Wi = new ee(Rt);\nfunction Gi(t, e) {\n  return Jt(function(n, r) {\n    var s = 0;\n    n.subscribe(Ve(r, function(i) {\n      return t.call(e, i, s++) && r.next(i);\n    }));\n  });\n}\nfunction Xi(t, e) {\n  return Jt(function(n, r) {\n    var s = null, i = 0, o = !1, a = function() {\n      return o && !s && r.complete();\n    };\n    n.subscribe(Ve(r, function(c) {\n      s?.unsubscribe();\n      var u = 0, l = i++;\n      Ui(t(c, l)).subscribe(s = Ve(r, function(h) {\n        return r.next(e ? e(c, h, l, u++) : h);\n      }, function() {\n        s = null, a();\n      }));\n    }, function() {\n      o = !0, a();\n    }));\n  });\n}\nfunction Cu() {\n  return vi(\n    Gi((t) => !(t % 2)),\n    or((t) => t + t)\n  );\n}\nfunction Pu(t) {\n  return (e) => new ee((n) => {\n    const r = /* @__PURE__ */ new Set();\n    let s = !1;\n    const i = e.subscribe({\n      next(o) {\n        const a = setTimeout(() => {\n          n.next(o), r.delete(a), s && r.size === 0 && n.complete();\n        }, t);\n        r.add(a);\n      },\n      error(o) {\n        n.error(o);\n      },\n      complete() {\n        s = !0, r.size === 0 && n.complete();\n      }\n    });\n    return () => {\n      i.unsubscribe();\n      for (const o of r)\n        clearTimeout(o);\n    };\n  });\n}\nfunction Du(t, e) {\n  return t.pipe(Xi((n) => n ? e : Wi));\n}\nfunction Mu(t, e) {\n  return t.pipe(or((n) => n[e]));\n}\nfunction Iu(t, e) {\n  return t.name == e.name || t.constructor.name == e.name || t instanceof e;\n}\nclass Lu extends Error {\n  name;\n  response;\n  statusCode;\n  constructor(e, n) {\n    super(e), this.name = \"HttpError\", this.response = n, this.statusCode = n.status;\n  }\n  toJSON() {\n    return {\n      name: this.name,\n      message: this.message,\n      stack: this.stack,\n      response: this.response,\n      statusCode: this.statusCode\n    };\n  }\n}\nlet we;\nfunction $u(t) {\n  we = t, t(), we = null;\n}\nclass Ji {\n  subscribers = /* @__PURE__ */ new Set();\n  add() {\n    we && !this.subscribers.has(we) && this.subscribers.add(we);\n  }\n  notify(e) {\n    this.subscribers.forEach((n) => n(e));\n  }\n}\nconst mn = /* @__PURE__ */ new WeakMap();\nfunction Ie(t, e) {\n  let n = mn.get(t);\n  n || (n = /* @__PURE__ */ new Map(), mn.set(t, n));\n  let r = n.get(e);\n  return r || (r = new Ji(), n.set(e, r)), r;\n}\nfunction Yi(t, e = We, n) {\n  if (!Array.isArray(t))\n    return;\n  const r = n?.path || \"\", s = n?.callback, i = Array.prototype, o = Object.create(i);\n  [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\", \"sort\", \"reverse\"].forEach(\n    (a) => {\n      o[a] = function(...c) {\n        const u = this.slice();\n        [\"push\", \"unshift\", \"splice\"].includes(a) && (a === \"splice\" ? c.slice(2).forEach((d, p) => {\n          J(d) && (c[p + 2] = e(d, {\n            deep: !0,\n            path: r,\n            callback: s\n          }));\n        }) : c.forEach((m, d) => {\n          J(m) && (c[d] = e(m, {\n            deep: !0,\n            path: r,\n            callback: s\n          }));\n        })), i[a].apply(this, c);\n        const l = this.slice();\n        return s && s({ path: r, newValue: l, oldValue: u }), l;\n      };\n    }\n  ), Object.setPrototypeOf(t, o), t.forEach((a, c) => {\n    J(a) && (t[c] = e(a, { deep: !0, path: r, callback: s }));\n  });\n}\nfunction We(t, e) {\n  const n = typeof e?.deep == \"boolean\" ? e?.deep : !0, r = e?.path || \"\", s = e?.callback;\n  return Object.keys(t).forEach((i) => {\n    const o = Ie(t, i);\n    let a = t[i];\n    const c = r ? `${r}.${String(i)}` : String(i);\n    Object.defineProperty(t, i, {\n      configurable: !0,\n      // 是否可删除、可配置\n      enumerable: !0,\n      // 是否可枚举\n      // 数据描述符\n      // value : 默认为 undefined\n      // writable : 是否可读写\n      // 存取描述符\n      get() {\n        return n && J(a) && (Array.isArray(a) ? Yi(a, We, {\n          callback: (u) => {\n            o.notify(u), s && s(u);\n          },\n          path: c\n        }) : We(a, { deep: !0, path: c })), o.add(), a;\n      },\n      set(u) {\n        if (a !== u) {\n          const l = a;\n          a = u;\n          const h = { path: c, newValue: u, oldValue: l };\n          o.notify(h), s && s(h);\n        }\n      }\n    });\n  }), t;\n}\nfunction Fu(t) {\n  return t.value ? t.value : typeof t == \"function\" ? t() : t;\n}\nfunction Nu(t, e) {\n  return We({ value: t }, e);\n}\nconst Zi = ar;\nfunction ar(t, e) {\n  if (!J(t))\n    return t;\n  const n = typeof e?.deep == \"boolean\" ? e?.deep : !0, r = e?.path || \"\", s = e?.callback, i = {\n    // 拦截对象属性的读取\n    // target 目标对象、key 键值、receiver 当前proxy实例\n    get(a, c, u) {\n      const l = r ? `${r}.${String(c)}` : String(c);\n      let h = Reflect.get(a, c, u);\n      const m = Ie(a, c);\n      if (n && J(h) && !(\"isYZProxy\" in h)) {\n        const d = ar(h, {\n          deep: !0,\n          path: l,\n          callback: s\n        });\n        Array.isArray(h) && (d.YZProxyArrayDep = m), h = d;\n      }\n      return m.add(), h;\n    },\n    // 拦截对象属性的设置\n    // target 目标对象、key 键值、value 值、receiver 当前proxy实例\n    set(a, c, u, l) {\n      const h = Reflect.get(a, c, l), m = Reflect.set(a, c, u, l);\n      if (c == \"YZProxyArrayDep\")\n        return m;\n      if (h !== u) {\n        let d;\n        Array.isArray(a) ? d = a.YZProxyArrayDep : d = Ie(a, c);\n        const g = { path: r ? `${r}.${String(c)}` : String(c), newValue: u, oldValue: h };\n        d.notify(g), s && s(g);\n      }\n      return m;\n    },\n    // 拦截 `delete proxy[key]` 的操作，返回一个布尔值\n    deleteProperty(a, c) {\n      if (!(c in a))\n        return !1;\n      let l = typeof c == \"symbol\" ? void 0 : a[c];\n      J(l) && (l = Array.isArray(l) ? [...l] : { ...l });\n      const h = Reflect.deleteProperty(a, c);\n      if (h) {\n        let m;\n        Array.isArray(a) ? m = a.YZProxyArrayDep : m = Ie(a, c);\n        const p = { path: r ? `${r}.${String(c)}` : String(c), newValue: void 0, oldValue: l };\n        m.notify(p), s && s(p);\n      }\n      return h;\n    },\n    // 拦截 `key in proxy` 的操作，返回一个布尔值\n    has(a, c) {\n      return c === \"isYZProxy\" || c in a;\n    }\n    // 拦截 `Object.keys(proxy)`、`for...in` 等循环，返回一个数组\n    // ownKeys(target) {\n    //   return [];\n    // },\n    // 拦截 `Object.getOwnPropertyDescriptor(proxy, key)`，返回属性的描述对象\n    // getOwnPropertyDescriptor(target, key) {\n    //   return {};\n    // },\n    // 拦截 `Object.defineProperty(proxy, key, desc`，返回一个布尔值\n    // defineProperty(target, key, desc) {\n    //   return true;\n    // },\n    // 拦截 `Object.preventExtensions(proxy)`，返回一个布尔值\n    // preventExtensions(target) {\n    //   return true;\n    // },\n    // 拦截 `Object.getPrototypeOf(proxy)`，返回一个对象\n    // getPrototypeOf(target) {\n    //   return {};\n    // },\n    // 拦截 `Object.isExtensible(proxy)`，返回一个布尔值\n    // isExtensible(target) {\n    //   return true;\n    // },\n    // 拦截 `Object.setPrototypeOf(proxy, proto)`，返回一个布尔值\n    // setPrototypeOf(target, proto) {\n    //   return true;\n    // },\n    // 拦截 Proxy 实例作为函数调用的操作\n    // apply(target, thisArg, args) {\n    //   return target.apply(thisArg, args);\n    // },\n    // 拦截 Proxy 实例作为构造函数调用的操作\n    // construct(target, args) {\n    //   return {};\n    // }\n  };\n  return new Proxy(t, i);\n}\nclass Uu {\n  events;\n  constructor() {\n    this.events = {};\n  }\n  isEmpty(e) {\n    return this.events[e] == null || this.events[e].length == 0;\n  }\n  has(e, n) {\n    return this.events[e] !== void 0 && this.events[e].indexOf(n) !== -1;\n  }\n  prependListener(e, n, r) {\n    return this.events[e] || (this.events[e] = []), this.events[e].unshift(\n      r ? n.bind(r) : n\n    ), this;\n  }\n  addListener(e, n, r) {\n    return this.events[e] || (this.events[e] = []), this.events[e].push(\n      r ? n.bind(r) : n\n    ), this;\n  }\n  on(e, n, r) {\n    return this.addListener(e, n, r), this;\n  }\n  removeListener(e, n) {\n    return this.events[e] && (this.events[e] = this.events[e].filter((r) => r !== n)), this;\n  }\n  off(e, n) {\n    return this.removeListener(e, n), this;\n  }\n  removeAllListeners(e) {\n    return e ? this.events[e] = [] : this.events = {}, this;\n  }\n  // 注意：handler 自己绑定 this\n  emit(e, ...n) {\n    return this.events[e] && this.events[e].slice(0).forEach((s) => {\n      s(...n);\n    }), this;\n  }\n  once(e, n, r) {\n    const s = (...i) => {\n      r ? n.apply(r, i) : n(...i), this.off(e, s);\n    };\n    return this.on(e, s), this;\n  }\n}\nconst Ge = 3.141592653589793 * 3e3 / 180, _ = 3.141592653589793, Xe = 6378245, Je = 0.006693421622965943;\nfunction cr(t, e) {\n  return t < 72.004 || t > 137.8347 || e < 0.8293 || e > 55.8271 || !1;\n}\nfunction ur(t, e) {\n  let n = -100 + 2 * t + 3 * e + 0.2 * e * e + 0.1 * t * e + 0.2 * Math.sqrt(Math.abs(t));\n  return n += (20 * Math.sin(6 * t * _) + 20 * Math.sin(2 * t * _)) * 2 / 3, n += (20 * Math.sin(e * _) + 40 * Math.sin(e / 3 * _)) * 2 / 3, n += (160 * Math.sin(e / 12 * _) + 320 * Math.sin(e * _ / 30)) * 2 / 3, n;\n}\nfunction lr(t, e) {\n  let n = 300 + t + 2 * e + 0.1 * t * t + 0.1 * t * e + 0.1 * Math.sqrt(Math.abs(t));\n  return n += (20 * Math.sin(6 * t * _) + 20 * Math.sin(2 * t * _)) * 2 / 3, n += (20 * Math.sin(t * _) + 40 * Math.sin(t / 3 * _)) * 2 / 3, n += (150 * Math.sin(t / 12 * _) + 300 * Math.sin(t / 30 * _)) * 2 / 3, n;\n}\nfunction Ki(t, e) {\n  if (cr(t, e))\n    return [t, e];\n  {\n    let n = lr(t - 105, e - 35), r = ur(t - 105, e - 35);\n    const s = e / 180 * _;\n    let i = Math.sin(s);\n    i = 1 - Je * i * i;\n    const o = Math.sqrt(i);\n    n = n * 180 / (Xe / o * Math.cos(s) * _), r = r * 180 / (Xe * (1 - Je) / (i * o) * _);\n    const a = e + r;\n    return [t + n, a];\n  }\n}\nfunction Qi(t, e) {\n  if (cr(t, e))\n    return [t, e];\n  {\n    let n = ur(t - 105, e - 35), r = lr(t - 105, e - 35);\n    const s = e / 180 * _;\n    let i = Math.sin(s);\n    i = 1 - Je * i * i;\n    const o = Math.sqrt(i);\n    n = n * 180 / (Xe * (1 - Je) / (i * o) * _), r = r * 180 / (Xe / o * Math.cos(s) * _);\n    const a = e + n, c = t + r;\n    return [t * 2 - c, e * 2 - a];\n  }\n}\nfunction eo(t, e) {\n  const n = Math.sqrt(t * t + e * e) + 2e-5 * Math.sin(e * Ge), r = Math.atan2(e, t) + 3e-7 * Math.cos(t * Ge), s = n * Math.cos(r) + 65e-4, i = n * Math.sin(r) + 6e-3;\n  return [s, i];\n}\nfunction to(t, e) {\n  const n = t - 65e-4, r = e - 6e-3, s = Math.sqrt(n * n + r * r) - 2e-5 * Math.sin(r * Ge), i = Math.atan2(r, n) - 3e-6 * Math.cos(r * Ge), o = s * Math.cos(i), a = s * Math.sin(i);\n  return [o, a];\n}\nfunction Bu(t, e) {\n  const n = Ki(t, e);\n  return eo(n[0], n[1]);\n}\nfunction ju(t, e) {\n  const n = to(t, e);\n  return Qi(n[0], n[1]);\n}\nfunction qu(t) {\n  const e = /* @__PURE__ */ new WeakMap();\n  return new Proxy(t, {\n    construct(n, r) {\n      return e.has(n) || e.set(n, new n(...r)), e.get(n);\n    }\n  });\n}\nfunction zu(t) {\n  return class extends t {\n    constructor(...e) {\n      super(...e), this.currentUser = null;\n    }\n    login(e) {\n      R(`User ${e.name} logged in with role ${e.role}`), this.currentUser = e;\n    }\n    logout() {\n      R(`User ${this.currentUser.name} logged out`), this.currentUser = null;\n    }\n  };\n}\nfunction Hu(t) {\n  return function(e, n, r) {\n    const s = r.value;\n    return r.value = function(...i) {\n      if (!this.currentUser)\n        throw new Error(\"Authentication required\");\n      if (this.currentUser.role !== t)\n        throw new Error(`Requires ${t} role`);\n      return s.apply(this, i);\n    }, r;\n  };\n}\nfunction Vu(t) {\n  return function(e, n) {\n    let r;\n    Object.defineProperty(e, n, {\n      get() {\n        return r;\n      },\n      set(s) {\n        if (s.length < t)\n          throw new Error(`${String(n)} must be at least ${t} long`);\n        r = s;\n      }\n    });\n  };\n}\nfunction Wu(t) {\n  return function(e, n) {\n    let r;\n    Object.defineProperty(e, n, {\n      get() {\n        return r;\n      },\n      set(s) {\n        if (s.length < t)\n          throw new Error(`${String(n)} must be at most ${t} long`);\n        r = s;\n      }\n    });\n  };\n}\nfunction Gu(t) {\n  return function(e, n, r) {\n    const s = t || `${e.constructor.name}.${String(n)}`, i = r.value;\n    if (typeof i != \"function\")\n      throw new SyntaxError(\n        `@LogExecuteResultDecorator() can only be used on functions, not: ${s}`\n      );\n    return {\n      ...r,\n      value(...o) {\n        const a = i.apply(this, o);\n        return R(`${s} ( ${o} ) = ${a}`), a;\n      }\n    };\n  };\n}\nfunction Xu(t, e, n) {\n  const r = `${t.constructor.name}.${String(e)}`, s = n.value;\n  if (typeof s != \"function\")\n    throw new SyntaxError(\n      `@LogExecuteTimeDecorator can only be used on functions, not: ${r}`\n    );\n  let i = 0;\n  return {\n    ...n,\n    value(...o) {\n      const a = `${r}-${i++}`;\n      qe.start(a);\n      try {\n        return s.apply(this, o);\n      } finally {\n        qe.end(a);\n      }\n    }\n  };\n}\nfunction Ju(t, e, n) {\n  const r = `${t.constructor.name}.${String(e)}`, s = n.value;\n  if (typeof s != \"function\")\n    throw new SyntaxError(\n      `@ProfileDecorator can only be used on functions, not: ${r}`\n    );\n  return {\n    ...n,\n    value(...i) {\n      fn.start(r);\n      try {\n        return s.apply(this, i);\n      } finally {\n        fn.end(r);\n      }\n    }\n  };\n}\nfunction Yu(t = 300, e) {\n  return function(n, r, s) {\n    const i = `${n.constructor.name}.${String(r)}`, o = s.value;\n    if (typeof o != \"function\")\n      throw new SyntaxError(\n        `@ThrottleDecorator() can only be used on functions, not: ${i}`\n      );\n    return {\n      ...s,\n      value(...a) {\n        Qe(this).get(`__@ThrottleDecorator_${i}__`, ci(o, t, e)).apply(this, a);\n      }\n    };\n  };\n}\nfunction Zu(t = 300, e = !1) {\n  return function(n, r, s) {\n    const i = `${n.constructor.name}.${String(r)}`, o = s.value;\n    if (typeof o != \"function\")\n      throw new SyntaxError(\n        `@DebounceDecorator() can only be used on functions, not: ${i}`\n      );\n    return {\n      ...s,\n      value(...a) {\n        Qe(this).get(\n          `__@DebounceDecorator_${i}__`,\n          ui(o, t, { immediate: e })\n        ).apply(this, a);\n      }\n    };\n  };\n}\nfunction Ku(t = 3, e) {\n  return function(n, r, s) {\n    const i = `${n.constructor.name}.${String(r)}`, o = s.value;\n    if (typeof o != \"function\")\n      throw new SyntaxError(\n        `@RetryDecoratorDecorator() can only be used on functions, not: ${i}`\n      );\n    const a = Kn(o, t, e);\n    return {\n      ...s,\n      async value(...c) {\n        return await a.apply(this, c);\n      }\n    };\n  };\n}\nfunction Qu(t = 60) {\n  return function(e, n, r) {\n    const s = `${e.constructor.name}.${String(n)}`, i = r.value;\n    if (typeof i != \"function\")\n      throw new SyntaxError(\n        `@CacheDecorator() can only be used on functions, not: ${s}`\n      );\n    return {\n      ...r,\n      async value(...o) {\n        return await Qe(this).get(\n          `__@CacheDecorator_${s}__`,\n          Qn(i, t)\n        ).apply(this, o);\n      }\n    };\n  };\n}\nfunction el() {\n  return function(t, e, n) {\n    const r = `${t.constructor.name}.${String(e)}`, s = n.value;\n    if (typeof s != \"function\")\n      throw new SyntaxError(\n        `@MemorizeDecorator() can only be used on functions, not: ${r}`\n      );\n    return {\n      ...n,\n      async value(...i) {\n        return await Qe(this).get(\n          `__@MemorizeDecorator_${r}__`,\n          di(s)\n        ).apply(this, i);\n      }\n    };\n  };\n}\nfunction tl(t, e, n) {\n  if (n)\n    return n.writable = !1, n;\n  let r;\n  Object.defineProperty(t, e, {\n    get() {\n      return r;\n    },\n    set(s) {\n      if (r === void 0)\n        r = s;\n      else\n        throw new Error(`${t}.${String(e)} is Readonly!`);\n    }\n  });\n}\nfunction nl(t = !0) {\n  return (e, n, r) => {\n    if (r)\n      return r.configurable = t, r;\n    Object.defineProperty(e, n, {\n      configurable: t\n    });\n  };\n}\nfunction rl(t = !0) {\n  return (e, n, r) => {\n    if (r)\n      return r.enumerable = t, r;\n    Object.defineProperty(e, n, {\n      enumerable: t\n    });\n  };\n}\nfunction sl(t, e = (n, r) => n <= r) {\n  for (let n = 1, r = t.length; n < r; n++) {\n    let s = !1;\n    for (let i = 0; i < r - n; i++)\n      e(t[i], t[i + 1]) || ([t[i], t[i + 1]] = [t[i + 1], t[i]], s = !0);\n    if (!s)\n      return;\n  }\n}\nfunction il(t, e = (n, r) => n <= r) {\n  let n;\n  for (let r = 0, s = t.length; r < s - 1; r++) {\n    n = r;\n    for (let i = r + 1; i < s; i++)\n      e(t[n], t[i]) || (n = i);\n    n != r && ([t[n], t[r]] = [t[r], t[n]]);\n  }\n}\nfunction ol(t, e = (n, r) => n <= r) {\n  for (let n = 1, r = t.length; n < r; n++) {\n    const s = t[n];\n    let i = n - 1;\n    for (; i >= 0 && !e(t[i], s); )\n      t[i + 1] = t[i], i--;\n    t[i + 1] = s;\n  }\n}\nfunction gn(t, e = (n, r) => n <= r) {\n  const n = t.length;\n  if (n < 2)\n    return t;\n  const r = Math.floor(n / 2), s = gn(t.slice(0, r), e), i = gn(t.slice(r), e), o = [];\n  for (; s.length && i.length; )\n    e(s[0], i[0]) ? o.push(s.shift()) : o.push(i.shift());\n  for (; s.length; )\n    o.push(s.shift());\n  for (; i.length; )\n    o.push(i.shift());\n  return o;\n}\nfunction yn(t, e = 0, n = t.length - 1, r = (s, i) => s <= i) {\n  if (e >= n)\n    return;\n  const s = e + n >> 1;\n  yn(t, e, s, r), yn(t, s + 1, n, r);\n  let i = e, o = s + 1;\n  const a = [];\n  for (; i <= s && o <= n; )\n    r(t[i], t[o]) ? a.push(t[i++]) : a.push(t[o++]);\n  for (; i <= s; )\n    a.push(t[i++]);\n  for (; o <= n; )\n    a.push(t[o++]);\n  for (i = e, o = 0; i <= n; ++i, ++o)\n    t[i] = a[o];\n}\nfunction no(t, e = 0, n = t.length - 1, r = (s, i) => s <= i) {\n  if (e >= n)\n    return e;\n  const s = n, i = t[s];\n  let o = e;\n  for (let a = e; a <= n; a++)\n    a != s && r(t[a], i) && ([t[o], t[a]] = [t[a], t[o]], o++);\n  return [t[o], t[s]] = [\n    t[s],\n    t[o]\n  ], o;\n}\nfunction wn(t, e = 0, n = t.length - 1, r = (s, i) => s <= i) {\n  if (e >= n)\n    return;\n  const s = no(t, e, n, r);\n  wn(t, e, s - 1, r), wn(t, s + 1, n, r);\n}\nfunction bn(t, e = 0, n = t.length - 1, r = (s, i) => s <= i) {\n  if (e >= n)\n    return;\n  const s = e, i = t[s];\n  let o = e, a = n;\n  for (; o < a; ) {\n    for (; o < n && r(t[o], i); )\n      o++;\n    for (; a > e && r(i, t[a]); )\n      a--;\n    o < a && ([t[o], t[a]] = [t[a], t[o]]);\n  }\n  [t[s], t[a]] = [t[a], t[s]], bn(t, e, a - 1, r), bn(t, a + 1, n, r);\n}\nfunction Sn(t, e = 0, n = t.length - 1, r = (s, i) => s <= i) {\n  if (e >= n)\n    return;\n  const s = e, i = t[s];\n  let o = e, a = n, c = e;\n  for (; c <= a; )\n    r(t[c], i) ? ([t[o], t[c]] = [t[c], t[o]], o++, c++) : r(i, t[c]) ? ([t[c], t[a]] = [t[a], t[c]], a--) : c++;\n  [t[s], t[a]] = [t[a], t[s]], Sn(t, e, a - 1, r), Sn(t, a + 1, n, r);\n}\nfunction al(t, e = (n, r) => n <= r) {\n  const n = t.length;\n  let r = Math.floor(n / 2);\n  for (; r > 0; ) {\n    for (let s = r; s < n; s++) {\n      const i = t[s];\n      let o = s;\n      for (; o >= r && !e(t[o - r], i); )\n        t[o] = t[o - r], o -= r;\n      t[o] = i;\n    }\n    r = Math.floor(r / 2);\n  }\n}\nfunction cl(t, e = (n, r) => n <= r) {\n  const n = new nt(e, t), r = [];\n  let s;\n  for (; (s = n.pop()) !== null; )\n    r.push(s);\n  return r;\n}\nfunction ul(t, e) {\n  let n = 0, r = t.length - 1;\n  for (; n < r; ) {\n    const s = Math.floor((n + r) / 2), i = t[s];\n    if (i === e)\n      return s;\n    i < e ? n = s + 1 : r = s - 1;\n  }\n  return -1;\n}\nfunction ll(t, e) {\n  function n(s, i, o) {\n    const a = s[o];\n    let c = i - 1;\n    for (let u = i; u < o; u++)\n      s[u] >= a && (c++, [s[c], s[u]] = [s[u], s[c]]);\n    return [s[c + 1], s[o]] = [s[o], s[c + 1]], c + 1;\n  }\n  function r(s, i, o) {\n    if (s === i)\n      return t[s];\n    const a = n(t, s, i);\n    return a === o ? t[a] : a < o ? r(a + 1, i, o) : r(s, a - 1, o);\n  }\n  return r(0, t.length - 1, e - 1);\n}\nclass fl {\n  max;\n  cache = /* @__PURE__ */ new Map();\n  constructor(e) {\n    this.max = e;\n  }\n  add(e, n) {\n    const { cache: r } = this;\n    if (r.size >= this.max) {\n      const s = r.keys().next();\n      s.value && r.delete(s.value);\n    }\n    r.set(e, n);\n  }\n  get(e) {\n    const { cache: n } = this, r = n.get(e);\n    if (r)\n      return n.delete(e), n.set(e, r), r;\n  }\n}\nclass hl {\n  max;\n  cache = new si();\n  constructor(e) {\n    this.max = e;\n  }\n  add(e) {\n    const { cache: n } = this;\n    n.size() >= this.max && n.pop(), n.unshift(e);\n  }\n  get(e) {\n    const { cache: n } = this, r = n.getIndex(e);\n    return r == -1 ? this.add(e) : (n.delete(r), n.unshift(e)), e;\n  }\n}\nclass dl {\n  prefixSumArray;\n  constructor(e) {\n    const n = e.length + 1;\n    this.prefixSumArray = Array.from({ length: n }).fill(0);\n    for (let r = 1; r < n; r++)\n      this.prefixSumArray[r] = this.prefixSumArray[r - 1] + e[r - 1];\n  }\n  // 查询闭区间 [i, j] 的累加和\n  sum(e, n) {\n    return this.prefixSumArray[n + 1] - this.prefixSumArray[e];\n  }\n}\nclass pl {\n  diffArray;\n  constructor(e) {\n    const n = e.length;\n    this.diffArray = Array.from({ length: n }).fill(0), this.diffArray[0] = e[0];\n    for (let r = 1; r < n; r++)\n      this.diffArray[r] = e[r] - e[r - 1];\n  }\n  // 根据差分数组构造结果数组\n  result() {\n    const e = this.diffArray.length, n = Array.from({ length: e }).fill(0);\n    n[0] = this.diffArray[0];\n    for (let r = 1; r < e; r++)\n      n[r] = n[r - 1] + this.diffArray[r];\n    return n;\n  }\n  // 对闭区间 [i, j]进行增减的操作 ，num 可以为负数\n  // 原理很简单，根据 diffArray 数组反推 nums 数组的过程，diff[i] += 3 意味着给 nums[i..] 所有的元素都加了 3，然后 diffArray[j+1] -= 3 又意味着对于 nums[j+1..] 所有元素再减 3，那综合起来，是不是就是对 nums[i..j] 中的所有元素都加 3 了\n  // 只要花费 O(1) 的时间修改 diffArray 数组，就相当于给 原数组 的整个区间做了修改\n  operate(e, n, r) {\n    e >= 0 && e < this.diffArray.length && (this.diffArray[e] += r), n + 1 >= 0 && n + 1 < this.diffArray.length && (this.diffArray[n + 1] -= r);\n  }\n}\nclass ro {\n  commands = [];\n  pushCommand(e) {\n    this.commands.push(e);\n  }\n  popCommand() {\n    this.commands.pop();\n  }\n  executeCommands(...e) {\n    this.commands.forEach((n) => this.executeCommand(n, ...e)), this.commands = [];\n  }\n  // 子类只需修改此方法\n  executeCommand(e, ...n) {\n    e.execute(...n);\n  }\n}\nclass so {\n  data;\n  constructor(e) {\n    this.data = e;\n  }\n  get() {\n    return this.data;\n  }\n}\nclass ml {\n  state;\n  saveState() {\n    if (this.state)\n      return new so(this.state);\n  }\n  restoreState(e) {\n    this.state = e.get();\n  }\n}\nclass gl extends ro {\n  originator;\n  mementos = [];\n  constructor(e) {\n    super(), this.originator = e;\n  }\n  pushMemento(e) {\n    this.mementos.push(e);\n  }\n  popMemento() {\n    return this.mementos.pop();\n  }\n  executeCommand(e) {\n    e.execute(this);\n  }\n}\nclass yl {\n  execute(e) {\n    const n = e.originator.saveState();\n    n && e.pushMemento(n);\n  }\n}\nclass wl {\n  execute(e) {\n    const n = e.popMemento();\n    n && e.originator.restoreState(n);\n  }\n}\nconst io = {\n  11e4: \"北京市\",\n  110100: \"市辖区\",\n  110101: \"东城区\",\n  110102: \"西城区\",\n  110105: \"朝阳区\",\n  110106: \"丰台区\",\n  110107: \"石景山区\",\n  110108: \"海淀区\",\n  110109: \"门头沟区\",\n  110111: \"房山区\",\n  110112: \"通州区\",\n  110113: \"顺义区\",\n  110114: \"昌平区\",\n  110115: \"大兴区\",\n  110116: \"怀柔区\",\n  110117: \"平谷区\",\n  110118: \"密云区\",\n  110119: \"延庆区\",\n  12e4: \"天津市\",\n  120100: \"市辖区\",\n  120101: \"和平区\",\n  120102: \"河东区\",\n  120103: \"河西区\",\n  120104: \"南开区\",\n  120105: \"河北区\",\n  120106: \"红桥区\",\n  120110: \"东丽区\",\n  120111: \"西青区\",\n  120112: \"津南区\",\n  120113: \"北辰区\",\n  120114: \"武清区\",\n  120115: \"宝坻区\",\n  120116: \"滨海新区\",\n  120117: \"宁河区\",\n  120118: \"静海区\",\n  120119: \"蓟州区\",\n  13e4: \"河北省\",\n  130100: \"石家庄市\",\n  130101: \"市辖区\",\n  130102: \"长安区\",\n  130104: \"桥西区\",\n  130105: \"新华区\",\n  130107: \"井陉矿区\",\n  130108: \"裕华区\",\n  130109: \"藁城区\",\n  130110: \"鹿泉区\",\n  130111: \"栾城区\",\n  130121: \"井陉县\",\n  130123: \"正定县\",\n  130125: \"行唐县\",\n  130126: \"灵寿县\",\n  130127: \"高邑县\",\n  130128: \"深泽县\",\n  130129: \"赞皇县\",\n  130130: \"无极县\",\n  130131: \"平山县\",\n  130132: \"元氏县\",\n  130133: \"赵县\",\n  130183: \"晋州市\",\n  130184: \"新乐市\",\n  130200: \"唐山市\",\n  130201: \"市辖区\",\n  130202: \"路南区\",\n  130203: \"路北区\",\n  130204: \"古冶区\",\n  130205: \"开平区\",\n  130207: \"丰南区\",\n  130208: \"丰润区\",\n  130209: \"曹妃甸区\",\n  130223: \"滦县\",\n  130224: \"滦南县\",\n  130225: \"乐亭县\",\n  130227: \"迁西县\",\n  130229: \"玉田县\",\n  130281: \"遵化市\",\n  130283: \"迁安市\",\n  130300: \"秦皇岛市\",\n  130301: \"市辖区\",\n  130302: \"海港区\",\n  130303: \"山海关区\",\n  130304: \"北戴河区\",\n  130306: \"抚宁区\",\n  130321: \"青龙满族自治县\",\n  130322: \"昌黎县\",\n  130324: \"卢龙县\",\n  130400: \"邯郸市\",\n  130401: \"市辖区\",\n  130402: \"邯山区\",\n  130403: \"丛台区\",\n  130404: \"复兴区\",\n  130406: \"峰峰矿区\",\n  130421: \"邯郸县\",\n  130423: \"临漳县\",\n  130424: \"成安县\",\n  130425: \"大名县\",\n  130426: \"涉县\",\n  130427: \"磁县\",\n  130428: \"肥乡县\",\n  130429: \"永年县\",\n  130430: \"邱县\",\n  130431: \"鸡泽县\",\n  130432: \"广平县\",\n  130433: \"馆陶县\",\n  130434: \"魏县\",\n  130435: \"曲周县\",\n  130481: \"武安市\",\n  130500: \"邢台市\",\n  130501: \"市辖区\",\n  130502: \"桥东区\",\n  130503: \"桥西区\",\n  130521: \"邢台县\",\n  130522: \"临城县\",\n  130523: \"内丘县\",\n  130524: \"柏乡县\",\n  130525: \"隆尧县\",\n  130526: \"任县\",\n  130527: \"南和县\",\n  130528: \"宁晋县\",\n  130529: \"巨鹿县\",\n  130530: \"新河县\",\n  130531: \"广宗县\",\n  130532: \"平乡县\",\n  130533: \"威县\",\n  130534: \"清河县\",\n  130535: \"临西县\",\n  130581: \"南宫市\",\n  130582: \"沙河市\",\n  130600: \"保定市\",\n  130601: \"市辖区\",\n  130602: \"竞秀区\",\n  130606: \"莲池区\",\n  130607: \"满城区\",\n  130608: \"清苑区\",\n  130609: \"徐水区\",\n  130623: \"涞水县\",\n  130624: \"阜平县\",\n  130626: \"定兴县\",\n  130627: \"唐县\",\n  130628: \"高阳县\",\n  130629: \"容城县\",\n  130630: \"涞源县\",\n  130631: \"望都县\",\n  130632: \"安新县\",\n  130633: \"易县\",\n  130634: \"曲阳县\",\n  130635: \"蠡县\",\n  130636: \"顺平县\",\n  130637: \"博野县\",\n  130638: \"雄县\",\n  130681: \"涿州市\",\n  130683: \"安国市\",\n  130684: \"高碑店市\",\n  130700: \"张家口市\",\n  130701: \"市辖区\",\n  130702: \"桥东区\",\n  130703: \"桥西区\",\n  130705: \"宣化区\",\n  130706: \"下花园区\",\n  130708: \"万全区\",\n  130709: \"崇礼区\",\n  130722: \"张北县\",\n  130723: \"康保县\",\n  130724: \"沽源县\",\n  130725: \"尚义县\",\n  130726: \"蔚县\",\n  130727: \"阳原县\",\n  130728: \"怀安县\",\n  130730: \"怀来县\",\n  130731: \"涿鹿县\",\n  130732: \"赤城县\",\n  130800: \"承德市\",\n  130801: \"市辖区\",\n  130802: \"双桥区\",\n  130803: \"双滦区\",\n  130804: \"鹰手营子矿区\",\n  130821: \"承德县\",\n  130822: \"兴隆县\",\n  130823: \"平泉县\",\n  130824: \"滦平县\",\n  130825: \"隆化县\",\n  130826: \"丰宁满族自治县\",\n  130827: \"宽城满族自治县\",\n  130828: \"围场满族蒙古族自治县\",\n  130900: \"沧州市\",\n  130901: \"市辖区\",\n  130902: \"新华区\",\n  130903: \"运河区\",\n  130921: \"沧县\",\n  130922: \"青县\",\n  130923: \"东光县\",\n  130924: \"海兴县\",\n  130925: \"盐山县\",\n  130926: \"肃宁县\",\n  130927: \"南皮县\",\n  130928: \"吴桥县\",\n  130929: \"献县\",\n  130930: \"孟村回族自治县\",\n  130981: \"泊头市\",\n  130982: \"任丘市\",\n  130983: \"黄骅市\",\n  130984: \"河间市\",\n  131e3: \"廊坊市\",\n  131001: \"市辖区\",\n  131002: \"安次区\",\n  131003: \"广阳区\",\n  131022: \"固安县\",\n  131023: \"永清县\",\n  131024: \"香河县\",\n  131025: \"大城县\",\n  131026: \"文安县\",\n  131028: \"大厂回族自治县\",\n  131081: \"霸州市\",\n  131082: \"三河市\",\n  131100: \"衡水市\",\n  131101: \"市辖区\",\n  131102: \"桃城区\",\n  131103: \"冀州区\",\n  131121: \"枣强县\",\n  131122: \"武邑县\",\n  131123: \"武强县\",\n  131124: \"饶阳县\",\n  131125: \"安平县\",\n  131126: \"故城县\",\n  131127: \"景县\",\n  131128: \"阜城县\",\n  131182: \"深州市\",\n  139e3: \"省直辖县级行政区划\",\n  139001: \"定州市\",\n  139002: \"辛集市\",\n  14e4: \"山西省\",\n  140100: \"太原市\",\n  140101: \"市辖区\",\n  140105: \"小店区\",\n  140106: \"迎泽区\",\n  140107: \"杏花岭区\",\n  140108: \"尖草坪区\",\n  140109: \"万柏林区\",\n  140110: \"晋源区\",\n  140121: \"清徐县\",\n  140122: \"阳曲县\",\n  140123: \"娄烦县\",\n  140181: \"古交市\",\n  140200: \"大同市\",\n  140201: \"市辖区\",\n  140202: \"城区\",\n  140203: \"矿区\",\n  140211: \"南郊区\",\n  140212: \"新荣区\",\n  140221: \"阳高县\",\n  140222: \"天镇县\",\n  140223: \"广灵县\",\n  140224: \"灵丘县\",\n  140225: \"浑源县\",\n  140226: \"左云县\",\n  140227: \"大同县\",\n  140300: \"阳泉市\",\n  140301: \"市辖区\",\n  140302: \"城区\",\n  140303: \"矿区\",\n  140311: \"郊区\",\n  140321: \"平定县\",\n  140322: \"盂县\",\n  140400: \"长治市\",\n  140401: \"市辖区\",\n  140402: \"城区\",\n  140411: \"郊区\",\n  140421: \"长治县\",\n  140423: \"襄垣县\",\n  140424: \"屯留县\",\n  140425: \"平顺县\",\n  140426: \"黎城县\",\n  140427: \"壶关县\",\n  140428: \"长子县\",\n  140429: \"武乡县\",\n  140430: \"沁县\",\n  140431: \"沁源县\",\n  140481: \"潞城市\",\n  140500: \"晋城市\",\n  140501: \"市辖区\",\n  140502: \"城区\",\n  140521: \"沁水县\",\n  140522: \"阳城县\",\n  140524: \"陵川县\",\n  140525: \"泽州县\",\n  140581: \"高平市\",\n  140600: \"朔州市\",\n  140601: \"市辖区\",\n  140602: \"朔城区\",\n  140603: \"平鲁区\",\n  140621: \"山阴县\",\n  140622: \"应县\",\n  140623: \"右玉县\",\n  140624: \"怀仁县\",\n  140700: \"晋中市\",\n  140701: \"市辖区\",\n  140702: \"榆次区\",\n  140721: \"榆社县\",\n  140722: \"左权县\",\n  140723: \"和顺县\",\n  140724: \"昔阳县\",\n  140725: \"寿阳县\",\n  140726: \"太谷县\",\n  140727: \"祁县\",\n  140728: \"平遥县\",\n  140729: \"灵石县\",\n  140781: \"介休市\",\n  140800: \"运城市\",\n  140801: \"市辖区\",\n  140802: \"盐湖区\",\n  140821: \"临猗县\",\n  140822: \"万荣县\",\n  140823: \"闻喜县\",\n  140824: \"稷山县\",\n  140825: \"新绛县\",\n  140826: \"绛县\",\n  140827: \"垣曲县\",\n  140828: \"夏县\",\n  140829: \"平陆县\",\n  140830: \"芮城县\",\n  140881: \"永济市\",\n  140882: \"河津市\",\n  140900: \"忻州市\",\n  140901: \"市辖区\",\n  140902: \"忻府区\",\n  140921: \"定襄县\",\n  140922: \"五台县\",\n  140923: \"代县\",\n  140924: \"繁峙县\",\n  140925: \"宁武县\",\n  140926: \"静乐县\",\n  140927: \"神池县\",\n  140928: \"五寨县\",\n  140929: \"岢岚县\",\n  140930: \"河曲县\",\n  140931: \"保德县\",\n  140932: \"偏关县\",\n  140981: \"原平市\",\n  141e3: \"临汾市\",\n  141001: \"市辖区\",\n  141002: \"尧都区\",\n  141021: \"曲沃县\",\n  141022: \"翼城县\",\n  141023: \"襄汾县\",\n  141024: \"洪洞县\",\n  141025: \"古县\",\n  141026: \"安泽县\",\n  141027: \"浮山县\",\n  141028: \"吉县\",\n  141029: \"乡宁县\",\n  141030: \"大宁县\",\n  141031: \"隰县\",\n  141032: \"永和县\",\n  141033: \"蒲县\",\n  141034: \"汾西县\",\n  141081: \"侯马市\",\n  141082: \"霍州市\",\n  141100: \"吕梁市\",\n  141101: \"市辖区\",\n  141102: \"离石区\",\n  141121: \"文水县\",\n  141122: \"交城县\",\n  141123: \"兴县\",\n  141124: \"临县\",\n  141125: \"柳林县\",\n  141126: \"石楼县\",\n  141127: \"岚县\",\n  141128: \"方山县\",\n  141129: \"中阳县\",\n  141130: \"交口县\",\n  141181: \"孝义市\",\n  141182: \"汾阳市\",\n  15e4: \"内蒙古自治区\",\n  150100: \"呼和浩特市\",\n  150101: \"市辖区\",\n  150102: \"新城区\",\n  150103: \"回民区\",\n  150104: \"玉泉区\",\n  150105: \"赛罕区\",\n  150121: \"土默特左旗\",\n  150122: \"托克托县\",\n  150123: \"和林格尔县\",\n  150124: \"清水河县\",\n  150125: \"武川县\",\n  150200: \"包头市\",\n  150201: \"市辖区\",\n  150202: \"东河区\",\n  150203: \"昆都仑区\",\n  150204: \"青山区\",\n  150205: \"石拐区\",\n  150206: \"白云鄂博矿区\",\n  150207: \"九原区\",\n  150221: \"土默特右旗\",\n  150222: \"固阳县\",\n  150223: \"达尔罕茂明安联合旗\",\n  150300: \"乌海市\",\n  150301: \"市辖区\",\n  150302: \"海勃湾区\",\n  150303: \"海南区\",\n  150304: \"乌达区\",\n  150400: \"赤峰市\",\n  150401: \"市辖区\",\n  150402: \"红山区\",\n  150403: \"元宝山区\",\n  150404: \"松山区\",\n  150421: \"阿鲁科尔沁旗\",\n  150422: \"巴林左旗\",\n  150423: \"巴林右旗\",\n  150424: \"林西县\",\n  150425: \"克什克腾旗\",\n  150426: \"翁牛特旗\",\n  150428: \"喀喇沁旗\",\n  150429: \"宁城县\",\n  150430: \"敖汉旗\",\n  150500: \"通辽市\",\n  150501: \"市辖区\",\n  150502: \"科尔沁区\",\n  150521: \"科尔沁左翼中旗\",\n  150522: \"科尔沁左翼后旗\",\n  150523: \"开鲁县\",\n  150524: \"库伦旗\",\n  150525: \"奈曼旗\",\n  150526: \"扎鲁特旗\",\n  150581: \"霍林郭勒市\",\n  150600: \"鄂尔多斯市\",\n  150601: \"市辖区\",\n  150602: \"东胜区\",\n  150603: \"康巴什区\",\n  150621: \"达拉特旗\",\n  150622: \"准格尔旗\",\n  150623: \"鄂托克前旗\",\n  150624: \"鄂托克旗\",\n  150625: \"杭锦旗\",\n  150626: \"乌审旗\",\n  150627: \"伊金霍洛旗\",\n  150700: \"呼伦贝尔市\",\n  150701: \"市辖区\",\n  150702: \"海拉尔区\",\n  150703: \"扎赉诺尔区\",\n  150721: \"阿荣旗\",\n  150722: \"莫力达瓦达斡尔族自治旗\",\n  150723: \"鄂伦春自治旗\",\n  150724: \"鄂温克族自治旗\",\n  150725: \"陈巴尔虎旗\",\n  150726: \"新巴尔虎左旗\",\n  150727: \"新巴尔虎右旗\",\n  150781: \"满洲里市\",\n  150782: \"牙克石市\",\n  150783: \"扎兰屯市\",\n  150784: \"额尔古纳市\",\n  150785: \"根河市\",\n  150800: \"巴彦淖尔市\",\n  150801: \"市辖区\",\n  150802: \"临河区\",\n  150821: \"五原县\",\n  150822: \"磴口县\",\n  150823: \"乌拉特前旗\",\n  150824: \"乌拉特中旗\",\n  150825: \"乌拉特后旗\",\n  150826: \"杭锦后旗\",\n  150900: \"乌兰察布市\",\n  150901: \"市辖区\",\n  150902: \"集宁区\",\n  150921: \"卓资县\",\n  150922: \"化德县\",\n  150923: \"商都县\",\n  150924: \"兴和县\",\n  150925: \"凉城县\",\n  150926: \"察哈尔右翼前旗\",\n  150927: \"察哈尔右翼中旗\",\n  150928: \"察哈尔右翼后旗\",\n  150929: \"四子王旗\",\n  150981: \"丰镇市\",\n  152200: \"兴安盟\",\n  152201: \"乌兰浩特市\",\n  152202: \"阿尔山市\",\n  152221: \"科尔沁右翼前旗\",\n  152222: \"科尔沁右翼中旗\",\n  152223: \"扎赉特旗\",\n  152224: \"突泉县\",\n  152500: \"锡林郭勒盟\",\n  152501: \"二连浩特市\",\n  152502: \"锡林浩特市\",\n  152522: \"阿巴嘎旗\",\n  152523: \"苏尼特左旗\",\n  152524: \"苏尼特右旗\",\n  152525: \"东乌珠穆沁旗\",\n  152526: \"西乌珠穆沁旗\",\n  152527: \"太仆寺旗\",\n  152528: \"镶黄旗\",\n  152529: \"正镶白旗\",\n  152530: \"正蓝旗\",\n  152531: \"多伦县\",\n  152900: \"阿拉善盟\",\n  152921: \"阿拉善左旗\",\n  152922: \"阿拉善右旗\",\n  152923: \"额济纳旗\",\n  21e4: \"辽宁省\",\n  210100: \"沈阳市\",\n  210101: \"市辖区\",\n  210102: \"和平区\",\n  210103: \"沈河区\",\n  210104: \"大东区\",\n  210105: \"皇姑区\",\n  210106: \"铁西区\",\n  210111: \"苏家屯区\",\n  210112: \"浑南区\",\n  210113: \"沈北新区\",\n  210114: \"于洪区\",\n  210115: \"辽中区\",\n  210123: \"康平县\",\n  210124: \"法库县\",\n  210181: \"新民市\",\n  210200: \"大连市\",\n  210201: \"市辖区\",\n  210202: \"中山区\",\n  210203: \"西岗区\",\n  210204: \"沙河口区\",\n  210211: \"甘井子区\",\n  210212: \"旅顺口区\",\n  210213: \"金州区\",\n  210214: \"普兰店区\",\n  210224: \"长海县\",\n  210281: \"瓦房店市\",\n  210283: \"庄河市\",\n  210300: \"鞍山市\",\n  210301: \"市辖区\",\n  210302: \"铁东区\",\n  210303: \"铁西区\",\n  210304: \"立山区\",\n  210311: \"千山区\",\n  210321: \"台安县\",\n  210323: \"岫岩满族自治县\",\n  210381: \"海城市\",\n  210400: \"抚顺市\",\n  210401: \"市辖区\",\n  210402: \"新抚区\",\n  210403: \"东洲区\",\n  210404: \"望花区\",\n  210411: \"顺城区\",\n  210421: \"抚顺县\",\n  210422: \"新宾满族自治县\",\n  210423: \"清原满族自治县\",\n  210500: \"本溪市\",\n  210501: \"市辖区\",\n  210502: \"平山区\",\n  210503: \"溪湖区\",\n  210504: \"明山区\",\n  210505: \"南芬区\",\n  210521: \"本溪满族自治县\",\n  210522: \"桓仁满族自治县\",\n  210600: \"丹东市\",\n  210601: \"市辖区\",\n  210602: \"元宝区\",\n  210603: \"振兴区\",\n  210604: \"振安区\",\n  210624: \"宽甸满族自治县\",\n  210681: \"东港市\",\n  210682: \"凤城市\",\n  210700: \"锦州市\",\n  210701: \"市辖区\",\n  210702: \"古塔区\",\n  210703: \"凌河区\",\n  210711: \"太和区\",\n  210726: \"黑山县\",\n  210727: \"义县\",\n  210781: \"凌海市\",\n  210782: \"北镇市\",\n  210800: \"营口市\",\n  210801: \"市辖区\",\n  210802: \"站前区\",\n  210803: \"西市区\",\n  210804: \"鲅鱼圈区\",\n  210811: \"老边区\",\n  210881: \"盖州市\",\n  210882: \"大石桥市\",\n  210900: \"阜新市\",\n  210901: \"市辖区\",\n  210902: \"海州区\",\n  210903: \"新邱区\",\n  210904: \"太平区\",\n  210905: \"清河门区\",\n  210911: \"细河区\",\n  210921: \"阜新蒙古族自治县\",\n  210922: \"彰武县\",\n  211e3: \"辽阳市\",\n  211001: \"市辖区\",\n  211002: \"白塔区\",\n  211003: \"文圣区\",\n  211004: \"宏伟区\",\n  211005: \"弓长岭区\",\n  211011: \"太子河区\",\n  211021: \"辽阳县\",\n  211081: \"灯塔市\",\n  211100: \"盘锦市\",\n  211101: \"市辖区\",\n  211102: \"双台子区\",\n  211103: \"兴隆台区\",\n  211104: \"大洼区\",\n  211122: \"盘山县\",\n  211200: \"铁岭市\",\n  211201: \"市辖区\",\n  211202: \"银州区\",\n  211204: \"清河区\",\n  211221: \"铁岭县\",\n  211223: \"西丰县\",\n  211224: \"昌图县\",\n  211281: \"调兵山市\",\n  211282: \"开原市\",\n  211300: \"朝阳市\",\n  211301: \"市辖区\",\n  211302: \"双塔区\",\n  211303: \"龙城区\",\n  211321: \"朝阳县\",\n  211322: \"建平县\",\n  211324: \"喀喇沁左翼蒙古族自治县\",\n  211381: \"北票市\",\n  211382: \"凌源市\",\n  211400: \"葫芦岛市\",\n  211401: \"市辖区\",\n  211402: \"连山区\",\n  211403: \"龙港区\",\n  211404: \"南票区\",\n  211421: \"绥中县\",\n  211422: \"建昌县\",\n  211481: \"兴城市\",\n  22e4: \"吉林省\",\n  220100: \"长春市\",\n  220101: \"市辖区\",\n  220102: \"南关区\",\n  220103: \"宽城区\",\n  220104: \"朝阳区\",\n  220105: \"二道区\",\n  220106: \"绿园区\",\n  220112: \"双阳区\",\n  220113: \"九台区\",\n  220122: \"农安县\",\n  220182: \"榆树市\",\n  220183: \"德惠市\",\n  220200: \"吉林市\",\n  220201: \"市辖区\",\n  220202: \"昌邑区\",\n  220203: \"龙潭区\",\n  220204: \"船营区\",\n  220211: \"丰满区\",\n  220221: \"永吉县\",\n  220281: \"蛟河市\",\n  220282: \"桦甸市\",\n  220283: \"舒兰市\",\n  220284: \"磐石市\",\n  220300: \"四平市\",\n  220301: \"市辖区\",\n  220302: \"铁西区\",\n  220303: \"铁东区\",\n  220322: \"梨树县\",\n  220323: \"伊通满族自治县\",\n  220381: \"公主岭市\",\n  220382: \"双辽市\",\n  220400: \"辽源市\",\n  220401: \"市辖区\",\n  220402: \"龙山区\",\n  220403: \"西安区\",\n  220421: \"东丰县\",\n  220422: \"东辽县\",\n  220500: \"通化市\",\n  220501: \"市辖区\",\n  220502: \"东昌区\",\n  220503: \"二道江区\",\n  220521: \"通化县\",\n  220523: \"辉南县\",\n  220524: \"柳河县\",\n  220581: \"梅河口市\",\n  220582: \"集安市\",\n  220600: \"白山市\",\n  220601: \"市辖区\",\n  220602: \"浑江区\",\n  220605: \"江源区\",\n  220621: \"抚松县\",\n  220622: \"靖宇县\",\n  220623: \"长白朝鲜族自治县\",\n  220681: \"临江市\",\n  220700: \"松原市\",\n  220701: \"市辖区\",\n  220702: \"宁江区\",\n  220721: \"前郭尔罗斯蒙古族自治县\",\n  220722: \"长岭县\",\n  220723: \"乾安县\",\n  220781: \"扶余市\",\n  220800: \"白城市\",\n  220801: \"市辖区\",\n  220802: \"洮北区\",\n  220821: \"镇赉县\",\n  220822: \"通榆县\",\n  220881: \"洮南市\",\n  220882: \"大安市\",\n  222400: \"延边朝鲜族自治州\",\n  222401: \"延吉市\",\n  222402: \"图们市\",\n  222403: \"敦化市\",\n  222404: \"珲春市\",\n  222405: \"龙井市\",\n  222406: \"和龙市\",\n  222424: \"汪清县\",\n  222426: \"安图县\",\n  23e4: \"黑龙江省\",\n  230100: \"哈尔滨市\",\n  230101: \"市辖区\",\n  230102: \"道里区\",\n  230103: \"南岗区\",\n  230104: \"道外区\",\n  230108: \"平房区\",\n  230109: \"松北区\",\n  230110: \"香坊区\",\n  230111: \"呼兰区\",\n  230112: \"阿城区\",\n  230113: \"双城区\",\n  230123: \"依兰县\",\n  230124: \"方正县\",\n  230125: \"宾县\",\n  230126: \"巴彦县\",\n  230127: \"木兰县\",\n  230128: \"通河县\",\n  230129: \"延寿县\",\n  230183: \"尚志市\",\n  230184: \"五常市\",\n  230200: \"齐齐哈尔市\",\n  230201: \"市辖区\",\n  230202: \"龙沙区\",\n  230203: \"建华区\",\n  230204: \"铁锋区\",\n  230205: \"昂昂溪区\",\n  230206: \"富拉尔基区\",\n  230207: \"碾子山区\",\n  230208: \"梅里斯达斡尔族区\",\n  230221: \"龙江县\",\n  230223: \"依安县\",\n  230224: \"泰来县\",\n  230225: \"甘南县\",\n  230227: \"富裕县\",\n  230229: \"克山县\",\n  230230: \"克东县\",\n  230231: \"拜泉县\",\n  230281: \"讷河市\",\n  230300: \"鸡西市\",\n  230301: \"市辖区\",\n  230302: \"鸡冠区\",\n  230303: \"恒山区\",\n  230304: \"滴道区\",\n  230305: \"梨树区\",\n  230306: \"城子河区\",\n  230307: \"麻山区\",\n  230321: \"鸡东县\",\n  230381: \"虎林市\",\n  230382: \"密山市\",\n  230400: \"鹤岗市\",\n  230401: \"市辖区\",\n  230402: \"向阳区\",\n  230403: \"工农区\",\n  230404: \"南山区\",\n  230405: \"兴安区\",\n  230406: \"东山区\",\n  230407: \"兴山区\",\n  230421: \"萝北县\",\n  230422: \"绥滨县\",\n  230500: \"双鸭山市\",\n  230501: \"市辖区\",\n  230502: \"尖山区\",\n  230503: \"岭东区\",\n  230505: \"四方台区\",\n  230506: \"宝山区\",\n  230521: \"集贤县\",\n  230522: \"友谊县\",\n  230523: \"宝清县\",\n  230524: \"饶河县\",\n  230600: \"大庆市\",\n  230601: \"市辖区\",\n  230602: \"萨尔图区\",\n  230603: \"龙凤区\",\n  230604: \"让胡路区\",\n  230605: \"红岗区\",\n  230606: \"大同区\",\n  230621: \"肇州县\",\n  230622: \"肇源县\",\n  230623: \"林甸县\",\n  230624: \"杜尔伯特蒙古族自治县\",\n  230700: \"伊春市\",\n  230701: \"市辖区\",\n  230702: \"伊春区\",\n  230703: \"南岔区\",\n  230704: \"友好区\",\n  230705: \"西林区\",\n  230706: \"翠峦区\",\n  230707: \"新青区\",\n  230708: \"美溪区\",\n  230709: \"金山屯区\",\n  230710: \"五营区\",\n  230711: \"乌马河区\",\n  230712: \"汤旺河区\",\n  230713: \"带岭区\",\n  230714: \"乌伊岭区\",\n  230715: \"红星区\",\n  230716: \"上甘岭区\",\n  230722: \"嘉荫县\",\n  230781: \"铁力市\",\n  230800: \"佳木斯市\",\n  230801: \"市辖区\",\n  230803: \"向阳区\",\n  230804: \"前进区\",\n  230805: \"东风区\",\n  230811: \"郊区\",\n  230822: \"桦南县\",\n  230826: \"桦川县\",\n  230828: \"汤原县\",\n  230881: \"同江市\",\n  230882: \"富锦市\",\n  230883: \"抚远市\",\n  230900: \"七台河市\",\n  230901: \"市辖区\",\n  230902: \"新兴区\",\n  230903: \"桃山区\",\n  230904: \"茄子河区\",\n  230921: \"勃利县\",\n  231e3: \"牡丹江市\",\n  231001: \"市辖区\",\n  231002: \"东安区\",\n  231003: \"阳明区\",\n  231004: \"爱民区\",\n  231005: \"西安区\",\n  231025: \"林口县\",\n  231081: \"绥芬河市\",\n  231083: \"海林市\",\n  231084: \"宁安市\",\n  231085: \"穆棱市\",\n  231086: \"东宁市\",\n  231100: \"黑河市\",\n  231101: \"市辖区\",\n  231102: \"爱辉区\",\n  231121: \"嫩江县\",\n  231123: \"逊克县\",\n  231124: \"孙吴县\",\n  231181: \"北安市\",\n  231182: \"五大连池市\",\n  231200: \"绥化市\",\n  231201: \"市辖区\",\n  231202: \"北林区\",\n  231221: \"望奎县\",\n  231222: \"兰西县\",\n  231223: \"青冈县\",\n  231224: \"庆安县\",\n  231225: \"明水县\",\n  231226: \"绥棱县\",\n  231281: \"安达市\",\n  231282: \"肇东市\",\n  231283: \"海伦市\",\n  232700: \"大兴安岭地区\",\n  232721: \"呼玛县\",\n  232722: \"塔河县\",\n  232723: \"漠河县\",\n  31e4: \"上海市\",\n  310100: \"市辖区\",\n  310101: \"黄浦区\",\n  310104: \"徐汇区\",\n  310105: \"长宁区\",\n  310106: \"静安区\",\n  310107: \"普陀区\",\n  310109: \"虹口区\",\n  310110: \"杨浦区\",\n  310112: \"闵行区\",\n  310113: \"宝山区\",\n  310114: \"嘉定区\",\n  310115: \"浦东新区\",\n  310116: \"金山区\",\n  310117: \"松江区\",\n  310118: \"青浦区\",\n  310120: \"奉贤区\",\n  310151: \"崇明区\",\n  32e4: \"江苏省\",\n  320100: \"南京市\",\n  320101: \"市辖区\",\n  320102: \"玄武区\",\n  320104: \"秦淮区\",\n  320105: \"建邺区\",\n  320106: \"鼓楼区\",\n  320111: \"浦口区\",\n  320113: \"栖霞区\",\n  320114: \"雨花台区\",\n  320115: \"江宁区\",\n  320116: \"六合区\",\n  320117: \"溧水区\",\n  320118: \"高淳区\",\n  320200: \"无锡市\",\n  320201: \"市辖区\",\n  320205: \"锡山区\",\n  320206: \"惠山区\",\n  320211: \"滨湖区\",\n  320213: \"梁溪区\",\n  320214: \"新吴区\",\n  320281: \"江阴市\",\n  320282: \"宜兴市\",\n  320300: \"徐州市\",\n  320301: \"市辖区\",\n  320302: \"鼓楼区\",\n  320303: \"云龙区\",\n  320305: \"贾汪区\",\n  320311: \"泉山区\",\n  320312: \"铜山区\",\n  320321: \"丰县\",\n  320322: \"沛县\",\n  320324: \"睢宁县\",\n  320381: \"新沂市\",\n  320382: \"邳州市\",\n  320400: \"常州市\",\n  320401: \"市辖区\",\n  320402: \"天宁区\",\n  320404: \"钟楼区\",\n  320411: \"新北区\",\n  320412: \"武进区\",\n  320413: \"金坛区\",\n  320481: \"溧阳市\",\n  320500: \"苏州市\",\n  320501: \"市辖区\",\n  320505: \"虎丘区\",\n  320506: \"吴中区\",\n  320507: \"相城区\",\n  320508: \"姑苏区\",\n  320509: \"吴江区\",\n  320581: \"常熟市\",\n  320582: \"张家港市\",\n  320583: \"昆山市\",\n  320585: \"太仓市\",\n  320594: \"苏州工业园区\",\n  320600: \"南通市\",\n  320601: \"市辖区\",\n  320602: \"崇川区\",\n  320611: \"港闸区\",\n  320612: \"通州区\",\n  320621: \"海安县\",\n  320623: \"如东县\",\n  320681: \"启东市\",\n  320682: \"如皋市\",\n  320684: \"海门市\",\n  320700: \"连云港市\",\n  320701: \"市辖区\",\n  320703: \"连云区\",\n  320706: \"海州区\",\n  320707: \"赣榆区\",\n  320722: \"东海县\",\n  320723: \"灌云县\",\n  320724: \"灌南县\",\n  320800: \"淮安市\",\n  320801: \"市辖区\",\n  320803: \"淮安区\",\n  320804: \"淮阴区\",\n  320812: \"清江浦区\",\n  320813: \"洪泽区\",\n  320826: \"涟水县\",\n  320830: \"盱眙县\",\n  320831: \"金湖县\",\n  320900: \"盐城市\",\n  320901: \"市辖区\",\n  320902: \"亭湖区\",\n  320903: \"盐都区\",\n  320904: \"大丰区\",\n  320921: \"响水县\",\n  320922: \"滨海县\",\n  320923: \"阜宁县\",\n  320924: \"射阳县\",\n  320925: \"建湖县\",\n  320981: \"东台市\",\n  321e3: \"扬州市\",\n  321001: \"市辖区\",\n  321002: \"广陵区\",\n  321003: \"邗江区\",\n  321012: \"江都区\",\n  321023: \"宝应县\",\n  321081: \"仪征市\",\n  321084: \"高邮市\",\n  321100: \"镇江市\",\n  321101: \"市辖区\",\n  321102: \"京口区\",\n  321111: \"润州区\",\n  321112: \"丹徒区\",\n  321181: \"丹阳市\",\n  321182: \"扬中市\",\n  321183: \"句容市\",\n  321200: \"泰州市\",\n  321201: \"市辖区\",\n  321202: \"海陵区\",\n  321203: \"高港区\",\n  321204: \"姜堰区\",\n  321281: \"兴化市\",\n  321282: \"靖江市\",\n  321283: \"泰兴市\",\n  321300: \"宿迁市\",\n  321301: \"市辖区\",\n  321302: \"宿城区\",\n  321311: \"宿豫区\",\n  321322: \"沭阳县\",\n  321323: \"泗阳县\",\n  321324: \"泗洪县\",\n  33e4: \"浙江省\",\n  330100: \"杭州市\",\n  330101: \"市辖区\",\n  330102: \"上城区\",\n  330103: \"下城区\",\n  330104: \"江干区\",\n  330105: \"拱墅区\",\n  330106: \"西湖区\",\n  330108: \"滨江区\",\n  330109: \"萧山区\",\n  330110: \"余杭区\",\n  330111: \"富阳区\",\n  330122: \"桐庐县\",\n  330127: \"淳安县\",\n  330182: \"建德市\",\n  330185: \"临安市\",\n  330200: \"宁波市\",\n  330201: \"市辖区\",\n  330203: \"海曙区\",\n  330204: \"江东区\",\n  330205: \"江北区\",\n  330206: \"北仑区\",\n  330211: \"镇海区\",\n  330212: \"鄞州区\",\n  330225: \"象山县\",\n  330226: \"宁海县\",\n  330281: \"余姚市\",\n  330282: \"慈溪市\",\n  330283: \"奉化市\",\n  330300: \"温州市\",\n  330301: \"市辖区\",\n  330302: \"鹿城区\",\n  330303: \"龙湾区\",\n  330304: \"瓯海区\",\n  330305: \"洞头区\",\n  330324: \"永嘉县\",\n  330326: \"平阳县\",\n  330327: \"苍南县\",\n  330328: \"文成县\",\n  330329: \"泰顺县\",\n  330381: \"瑞安市\",\n  330382: \"乐清市\",\n  330400: \"嘉兴市\",\n  330401: \"市辖区\",\n  330402: \"南湖区\",\n  330411: \"秀洲区\",\n  330421: \"嘉善县\",\n  330424: \"海盐县\",\n  330481: \"海宁市\",\n  330482: \"平湖市\",\n  330483: \"桐乡市\",\n  330500: \"湖州市\",\n  330501: \"市辖区\",\n  330502: \"吴兴区\",\n  330503: \"南浔区\",\n  330521: \"德清县\",\n  330522: \"长兴县\",\n  330523: \"安吉县\",\n  330600: \"绍兴市\",\n  330601: \"市辖区\",\n  330602: \"越城区\",\n  330603: \"柯桥区\",\n  330604: \"上虞区\",\n  330624: \"新昌县\",\n  330681: \"诸暨市\",\n  330683: \"嵊州市\",\n  330700: \"金华市\",\n  330701: \"市辖区\",\n  330702: \"婺城区\",\n  330703: \"金东区\",\n  330723: \"武义县\",\n  330726: \"浦江县\",\n  330727: \"磐安县\",\n  330781: \"兰溪市\",\n  330782: \"义乌市\",\n  330783: \"东阳市\",\n  330784: \"永康市\",\n  330800: \"衢州市\",\n  330801: \"市辖区\",\n  330802: \"柯城区\",\n  330803: \"衢江区\",\n  330822: \"常山县\",\n  330824: \"开化县\",\n  330825: \"龙游县\",\n  330881: \"江山市\",\n  330900: \"舟山市\",\n  330901: \"市辖区\",\n  330902: \"定海区\",\n  330903: \"普陀区\",\n  330921: \"岱山县\",\n  330922: \"嵊泗县\",\n  331e3: \"台州市\",\n  331001: \"市辖区\",\n  331002: \"椒江区\",\n  331003: \"黄岩区\",\n  331004: \"路桥区\",\n  331021: \"玉环县\",\n  331022: \"三门县\",\n  331023: \"天台县\",\n  331024: \"仙居县\",\n  331081: \"温岭市\",\n  331082: \"临海市\",\n  331100: \"丽水市\",\n  331101: \"市辖区\",\n  331102: \"莲都区\",\n  331121: \"青田县\",\n  331122: \"缙云县\",\n  331123: \"遂昌县\",\n  331124: \"松阳县\",\n  331125: \"云和县\",\n  331126: \"庆元县\",\n  331127: \"景宁畲族自治县\",\n  331181: \"龙泉市\",\n  34e4: \"安徽省\",\n  340100: \"合肥市\",\n  340101: \"市辖区\",\n  340102: \"瑶海区\",\n  340103: \"庐阳区\",\n  340104: \"蜀山区\",\n  340111: \"包河区\",\n  340121: \"长丰县\",\n  340122: \"肥东县\",\n  340123: \"肥西县\",\n  340124: \"庐江县\",\n  340181: \"巢湖市\",\n  340200: \"芜湖市\",\n  340201: \"市辖区\",\n  340202: \"镜湖区\",\n  340203: \"弋江区\",\n  340207: \"鸠江区\",\n  340208: \"三山区\",\n  340221: \"芜湖县\",\n  340222: \"繁昌县\",\n  340223: \"南陵县\",\n  340225: \"无为县\",\n  340300: \"蚌埠市\",\n  340301: \"市辖区\",\n  340302: \"龙子湖区\",\n  340303: \"蚌山区\",\n  340304: \"禹会区\",\n  340311: \"淮上区\",\n  340321: \"怀远县\",\n  340322: \"五河县\",\n  340323: \"固镇县\",\n  340400: \"淮南市\",\n  340401: \"市辖区\",\n  340402: \"大通区\",\n  340403: \"田家庵区\",\n  340404: \"谢家集区\",\n  340405: \"八公山区\",\n  340406: \"潘集区\",\n  340421: \"凤台县\",\n  340422: \"寿县\",\n  340500: \"马鞍山市\",\n  340501: \"市辖区\",\n  340503: \"花山区\",\n  340504: \"雨山区\",\n  340506: \"博望区\",\n  340521: \"当涂县\",\n  340522: \"含山县\",\n  340523: \"和县\",\n  340600: \"淮北市\",\n  340601: \"市辖区\",\n  340602: \"杜集区\",\n  340603: \"相山区\",\n  340604: \"烈山区\",\n  340621: \"濉溪县\",\n  340700: \"铜陵市\",\n  340701: \"市辖区\",\n  340705: \"铜官区\",\n  340706: \"义安区\",\n  340711: \"郊区\",\n  340722: \"枞阳县\",\n  340800: \"安庆市\",\n  340801: \"市辖区\",\n  340802: \"迎江区\",\n  340803: \"大观区\",\n  340811: \"宜秀区\",\n  340822: \"怀宁县\",\n  340824: \"潜山县\",\n  340825: \"太湖县\",\n  340826: \"宿松县\",\n  340827: \"望江县\",\n  340828: \"岳西县\",\n  340881: \"桐城市\",\n  341e3: \"黄山市\",\n  341001: \"市辖区\",\n  341002: \"屯溪区\",\n  341003: \"黄山区\",\n  341004: \"徽州区\",\n  341021: \"歙县\",\n  341022: \"休宁县\",\n  341023: \"黟县\",\n  341024: \"祁门县\",\n  341100: \"滁州市\",\n  341101: \"市辖区\",\n  341102: \"琅琊区\",\n  341103: \"南谯区\",\n  341122: \"来安县\",\n  341124: \"全椒县\",\n  341125: \"定远县\",\n  341126: \"凤阳县\",\n  341181: \"天长市\",\n  341182: \"明光市\",\n  341200: \"阜阳市\",\n  341201: \"市辖区\",\n  341202: \"颍州区\",\n  341203: \"颍东区\",\n  341204: \"颍泉区\",\n  341221: \"临泉县\",\n  341222: \"太和县\",\n  341225: \"阜南县\",\n  341226: \"颍上县\",\n  341282: \"界首市\",\n  341300: \"宿州市\",\n  341301: \"市辖区\",\n  341302: \"埇桥区\",\n  341321: \"砀山县\",\n  341322: \"萧县\",\n  341323: \"灵璧县\",\n  341324: \"泗县\",\n  341500: \"六安市\",\n  341501: \"市辖区\",\n  341502: \"金安区\",\n  341503: \"裕安区\",\n  341504: \"叶集区\",\n  341522: \"霍邱县\",\n  341523: \"舒城县\",\n  341524: \"金寨县\",\n  341525: \"霍山县\",\n  341600: \"亳州市\",\n  341601: \"市辖区\",\n  341602: \"谯城区\",\n  341621: \"涡阳县\",\n  341622: \"蒙城县\",\n  341623: \"利辛县\",\n  341700: \"池州市\",\n  341701: \"市辖区\",\n  341702: \"贵池区\",\n  341721: \"东至县\",\n  341722: \"石台县\",\n  341723: \"青阳县\",\n  341800: \"宣城市\",\n  341801: \"市辖区\",\n  341802: \"宣州区\",\n  341821: \"郎溪县\",\n  341822: \"广德县\",\n  341823: \"泾县\",\n  341824: \"绩溪县\",\n  341825: \"旌德县\",\n  341881: \"宁国市\",\n  35e4: \"福建省\",\n  350100: \"福州市\",\n  350101: \"市辖区\",\n  350102: \"鼓楼区\",\n  350103: \"台江区\",\n  350104: \"仓山区\",\n  350105: \"马尾区\",\n  350111: \"晋安区\",\n  350121: \"闽侯县\",\n  350122: \"连江县\",\n  350123: \"罗源县\",\n  350124: \"闽清县\",\n  350125: \"永泰县\",\n  350128: \"平潭县\",\n  350181: \"福清市\",\n  350182: \"长乐市\",\n  350200: \"厦门市\",\n  350201: \"市辖区\",\n  350203: \"思明区\",\n  350205: \"海沧区\",\n  350206: \"湖里区\",\n  350211: \"集美区\",\n  350212: \"同安区\",\n  350213: \"翔安区\",\n  350300: \"莆田市\",\n  350301: \"市辖区\",\n  350302: \"城厢区\",\n  350303: \"涵江区\",\n  350304: \"荔城区\",\n  350305: \"秀屿区\",\n  350322: \"仙游县\",\n  350400: \"三明市\",\n  350401: \"市辖区\",\n  350402: \"梅列区\",\n  350403: \"三元区\",\n  350421: \"明溪县\",\n  350423: \"清流县\",\n  350424: \"宁化县\",\n  350425: \"大田县\",\n  350426: \"尤溪县\",\n  350427: \"沙县\",\n  350428: \"将乐县\",\n  350429: \"泰宁县\",\n  350430: \"建宁县\",\n  350481: \"永安市\",\n  350500: \"泉州市\",\n  350501: \"市辖区\",\n  350502: \"鲤城区\",\n  350503: \"丰泽区\",\n  350504: \"洛江区\",\n  350505: \"泉港区\",\n  350521: \"惠安县\",\n  350524: \"安溪县\",\n  350525: \"永春县\",\n  350526: \"德化县\",\n  350527: \"金门县\",\n  350581: \"石狮市\",\n  350582: \"晋江市\",\n  350583: \"南安市\",\n  350600: \"漳州市\",\n  350601: \"市辖区\",\n  350602: \"芗城区\",\n  350603: \"龙文区\",\n  350622: \"云霄县\",\n  350623: \"漳浦县\",\n  350624: \"诏安县\",\n  350625: \"长泰县\",\n  350626: \"东山县\",\n  350627: \"南靖县\",\n  350628: \"平和县\",\n  350629: \"华安县\",\n  350681: \"龙海市\",\n  350700: \"南平市\",\n  350701: \"市辖区\",\n  350702: \"延平区\",\n  350703: \"建阳区\",\n  350721: \"顺昌县\",\n  350722: \"浦城县\",\n  350723: \"光泽县\",\n  350724: \"松溪县\",\n  350725: \"政和县\",\n  350781: \"邵武市\",\n  350782: \"武夷山市\",\n  350783: \"建瓯市\",\n  350800: \"龙岩市\",\n  350801: \"市辖区\",\n  350802: \"新罗区\",\n  350803: \"永定区\",\n  350821: \"长汀县\",\n  350823: \"上杭县\",\n  350824: \"武平县\",\n  350825: \"连城县\",\n  350881: \"漳平市\",\n  350900: \"宁德市\",\n  350901: \"市辖区\",\n  350902: \"蕉城区\",\n  350921: \"霞浦县\",\n  350922: \"古田县\",\n  350923: \"屏南县\",\n  350924: \"寿宁县\",\n  350925: \"周宁县\",\n  350926: \"柘荣县\",\n  350981: \"福安市\",\n  350982: \"福鼎市\",\n  36e4: \"江西省\",\n  360100: \"南昌市\",\n  360101: \"市辖区\",\n  360102: \"东湖区\",\n  360103: \"西湖区\",\n  360104: \"青云谱区\",\n  360105: \"湾里区\",\n  360111: \"青山湖区\",\n  360112: \"新建区\",\n  360121: \"南昌县\",\n  360123: \"安义县\",\n  360124: \"进贤县\",\n  360200: \"景德镇市\",\n  360201: \"市辖区\",\n  360202: \"昌江区\",\n  360203: \"珠山区\",\n  360222: \"浮梁县\",\n  360281: \"乐平市\",\n  360300: \"萍乡市\",\n  360301: \"市辖区\",\n  360302: \"安源区\",\n  360313: \"湘东区\",\n  360321: \"莲花县\",\n  360322: \"上栗县\",\n  360323: \"芦溪县\",\n  360400: \"九江市\",\n  360401: \"市辖区\",\n  360402: \"濂溪区\",\n  360403: \"浔阳区\",\n  360421: \"九江县\",\n  360423: \"武宁县\",\n  360424: \"修水县\",\n  360425: \"永修县\",\n  360426: \"德安县\",\n  360428: \"都昌县\",\n  360429: \"湖口县\",\n  360430: \"彭泽县\",\n  360481: \"瑞昌市\",\n  360482: \"共青城市\",\n  360483: \"庐山市\",\n  360500: \"新余市\",\n  360501: \"市辖区\",\n  360502: \"渝水区\",\n  360521: \"分宜县\",\n  360600: \"鹰潭市\",\n  360601: \"市辖区\",\n  360602: \"月湖区\",\n  360622: \"余江县\",\n  360681: \"贵溪市\",\n  360700: \"赣州市\",\n  360701: \"市辖区\",\n  360702: \"章贡区\",\n  360703: \"南康区\",\n  360721: \"赣县\",\n  360722: \"信丰县\",\n  360723: \"大余县\",\n  360724: \"上犹县\",\n  360725: \"崇义县\",\n  360726: \"安远县\",\n  360727: \"龙南县\",\n  360728: \"定南县\",\n  360729: \"全南县\",\n  360730: \"宁都县\",\n  360731: \"于都县\",\n  360732: \"兴国县\",\n  360733: \"会昌县\",\n  360734: \"寻乌县\",\n  360735: \"石城县\",\n  360781: \"瑞金市\",\n  360800: \"吉安市\",\n  360801: \"市辖区\",\n  360802: \"吉州区\",\n  360803: \"青原区\",\n  360821: \"吉安县\",\n  360822: \"吉水县\",\n  360823: \"峡江县\",\n  360824: \"新干县\",\n  360825: \"永丰县\",\n  360826: \"泰和县\",\n  360827: \"遂川县\",\n  360828: \"万安县\",\n  360829: \"安福县\",\n  360830: \"永新县\",\n  360881: \"井冈山市\",\n  360900: \"宜春市\",\n  360901: \"市辖区\",\n  360902: \"袁州区\",\n  360921: \"奉新县\",\n  360922: \"万载县\",\n  360923: \"上高县\",\n  360924: \"宜丰县\",\n  360925: \"靖安县\",\n  360926: \"铜鼓县\",\n  360981: \"丰城市\",\n  360982: \"樟树市\",\n  360983: \"高安市\",\n  361e3: \"抚州市\",\n  361001: \"市辖区\",\n  361002: \"临川区\",\n  361021: \"南城县\",\n  361022: \"黎川县\",\n  361023: \"南丰县\",\n  361024: \"崇仁县\",\n  361025: \"乐安县\",\n  361026: \"宜黄县\",\n  361027: \"金溪县\",\n  361028: \"资溪县\",\n  361029: \"东乡县\",\n  361030: \"广昌县\",\n  361100: \"上饶市\",\n  361101: \"市辖区\",\n  361102: \"信州区\",\n  361103: \"广丰区\",\n  361121: \"上饶县\",\n  361123: \"玉山县\",\n  361124: \"铅山县\",\n  361125: \"横峰县\",\n  361126: \"弋阳县\",\n  361127: \"余干县\",\n  361128: \"鄱阳县\",\n  361129: \"万年县\",\n  361130: \"婺源县\",\n  361181: \"德兴市\",\n  37e4: \"山东省\",\n  370100: \"济南市\",\n  370101: \"市辖区\",\n  370102: \"历下区\",\n  370103: \"市中区\",\n  370104: \"槐荫区\",\n  370105: \"天桥区\",\n  370112: \"历城区\",\n  370113: \"长清区\",\n  370124: \"平阴县\",\n  370125: \"济阳县\",\n  370126: \"商河县\",\n  370181: \"章丘市\",\n  370200: \"青岛市\",\n  370201: \"市辖区\",\n  370202: \"市南区\",\n  370203: \"市北区\",\n  370211: \"黄岛区\",\n  370212: \"崂山区\",\n  370213: \"李沧区\",\n  370214: \"城阳区\",\n  370281: \"胶州市\",\n  370282: \"即墨市\",\n  370283: \"平度市\",\n  370285: \"莱西市\",\n  370300: \"淄博市\",\n  370301: \"市辖区\",\n  370302: \"淄川区\",\n  370303: \"张店区\",\n  370304: \"博山区\",\n  370305: \"临淄区\",\n  370306: \"周村区\",\n  370321: \"桓台县\",\n  370322: \"高青县\",\n  370323: \"沂源县\",\n  370400: \"枣庄市\",\n  370401: \"市辖区\",\n  370402: \"市中区\",\n  370403: \"薛城区\",\n  370404: \"峄城区\",\n  370405: \"台儿庄区\",\n  370406: \"山亭区\",\n  370481: \"滕州市\",\n  370500: \"东营市\",\n  370501: \"市辖区\",\n  370502: \"东营区\",\n  370503: \"河口区\",\n  370505: \"垦利区\",\n  370522: \"利津县\",\n  370523: \"广饶县\",\n  370600: \"烟台市\",\n  370601: \"市辖区\",\n  370602: \"芝罘区\",\n  370611: \"福山区\",\n  370612: \"牟平区\",\n  370613: \"莱山区\",\n  370634: \"长岛县\",\n  370681: \"龙口市\",\n  370682: \"莱阳市\",\n  370683: \"莱州市\",\n  370684: \"蓬莱市\",\n  370685: \"招远市\",\n  370686: \"栖霞市\",\n  370687: \"海阳市\",\n  370700: \"潍坊市\",\n  370701: \"市辖区\",\n  370702: \"潍城区\",\n  370703: \"寒亭区\",\n  370704: \"坊子区\",\n  370705: \"奎文区\",\n  370724: \"临朐县\",\n  370725: \"昌乐县\",\n  370781: \"青州市\",\n  370782: \"诸城市\",\n  370783: \"寿光市\",\n  370784: \"安丘市\",\n  370785: \"高密市\",\n  370786: \"昌邑市\",\n  370800: \"济宁市\",\n  370801: \"市辖区\",\n  370811: \"任城区\",\n  370812: \"兖州区\",\n  370826: \"微山县\",\n  370827: \"鱼台县\",\n  370828: \"金乡县\",\n  370829: \"嘉祥县\",\n  370830: \"汶上县\",\n  370831: \"泗水县\",\n  370832: \"梁山县\",\n  370881: \"曲阜市\",\n  370883: \"邹城市\",\n  370900: \"泰安市\",\n  370901: \"市辖区\",\n  370902: \"泰山区\",\n  370911: \"岱岳区\",\n  370921: \"宁阳县\",\n  370923: \"东平县\",\n  370982: \"新泰市\",\n  370983: \"肥城市\",\n  371e3: \"威海市\",\n  371001: \"市辖区\",\n  371002: \"环翠区\",\n  371003: \"文登区\",\n  371082: \"荣成市\",\n  371083: \"乳山市\",\n  371100: \"日照市\",\n  371101: \"市辖区\",\n  371102: \"东港区\",\n  371103: \"岚山区\",\n  371121: \"五莲县\",\n  371122: \"莒县\",\n  371200: \"莱芜市\",\n  371201: \"市辖区\",\n  371202: \"莱城区\",\n  371203: \"钢城区\",\n  371300: \"临沂市\",\n  371301: \"市辖区\",\n  371302: \"兰山区\",\n  371311: \"罗庄区\",\n  371312: \"河东区\",\n  371321: \"沂南县\",\n  371322: \"郯城县\",\n  371323: \"沂水县\",\n  371324: \"兰陵县\",\n  371325: \"费县\",\n  371326: \"平邑县\",\n  371327: \"莒南县\",\n  371328: \"蒙阴县\",\n  371329: \"临沭县\",\n  371400: \"德州市\",\n  371401: \"市辖区\",\n  371402: \"德城区\",\n  371403: \"陵城区\",\n  371422: \"宁津县\",\n  371423: \"庆云县\",\n  371424: \"临邑县\",\n  371425: \"齐河县\",\n  371426: \"平原县\",\n  371427: \"夏津县\",\n  371428: \"武城县\",\n  371481: \"乐陵市\",\n  371482: \"禹城市\",\n  371500: \"聊城市\",\n  371501: \"市辖区\",\n  371502: \"东昌府区\",\n  371521: \"阳谷县\",\n  371522: \"莘县\",\n  371523: \"茌平县\",\n  371524: \"东阿县\",\n  371525: \"冠县\",\n  371526: \"高唐县\",\n  371581: \"临清市\",\n  371600: \"滨州市\",\n  371601: \"市辖区\",\n  371602: \"滨城区\",\n  371603: \"沾化区\",\n  371621: \"惠民县\",\n  371622: \"阳信县\",\n  371623: \"无棣县\",\n  371625: \"博兴县\",\n  371626: \"邹平县\",\n  371700: \"菏泽市\",\n  371701: \"市辖区\",\n  371702: \"牡丹区\",\n  371703: \"定陶区\",\n  371721: \"曹县\",\n  371722: \"单县\",\n  371723: \"成武县\",\n  371724: \"巨野县\",\n  371725: \"郓城县\",\n  371726: \"鄄城县\",\n  371728: \"东明县\",\n  41e4: \"河南省\",\n  410100: \"郑州市\",\n  410101: \"市辖区\",\n  410102: \"中原区\",\n  410103: \"二七区\",\n  410104: \"管城回族区\",\n  410105: \"金水区\",\n  410106: \"上街区\",\n  410108: \"惠济区\",\n  410122: \"中牟县\",\n  410181: \"巩义市\",\n  410182: \"荥阳市\",\n  410183: \"新密市\",\n  410184: \"新郑市\",\n  410185: \"登封市\",\n  410200: \"开封市\",\n  410201: \"市辖区\",\n  410202: \"龙亭区\",\n  410203: \"顺河回族区\",\n  410204: \"鼓楼区\",\n  410205: \"禹王台区\",\n  410211: \"金明区\",\n  410212: \"祥符区\",\n  410221: \"杞县\",\n  410222: \"通许县\",\n  410223: \"尉氏县\",\n  410225: \"兰考县\",\n  410300: \"洛阳市\",\n  410301: \"市辖区\",\n  410302: \"老城区\",\n  410303: \"西工区\",\n  410304: \"瀍河回族区\",\n  410305: \"涧西区\",\n  410306: \"吉利区\",\n  410311: \"洛龙区\",\n  410322: \"孟津县\",\n  410323: \"新安县\",\n  410324: \"栾川县\",\n  410325: \"嵩县\",\n  410326: \"汝阳县\",\n  410327: \"宜阳县\",\n  410328: \"洛宁县\",\n  410329: \"伊川县\",\n  410381: \"偃师市\",\n  410400: \"平顶山市\",\n  410401: \"市辖区\",\n  410402: \"新华区\",\n  410403: \"卫东区\",\n  410404: \"石龙区\",\n  410411: \"湛河区\",\n  410421: \"宝丰县\",\n  410422: \"叶县\",\n  410423: \"鲁山县\",\n  410425: \"郏县\",\n  410481: \"舞钢市\",\n  410482: \"汝州市\",\n  410500: \"安阳市\",\n  410501: \"市辖区\",\n  410502: \"文峰区\",\n  410503: \"北关区\",\n  410505: \"殷都区\",\n  410506: \"龙安区\",\n  410522: \"安阳县\",\n  410523: \"汤阴县\",\n  410526: \"滑县\",\n  410527: \"内黄县\",\n  410581: \"林州市\",\n  410600: \"鹤壁市\",\n  410601: \"市辖区\",\n  410602: \"鹤山区\",\n  410603: \"山城区\",\n  410611: \"淇滨区\",\n  410621: \"浚县\",\n  410622: \"淇县\",\n  410700: \"新乡市\",\n  410701: \"市辖区\",\n  410702: \"红旗区\",\n  410703: \"卫滨区\",\n  410704: \"凤泉区\",\n  410711: \"牧野区\",\n  410721: \"新乡县\",\n  410724: \"获嘉县\",\n  410725: \"原阳县\",\n  410726: \"延津县\",\n  410727: \"封丘县\",\n  410728: \"长垣县\",\n  410781: \"卫辉市\",\n  410782: \"辉县市\",\n  410800: \"焦作市\",\n  410801: \"市辖区\",\n  410802: \"解放区\",\n  410803: \"中站区\",\n  410804: \"马村区\",\n  410811: \"山阳区\",\n  410821: \"修武县\",\n  410822: \"博爱县\",\n  410823: \"武陟县\",\n  410825: \"温县\",\n  410882: \"沁阳市\",\n  410883: \"孟州市\",\n  410900: \"濮阳市\",\n  410901: \"市辖区\",\n  410902: \"华龙区\",\n  410922: \"清丰县\",\n  410923: \"南乐县\",\n  410926: \"范县\",\n  410927: \"台前县\",\n  410928: \"濮阳县\",\n  411e3: \"许昌市\",\n  411001: \"市辖区\",\n  411002: \"魏都区\",\n  411023: \"许昌县\",\n  411024: \"鄢陵县\",\n  411025: \"襄城县\",\n  411081: \"禹州市\",\n  411082: \"长葛市\",\n  411100: \"漯河市\",\n  411101: \"市辖区\",\n  411102: \"源汇区\",\n  411103: \"郾城区\",\n  411104: \"召陵区\",\n  411121: \"舞阳县\",\n  411122: \"临颍县\",\n  411200: \"三门峡市\",\n  411201: \"市辖区\",\n  411202: \"湖滨区\",\n  411203: \"陕州区\",\n  411221: \"渑池县\",\n  411224: \"卢氏县\",\n  411281: \"义马市\",\n  411282: \"灵宝市\",\n  411300: \"南阳市\",\n  411301: \"市辖区\",\n  411302: \"宛城区\",\n  411303: \"卧龙区\",\n  411321: \"南召县\",\n  411322: \"方城县\",\n  411323: \"西峡县\",\n  411324: \"镇平县\",\n  411325: \"内乡县\",\n  411326: \"淅川县\",\n  411327: \"社旗县\",\n  411328: \"唐河县\",\n  411329: \"新野县\",\n  411330: \"桐柏县\",\n  411381: \"邓州市\",\n  411400: \"商丘市\",\n  411401: \"市辖区\",\n  411402: \"梁园区\",\n  411403: \"睢阳区\",\n  411421: \"民权县\",\n  411422: \"睢县\",\n  411423: \"宁陵县\",\n  411424: \"柘城县\",\n  411425: \"虞城县\",\n  411426: \"夏邑县\",\n  411481: \"永城市\",\n  411500: \"信阳市\",\n  411501: \"市辖区\",\n  411502: \"浉河区\",\n  411503: \"平桥区\",\n  411521: \"罗山县\",\n  411522: \"光山县\",\n  411523: \"新县\",\n  411524: \"商城县\",\n  411525: \"固始县\",\n  411526: \"潢川县\",\n  411527: \"淮滨县\",\n  411528: \"息县\",\n  411600: \"周口市\",\n  411601: \"市辖区\",\n  411602: \"川汇区\",\n  411621: \"扶沟县\",\n  411622: \"西华县\",\n  411623: \"商水县\",\n  411624: \"沈丘县\",\n  411625: \"郸城县\",\n  411626: \"淮阳县\",\n  411627: \"太康县\",\n  411628: \"鹿邑县\",\n  411681: \"项城市\",\n  411700: \"驻马店市\",\n  411701: \"市辖区\",\n  411702: \"驿城区\",\n  411721: \"西平县\",\n  411722: \"上蔡县\",\n  411723: \"平舆县\",\n  411724: \"正阳县\",\n  411725: \"确山县\",\n  411726: \"泌阳县\",\n  411727: \"汝南县\",\n  411728: \"遂平县\",\n  411729: \"新蔡县\",\n  419e3: \"省直辖县级行政区划\",\n  419001: \"济源市\",\n  42e4: \"湖北省\",\n  420100: \"武汉市\",\n  420101: \"市辖区\",\n  420102: \"江岸区\",\n  420103: \"江汉区\",\n  420104: \"硚口区\",\n  420105: \"汉阳区\",\n  420106: \"武昌区\",\n  420107: \"青山区\",\n  420111: \"洪山区\",\n  420112: \"东西湖区\",\n  420113: \"汉南区\",\n  420114: \"蔡甸区\",\n  420115: \"江夏区\",\n  420116: \"黄陂区\",\n  420117: \"新洲区\",\n  420200: \"黄石市\",\n  420201: \"市辖区\",\n  420202: \"黄石港区\",\n  420203: \"西塞山区\",\n  420204: \"下陆区\",\n  420205: \"铁山区\",\n  420222: \"阳新县\",\n  420281: \"大冶市\",\n  420300: \"十堰市\",\n  420301: \"市辖区\",\n  420302: \"茅箭区\",\n  420303: \"张湾区\",\n  420304: \"郧阳区\",\n  420322: \"郧西县\",\n  420323: \"竹山县\",\n  420324: \"竹溪县\",\n  420325: \"房县\",\n  420381: \"丹江口市\",\n  420500: \"宜昌市\",\n  420501: \"市辖区\",\n  420502: \"西陵区\",\n  420503: \"伍家岗区\",\n  420504: \"点军区\",\n  420505: \"猇亭区\",\n  420506: \"夷陵区\",\n  420525: \"远安县\",\n  420526: \"兴山县\",\n  420527: \"秭归县\",\n  420528: \"长阳土家族自治县\",\n  420529: \"五峰土家族自治县\",\n  420581: \"宜都市\",\n  420582: \"当阳市\",\n  420583: \"枝江市\",\n  420600: \"襄阳市\",\n  420601: \"市辖区\",\n  420602: \"襄城区\",\n  420606: \"樊城区\",\n  420607: \"襄州区\",\n  420624: \"南漳县\",\n  420625: \"谷城县\",\n  420626: \"保康县\",\n  420682: \"老河口市\",\n  420683: \"枣阳市\",\n  420684: \"宜城市\",\n  420700: \"鄂州市\",\n  420701: \"市辖区\",\n  420702: \"梁子湖区\",\n  420703: \"华容区\",\n  420704: \"鄂城区\",\n  420800: \"荆门市\",\n  420801: \"市辖区\",\n  420802: \"东宝区\",\n  420804: \"掇刀区\",\n  420821: \"京山县\",\n  420822: \"沙洋县\",\n  420881: \"钟祥市\",\n  420900: \"孝感市\",\n  420901: \"市辖区\",\n  420902: \"孝南区\",\n  420921: \"孝昌县\",\n  420922: \"大悟县\",\n  420923: \"云梦县\",\n  420981: \"应城市\",\n  420982: \"安陆市\",\n  420984: \"汉川市\",\n  421e3: \"荆州市\",\n  421001: \"市辖区\",\n  421002: \"沙市区\",\n  421003: \"荆州区\",\n  421022: \"公安县\",\n  421023: \"监利县\",\n  421024: \"江陵县\",\n  421081: \"石首市\",\n  421083: \"洪湖市\",\n  421087: \"松滋市\",\n  421100: \"黄冈市\",\n  421101: \"市辖区\",\n  421102: \"黄州区\",\n  421121: \"团风县\",\n  421122: \"红安县\",\n  421123: \"罗田县\",\n  421124: \"英山县\",\n  421125: \"浠水县\",\n  421126: \"蕲春县\",\n  421127: \"黄梅县\",\n  421181: \"麻城市\",\n  421182: \"武穴市\",\n  421200: \"咸宁市\",\n  421201: \"市辖区\",\n  421202: \"咸安区\",\n  421221: \"嘉鱼县\",\n  421222: \"通城县\",\n  421223: \"崇阳县\",\n  421224: \"通山县\",\n  421281: \"赤壁市\",\n  421300: \"随州市\",\n  421301: \"市辖区\",\n  421303: \"曾都区\",\n  421321: \"随县\",\n  421381: \"广水市\",\n  422800: \"恩施土家族苗族自治州\",\n  422801: \"恩施市\",\n  422802: \"利川市\",\n  422822: \"建始县\",\n  422823: \"巴东县\",\n  422825: \"宣恩县\",\n  422826: \"咸丰县\",\n  422827: \"来凤县\",\n  422828: \"鹤峰县\",\n  429e3: \"省直辖县级行政区划\",\n  429004: \"仙桃市\",\n  429005: \"潜江市\",\n  429006: \"天门市\",\n  429021: \"神农架林区\",\n  43e4: \"湖南省\",\n  430100: \"长沙市\",\n  430101: \"市辖区\",\n  430102: \"芙蓉区\",\n  430103: \"天心区\",\n  430104: \"岳麓区\",\n  430105: \"开福区\",\n  430111: \"雨花区\",\n  430112: \"望城区\",\n  430121: \"长沙县\",\n  430124: \"宁乡县\",\n  430181: \"浏阳市\",\n  430200: \"株洲市\",\n  430201: \"市辖区\",\n  430202: \"荷塘区\",\n  430203: \"芦淞区\",\n  430204: \"石峰区\",\n  430211: \"天元区\",\n  430221: \"株洲县\",\n  430223: \"攸县\",\n  430224: \"茶陵县\",\n  430225: \"炎陵县\",\n  430281: \"醴陵市\",\n  430300: \"湘潭市\",\n  430301: \"市辖区\",\n  430302: \"雨湖区\",\n  430304: \"岳塘区\",\n  430321: \"湘潭县\",\n  430381: \"湘乡市\",\n  430382: \"韶山市\",\n  430400: \"衡阳市\",\n  430401: \"市辖区\",\n  430405: \"珠晖区\",\n  430406: \"雁峰区\",\n  430407: \"石鼓区\",\n  430408: \"蒸湘区\",\n  430412: \"南岳区\",\n  430421: \"衡阳县\",\n  430422: \"衡南县\",\n  430423: \"衡山县\",\n  430424: \"衡东县\",\n  430426: \"祁东县\",\n  430481: \"耒阳市\",\n  430482: \"常宁市\",\n  430500: \"邵阳市\",\n  430501: \"市辖区\",\n  430502: \"双清区\",\n  430503: \"大祥区\",\n  430511: \"北塔区\",\n  430521: \"邵东县\",\n  430522: \"新邵县\",\n  430523: \"邵阳县\",\n  430524: \"隆回县\",\n  430525: \"洞口县\",\n  430527: \"绥宁县\",\n  430528: \"新宁县\",\n  430529: \"城步苗族自治县\",\n  430581: \"武冈市\",\n  430600: \"岳阳市\",\n  430601: \"市辖区\",\n  430602: \"岳阳楼区\",\n  430603: \"云溪区\",\n  430611: \"君山区\",\n  430621: \"岳阳县\",\n  430623: \"华容县\",\n  430624: \"湘阴县\",\n  430626: \"平江县\",\n  430681: \"汨罗市\",\n  430682: \"临湘市\",\n  430700: \"常德市\",\n  430701: \"市辖区\",\n  430702: \"武陵区\",\n  430703: \"鼎城区\",\n  430721: \"安乡县\",\n  430722: \"汉寿县\",\n  430723: \"澧县\",\n  430724: \"临澧县\",\n  430725: \"桃源县\",\n  430726: \"石门县\",\n  430781: \"津市市\",\n  430800: \"张家界市\",\n  430801: \"市辖区\",\n  430802: \"永定区\",\n  430811: \"武陵源区\",\n  430821: \"慈利县\",\n  430822: \"桑植县\",\n  430900: \"益阳市\",\n  430901: \"市辖区\",\n  430902: \"资阳区\",\n  430903: \"赫山区\",\n  430921: \"南县\",\n  430922: \"桃江县\",\n  430923: \"安化县\",\n  430981: \"沅江市\",\n  431e3: \"郴州市\",\n  431001: \"市辖区\",\n  431002: \"北湖区\",\n  431003: \"苏仙区\",\n  431021: \"桂阳县\",\n  431022: \"宜章县\",\n  431023: \"永兴县\",\n  431024: \"嘉禾县\",\n  431025: \"临武县\",\n  431026: \"汝城县\",\n  431027: \"桂东县\",\n  431028: \"安仁县\",\n  431081: \"资兴市\",\n  431100: \"永州市\",\n  431101: \"市辖区\",\n  431102: \"零陵区\",\n  431103: \"冷水滩区\",\n  431121: \"祁阳县\",\n  431122: \"东安县\",\n  431123: \"双牌县\",\n  431124: \"道县\",\n  431125: \"江永县\",\n  431126: \"宁远县\",\n  431127: \"蓝山县\",\n  431128: \"新田县\",\n  431129: \"江华瑶族自治县\",\n  431200: \"怀化市\",\n  431201: \"市辖区\",\n  431202: \"鹤城区\",\n  431221: \"中方县\",\n  431222: \"沅陵县\",\n  431223: \"辰溪县\",\n  431224: \"溆浦县\",\n  431225: \"会同县\",\n  431226: \"麻阳苗族自治县\",\n  431227: \"新晃侗族自治县\",\n  431228: \"芷江侗族自治县\",\n  431229: \"靖州苗族侗族自治县\",\n  431230: \"通道侗族自治县\",\n  431281: \"洪江市\",\n  431300: \"娄底市\",\n  431301: \"市辖区\",\n  431302: \"娄星区\",\n  431321: \"双峰县\",\n  431322: \"新化县\",\n  431381: \"冷水江市\",\n  431382: \"涟源市\",\n  433100: \"湘西土家族苗族自治州\",\n  433101: \"吉首市\",\n  433122: \"泸溪县\",\n  433123: \"凤凰县\",\n  433124: \"花垣县\",\n  433125: \"保靖县\",\n  433126: \"古丈县\",\n  433127: \"永顺县\",\n  433130: \"龙山县\",\n  44e4: \"广东省\",\n  440100: \"广州市\",\n  440101: \"市辖区\",\n  440103: \"荔湾区\",\n  440104: \"越秀区\",\n  440105: \"海珠区\",\n  440106: \"天河区\",\n  440111: \"白云区\",\n  440112: \"黄埔区\",\n  440113: \"番禺区\",\n  440114: \"花都区\",\n  440115: \"南沙区\",\n  440117: \"从化区\",\n  440118: \"增城区\",\n  440200: \"韶关市\",\n  440201: \"市辖区\",\n  440203: \"武江区\",\n  440204: \"浈江区\",\n  440205: \"曲江区\",\n  440222: \"始兴县\",\n  440224: \"仁化县\",\n  440229: \"翁源县\",\n  440232: \"乳源瑶族自治县\",\n  440233: \"新丰县\",\n  440281: \"乐昌市\",\n  440282: \"南雄市\",\n  440300: \"深圳市\",\n  440301: \"市辖区\",\n  440303: \"罗湖区\",\n  440304: \"福田区\",\n  440305: \"南山区\",\n  440306: \"宝安区\",\n  440307: \"龙岗区\",\n  440308: \"盐田区\",\n  440400: \"珠海市\",\n  440401: \"市辖区\",\n  440402: \"香洲区\",\n  440403: \"斗门区\",\n  440404: \"金湾区\",\n  440500: \"汕头市\",\n  440501: \"市辖区\",\n  440507: \"龙湖区\",\n  440511: \"金平区\",\n  440512: \"濠江区\",\n  440513: \"潮阳区\",\n  440514: \"潮南区\",\n  440515: \"澄海区\",\n  440523: \"南澳县\",\n  440600: \"佛山市\",\n  440601: \"市辖区\",\n  440604: \"禅城区\",\n  440605: \"南海区\",\n  440606: \"顺德区\",\n  440607: \"三水区\",\n  440608: \"高明区\",\n  440700: \"江门市\",\n  440701: \"市辖区\",\n  440703: \"蓬江区\",\n  440704: \"江海区\",\n  440705: \"新会区\",\n  440781: \"台山市\",\n  440783: \"开平市\",\n  440784: \"鹤山市\",\n  440785: \"恩平市\",\n  440800: \"湛江市\",\n  440801: \"市辖区\",\n  440802: \"赤坎区\",\n  440803: \"霞山区\",\n  440804: \"坡头区\",\n  440811: \"麻章区\",\n  440823: \"遂溪县\",\n  440825: \"徐闻县\",\n  440881: \"廉江市\",\n  440882: \"雷州市\",\n  440883: \"吴川市\",\n  440900: \"茂名市\",\n  440901: \"市辖区\",\n  440902: \"茂南区\",\n  440904: \"电白区\",\n  440981: \"高州市\",\n  440982: \"化州市\",\n  440983: \"信宜市\",\n  441200: \"肇庆市\",\n  441201: \"市辖区\",\n  441202: \"端州区\",\n  441203: \"鼎湖区\",\n  441204: \"高要区\",\n  441223: \"广宁县\",\n  441224: \"怀集县\",\n  441225: \"封开县\",\n  441226: \"德庆县\",\n  441284: \"四会市\",\n  441300: \"惠州市\",\n  441301: \"市辖区\",\n  441302: \"惠城区\",\n  441303: \"惠阳区\",\n  441322: \"博罗县\",\n  441323: \"惠东县\",\n  441324: \"龙门县\",\n  441400: \"梅州市\",\n  441401: \"市辖区\",\n  441402: \"梅江区\",\n  441403: \"梅县区\",\n  441422: \"大埔县\",\n  441423: \"丰顺县\",\n  441424: \"五华县\",\n  441426: \"平远县\",\n  441427: \"蕉岭县\",\n  441481: \"兴宁市\",\n  441500: \"汕尾市\",\n  441501: \"市辖区\",\n  441502: \"城区\",\n  441521: \"海丰县\",\n  441523: \"陆河县\",\n  441581: \"陆丰市\",\n  441600: \"河源市\",\n  441601: \"市辖区\",\n  441602: \"源城区\",\n  441621: \"紫金县\",\n  441622: \"龙川县\",\n  441623: \"连平县\",\n  441624: \"和平县\",\n  441625: \"东源县\",\n  441700: \"阳江市\",\n  441701: \"市辖区\",\n  441702: \"江城区\",\n  441704: \"阳东区\",\n  441721: \"阳西县\",\n  441781: \"阳春市\",\n  441800: \"清远市\",\n  441801: \"市辖区\",\n  441802: \"清城区\",\n  441803: \"清新区\",\n  441821: \"佛冈县\",\n  441823: \"阳山县\",\n  441825: \"连山壮族瑶族自治县\",\n  441826: \"连南瑶族自治县\",\n  441881: \"英德市\",\n  441882: \"连州市\",\n  441900: \"东莞市\",\n  442e3: \"中山市\",\n  445100: \"潮州市\",\n  445101: \"市辖区\",\n  445102: \"湘桥区\",\n  445103: \"潮安区\",\n  445122: \"饶平县\",\n  445200: \"揭阳市\",\n  445201: \"市辖区\",\n  445202: \"榕城区\",\n  445203: \"揭东区\",\n  445222: \"揭西县\",\n  445224: \"惠来县\",\n  445281: \"普宁市\",\n  445300: \"云浮市\",\n  445301: \"市辖区\",\n  445302: \"云城区\",\n  445303: \"云安区\",\n  445321: \"新兴县\",\n  445322: \"郁南县\",\n  445381: \"罗定市\",\n  45e4: \"广西壮族自治区\",\n  450100: \"南宁市\",\n  450101: \"市辖区\",\n  450102: \"兴宁区\",\n  450103: \"青秀区\",\n  450105: \"江南区\",\n  450107: \"西乡塘区\",\n  450108: \"良庆区\",\n  450109: \"邕宁区\",\n  450110: \"武鸣区\",\n  450123: \"隆安县\",\n  450124: \"马山县\",\n  450125: \"上林县\",\n  450126: \"宾阳县\",\n  450127: \"横县\",\n  450200: \"柳州市\",\n  450201: \"市辖区\",\n  450202: \"城中区\",\n  450203: \"鱼峰区\",\n  450204: \"柳南区\",\n  450205: \"柳北区\",\n  450206: \"柳江区\",\n  450222: \"柳城县\",\n  450223: \"鹿寨县\",\n  450224: \"融安县\",\n  450225: \"融水苗族自治县\",\n  450226: \"三江侗族自治县\",\n  450300: \"桂林市\",\n  450301: \"市辖区\",\n  450302: \"秀峰区\",\n  450303: \"叠彩区\",\n  450304: \"象山区\",\n  450305: \"七星区\",\n  450311: \"雁山区\",\n  450312: \"临桂区\",\n  450321: \"阳朔县\",\n  450323: \"灵川县\",\n  450324: \"全州县\",\n  450325: \"兴安县\",\n  450326: \"永福县\",\n  450327: \"灌阳县\",\n  450328: \"龙胜各族自治县\",\n  450329: \"资源县\",\n  450330: \"平乐县\",\n  450331: \"荔浦县\",\n  450332: \"恭城瑶族自治县\",\n  450400: \"梧州市\",\n  450401: \"市辖区\",\n  450403: \"万秀区\",\n  450405: \"长洲区\",\n  450406: \"龙圩区\",\n  450421: \"苍梧县\",\n  450422: \"藤县\",\n  450423: \"蒙山县\",\n  450481: \"岑溪市\",\n  450500: \"北海市\",\n  450501: \"市辖区\",\n  450502: \"海城区\",\n  450503: \"银海区\",\n  450512: \"铁山港区\",\n  450521: \"合浦县\",\n  450600: \"防城港市\",\n  450601: \"市辖区\",\n  450602: \"港口区\",\n  450603: \"防城区\",\n  450621: \"上思县\",\n  450681: \"东兴市\",\n  450700: \"钦州市\",\n  450701: \"市辖区\",\n  450702: \"钦南区\",\n  450703: \"钦北区\",\n  450721: \"灵山县\",\n  450722: \"浦北县\",\n  450800: \"贵港市\",\n  450801: \"市辖区\",\n  450802: \"港北区\",\n  450803: \"港南区\",\n  450804: \"覃塘区\",\n  450821: \"平南县\",\n  450881: \"桂平市\",\n  450900: \"玉林市\",\n  450901: \"市辖区\",\n  450902: \"玉州区\",\n  450903: \"福绵区\",\n  450921: \"容县\",\n  450922: \"陆川县\",\n  450923: \"博白县\",\n  450924: \"兴业县\",\n  450981: \"北流市\",\n  451e3: \"百色市\",\n  451001: \"市辖区\",\n  451002: \"右江区\",\n  451021: \"田阳县\",\n  451022: \"田东县\",\n  451023: \"平果县\",\n  451024: \"德保县\",\n  451026: \"那坡县\",\n  451027: \"凌云县\",\n  451028: \"乐业县\",\n  451029: \"田林县\",\n  451030: \"西林县\",\n  451031: \"隆林各族自治县\",\n  451081: \"靖西市\",\n  451100: \"贺州市\",\n  451101: \"市辖区\",\n  451102: \"八步区\",\n  451103: \"平桂区\",\n  451121: \"昭平县\",\n  451122: \"钟山县\",\n  451123: \"富川瑶族自治县\",\n  451200: \"河池市\",\n  451201: \"市辖区\",\n  451202: \"金城江区\",\n  451221: \"南丹县\",\n  451222: \"天峨县\",\n  451223: \"凤山县\",\n  451224: \"东兰县\",\n  451225: \"罗城仫佬族自治县\",\n  451226: \"环江毛南族自治县\",\n  451227: \"巴马瑶族自治县\",\n  451228: \"都安瑶族自治县\",\n  451229: \"大化瑶族自治县\",\n  451281: \"宜州市\",\n  451300: \"来宾市\",\n  451301: \"市辖区\",\n  451302: \"兴宾区\",\n  451321: \"忻城县\",\n  451322: \"象州县\",\n  451323: \"武宣县\",\n  451324: \"金秀瑶族自治县\",\n  451381: \"合山市\",\n  451400: \"崇左市\",\n  451401: \"市辖区\",\n  451402: \"江州区\",\n  451421: \"扶绥县\",\n  451422: \"宁明县\",\n  451423: \"龙州县\",\n  451424: \"大新县\",\n  451425: \"天等县\",\n  451481: \"凭祥市\",\n  46e4: \"海南省\",\n  460100: \"海口市\",\n  460101: \"市辖区\",\n  460105: \"秀英区\",\n  460106: \"龙华区\",\n  460107: \"琼山区\",\n  460108: \"美兰区\",\n  460200: \"三亚市\",\n  460201: \"市辖区\",\n  460202: \"海棠区\",\n  460203: \"吉阳区\",\n  460204: \"天涯区\",\n  460205: \"崖州区\",\n  460300: \"三沙市\",\n  460400: \"儋州市\",\n  469e3: \"省直辖县级行政区划\",\n  469001: \"五指山市\",\n  469002: \"琼海市\",\n  469005: \"文昌市\",\n  469006: \"万宁市\",\n  469007: \"东方市\",\n  469021: \"定安县\",\n  469022: \"屯昌县\",\n  469023: \"澄迈县\",\n  469024: \"临高县\",\n  469025: \"白沙黎族自治县\",\n  469026: \"昌江黎族自治县\",\n  469027: \"乐东黎族自治县\",\n  469028: \"陵水黎族自治县\",\n  469029: \"保亭黎族苗族自治县\",\n  469030: \"琼中黎族苗族自治县\",\n  5e5: \"重庆市\",\n  500100: \"市辖区\",\n  500101: \"万州区\",\n  500102: \"涪陵区\",\n  500103: \"渝中区\",\n  500104: \"大渡口区\",\n  500105: \"江北区\",\n  500106: \"沙坪坝区\",\n  500107: \"九龙坡区\",\n  500108: \"南岸区\",\n  500109: \"北碚区\",\n  500110: \"綦江区\",\n  500111: \"大足区\",\n  500112: \"渝北区\",\n  500113: \"巴南区\",\n  500114: \"黔江区\",\n  500115: \"长寿区\",\n  500116: \"江津区\",\n  500117: \"合川区\",\n  500118: \"永川区\",\n  500119: \"南川区\",\n  500120: \"璧山区\",\n  500151: \"铜梁区\",\n  500152: \"潼南区\",\n  500153: \"荣昌区\",\n  500154: \"开州区\",\n  500200: \"县\",\n  500228: \"梁平县\",\n  500229: \"城口县\",\n  500230: \"丰都县\",\n  500231: \"垫江县\",\n  500232: \"武隆县\",\n  500233: \"忠县\",\n  500235: \"云阳县\",\n  500236: \"奉节县\",\n  500237: \"巫山县\",\n  500238: \"巫溪县\",\n  500240: \"石柱土家族自治县\",\n  500241: \"秀山土家族苗族自治县\",\n  500242: \"酉阳土家族苗族自治县\",\n  500243: \"彭水苗族土家族自治县\",\n  51e4: \"四川省\",\n  510100: \"成都市\",\n  510101: \"市辖区\",\n  510104: \"锦江区\",\n  510105: \"青羊区\",\n  510106: \"金牛区\",\n  510107: \"武侯区\",\n  510108: \"成华区\",\n  510112: \"龙泉驿区\",\n  510113: \"青白江区\",\n  510114: \"新都区\",\n  510115: \"温江区\",\n  510116: \"双流区\",\n  510121: \"金堂县\",\n  510124: \"郫县\",\n  510129: \"大邑县\",\n  510131: \"蒲江县\",\n  510132: \"新津县\",\n  510181: \"都江堰市\",\n  510182: \"彭州市\",\n  510183: \"邛崃市\",\n  510184: \"崇州市\",\n  510185: \"简阳市\",\n  510300: \"自贡市\",\n  510301: \"市辖区\",\n  510302: \"自流井区\",\n  510303: \"贡井区\",\n  510304: \"大安区\",\n  510311: \"沿滩区\",\n  510321: \"荣县\",\n  510322: \"富顺县\",\n  510400: \"攀枝花市\",\n  510401: \"市辖区\",\n  510402: \"东区\",\n  510403: \"西区\",\n  510411: \"仁和区\",\n  510421: \"米易县\",\n  510422: \"盐边县\",\n  510500: \"泸州市\",\n  510501: \"市辖区\",\n  510502: \"江阳区\",\n  510503: \"纳溪区\",\n  510504: \"龙马潭区\",\n  510521: \"泸县\",\n  510522: \"合江县\",\n  510524: \"叙永县\",\n  510525: \"古蔺县\",\n  510600: \"德阳市\",\n  510601: \"市辖区\",\n  510603: \"旌阳区\",\n  510623: \"中江县\",\n  510626: \"罗江县\",\n  510681: \"广汉市\",\n  510682: \"什邡市\",\n  510683: \"绵竹市\",\n  510700: \"绵阳市\",\n  510701: \"市辖区\",\n  510703: \"涪城区\",\n  510704: \"游仙区\",\n  510705: \"安州区\",\n  510722: \"三台县\",\n  510723: \"盐亭县\",\n  510725: \"梓潼县\",\n  510726: \"北川羌族自治县\",\n  510727: \"平武县\",\n  510781: \"江油市\",\n  510800: \"广元市\",\n  510801: \"市辖区\",\n  510802: \"利州区\",\n  510811: \"昭化区\",\n  510812: \"朝天区\",\n  510821: \"旺苍县\",\n  510822: \"青川县\",\n  510823: \"剑阁县\",\n  510824: \"苍溪县\",\n  510900: \"遂宁市\",\n  510901: \"市辖区\",\n  510903: \"船山区\",\n  510904: \"安居区\",\n  510921: \"蓬溪县\",\n  510922: \"射洪县\",\n  510923: \"大英县\",\n  511e3: \"内江市\",\n  511001: \"市辖区\",\n  511002: \"市中区\",\n  511011: \"东兴区\",\n  511024: \"威远县\",\n  511025: \"资中县\",\n  511028: \"隆昌县\",\n  511100: \"乐山市\",\n  511101: \"市辖区\",\n  511102: \"市中区\",\n  511111: \"沙湾区\",\n  511112: \"五通桥区\",\n  511113: \"金口河区\",\n  511123: \"犍为县\",\n  511124: \"井研县\",\n  511126: \"夹江县\",\n  511129: \"沐川县\",\n  511132: \"峨边彝族自治县\",\n  511133: \"马边彝族自治县\",\n  511181: \"峨眉山市\",\n  511300: \"南充市\",\n  511301: \"市辖区\",\n  511302: \"顺庆区\",\n  511303: \"高坪区\",\n  511304: \"嘉陵区\",\n  511321: \"南部县\",\n  511322: \"营山县\",\n  511323: \"蓬安县\",\n  511324: \"仪陇县\",\n  511325: \"西充县\",\n  511381: \"阆中市\",\n  511400: \"眉山市\",\n  511401: \"市辖区\",\n  511402: \"东坡区\",\n  511403: \"彭山区\",\n  511421: \"仁寿县\",\n  511423: \"洪雅县\",\n  511424: \"丹棱县\",\n  511425: \"青神县\",\n  511500: \"宜宾市\",\n  511501: \"市辖区\",\n  511502: \"翠屏区\",\n  511503: \"南溪区\",\n  511521: \"宜宾县\",\n  511523: \"江安县\",\n  511524: \"长宁县\",\n  511525: \"高县\",\n  511526: \"珙县\",\n  511527: \"筠连县\",\n  511528: \"兴文县\",\n  511529: \"屏山县\",\n  511600: \"广安市\",\n  511601: \"市辖区\",\n  511602: \"广安区\",\n  511603: \"前锋区\",\n  511621: \"岳池县\",\n  511622: \"武胜县\",\n  511623: \"邻水县\",\n  511681: \"华蓥市\",\n  511700: \"达州市\",\n  511701: \"市辖区\",\n  511702: \"通川区\",\n  511703: \"达川区\",\n  511722: \"宣汉县\",\n  511723: \"开江县\",\n  511724: \"大竹县\",\n  511725: \"渠县\",\n  511781: \"万源市\",\n  511800: \"雅安市\",\n  511801: \"市辖区\",\n  511802: \"雨城区\",\n  511803: \"名山区\",\n  511822: \"荥经县\",\n  511823: \"汉源县\",\n  511824: \"石棉县\",\n  511825: \"天全县\",\n  511826: \"芦山县\",\n  511827: \"宝兴县\",\n  511900: \"巴中市\",\n  511901: \"市辖区\",\n  511902: \"巴州区\",\n  511903: \"恩阳区\",\n  511921: \"通江县\",\n  511922: \"南江县\",\n  511923: \"平昌县\",\n  512e3: \"资阳市\",\n  512001: \"市辖区\",\n  512002: \"雁江区\",\n  512021: \"安岳县\",\n  512022: \"乐至县\",\n  513200: \"阿坝藏族羌族自治州\",\n  513201: \"马尔康市\",\n  513221: \"汶川县\",\n  513222: \"理县\",\n  513223: \"茂县\",\n  513224: \"松潘县\",\n  513225: \"九寨沟县\",\n  513226: \"金川县\",\n  513227: \"小金县\",\n  513228: \"黑水县\",\n  513230: \"壤塘县\",\n  513231: \"阿坝县\",\n  513232: \"若尔盖县\",\n  513233: \"红原县\",\n  513300: \"甘孜藏族自治州\",\n  513301: \"康定市\",\n  513322: \"泸定县\",\n  513323: \"丹巴县\",\n  513324: \"九龙县\",\n  513325: \"雅江县\",\n  513326: \"道孚县\",\n  513327: \"炉霍县\",\n  513328: \"甘孜县\",\n  513329: \"新龙县\",\n  513330: \"德格县\",\n  513331: \"白玉县\",\n  513332: \"石渠县\",\n  513333: \"色达县\",\n  513334: \"理塘县\",\n  513335: \"巴塘县\",\n  513336: \"乡城县\",\n  513337: \"稻城县\",\n  513338: \"得荣县\",\n  513400: \"凉山彝族自治州\",\n  513401: \"西昌市\",\n  513422: \"木里藏族自治县\",\n  513423: \"盐源县\",\n  513424: \"德昌县\",\n  513425: \"会理县\",\n  513426: \"会东县\",\n  513427: \"宁南县\",\n  513428: \"普格县\",\n  513429: \"布拖县\",\n  513430: \"金阳县\",\n  513431: \"昭觉县\",\n  513432: \"喜德县\",\n  513433: \"冕宁县\",\n  513434: \"越西县\",\n  513435: \"甘洛县\",\n  513436: \"美姑县\",\n  513437: \"雷波县\",\n  52e4: \"贵州省\",\n  520100: \"贵阳市\",\n  520101: \"市辖区\",\n  520102: \"南明区\",\n  520103: \"云岩区\",\n  520111: \"花溪区\",\n  520112: \"乌当区\",\n  520113: \"白云区\",\n  520115: \"观山湖区\",\n  520121: \"开阳县\",\n  520122: \"息烽县\",\n  520123: \"修文县\",\n  520181: \"清镇市\",\n  520200: \"六盘水市\",\n  520201: \"钟山区\",\n  520203: \"六枝特区\",\n  520221: \"水城县\",\n  520222: \"盘县\",\n  520300: \"遵义市\",\n  520301: \"市辖区\",\n  520302: \"红花岗区\",\n  520303: \"汇川区\",\n  520304: \"播州区\",\n  520322: \"桐梓县\",\n  520323: \"绥阳县\",\n  520324: \"正安县\",\n  520325: \"道真仡佬族苗族自治县\",\n  520326: \"务川仡佬族苗族自治县\",\n  520327: \"凤冈县\",\n  520328: \"湄潭县\",\n  520329: \"余庆县\",\n  520330: \"习水县\",\n  520381: \"赤水市\",\n  520382: \"仁怀市\",\n  520400: \"安顺市\",\n  520401: \"市辖区\",\n  520402: \"西秀区\",\n  520403: \"平坝区\",\n  520422: \"普定县\",\n  520423: \"镇宁布依族苗族自治县\",\n  520424: \"关岭布依族苗族自治县\",\n  520425: \"紫云苗族布依族自治县\",\n  520500: \"毕节市\",\n  520501: \"市辖区\",\n  520502: \"七星关区\",\n  520521: \"大方县\",\n  520522: \"黔西县\",\n  520523: \"金沙县\",\n  520524: \"织金县\",\n  520525: \"纳雍县\",\n  520526: \"威宁彝族回族苗族自治县\",\n  520527: \"赫章县\",\n  520600: \"铜仁市\",\n  520601: \"市辖区\",\n  520602: \"碧江区\",\n  520603: \"万山区\",\n  520621: \"江口县\",\n  520622: \"玉屏侗族自治县\",\n  520623: \"石阡县\",\n  520624: \"思南县\",\n  520625: \"印江土家族苗族自治县\",\n  520626: \"德江县\",\n  520627: \"沿河土家族自治县\",\n  520628: \"松桃苗族自治县\",\n  522300: \"黔西南布依族苗族自治州\",\n  522301: \"兴义市\",\n  522322: \"兴仁县\",\n  522323: \"普安县\",\n  522324: \"晴隆县\",\n  522325: \"贞丰县\",\n  522326: \"望谟县\",\n  522327: \"册亨县\",\n  522328: \"安龙县\",\n  522600: \"黔东南苗族侗族自治州\",\n  522601: \"凯里市\",\n  522622: \"黄平县\",\n  522623: \"施秉县\",\n  522624: \"三穗县\",\n  522625: \"镇远县\",\n  522626: \"岑巩县\",\n  522627: \"天柱县\",\n  522628: \"锦屏县\",\n  522629: \"剑河县\",\n  522630: \"台江县\",\n  522631: \"黎平县\",\n  522632: \"榕江县\",\n  522633: \"从江县\",\n  522634: \"雷山县\",\n  522635: \"麻江县\",\n  522636: \"丹寨县\",\n  522700: \"黔南布依族苗族自治州\",\n  522701: \"都匀市\",\n  522702: \"福泉市\",\n  522722: \"荔波县\",\n  522723: \"贵定县\",\n  522725: \"瓮安县\",\n  522726: \"独山县\",\n  522727: \"平塘县\",\n  522728: \"罗甸县\",\n  522729: \"长顺县\",\n  522730: \"龙里县\",\n  522731: \"惠水县\",\n  522732: \"三都水族自治县\",\n  53e4: \"云南省\",\n  530100: \"昆明市\",\n  530101: \"市辖区\",\n  530102: \"五华区\",\n  530103: \"盘龙区\",\n  530111: \"官渡区\",\n  530112: \"西山区\",\n  530113: \"东川区\",\n  530114: \"呈贡区\",\n  530122: \"晋宁县\",\n  530124: \"富民县\",\n  530125: \"宜良县\",\n  530126: \"石林彝族自治县\",\n  530127: \"嵩明县\",\n  530128: \"禄劝彝族苗族自治县\",\n  530129: \"寻甸回族彝族自治县\",\n  530181: \"安宁市\",\n  530300: \"曲靖市\",\n  530301: \"市辖区\",\n  530302: \"麒麟区\",\n  530303: \"沾益区\",\n  530321: \"马龙县\",\n  530322: \"陆良县\",\n  530323: \"师宗县\",\n  530324: \"罗平县\",\n  530325: \"富源县\",\n  530326: \"会泽县\",\n  530381: \"宣威市\",\n  530400: \"玉溪市\",\n  530401: \"市辖区\",\n  530402: \"红塔区\",\n  530403: \"江川区\",\n  530422: \"澄江县\",\n  530423: \"通海县\",\n  530424: \"华宁县\",\n  530425: \"易门县\",\n  530426: \"峨山彝族自治县\",\n  530427: \"新平彝族傣族自治县\",\n  530428: \"元江哈尼族彝族傣族自治县\",\n  530500: \"保山市\",\n  530501: \"市辖区\",\n  530502: \"隆阳区\",\n  530521: \"施甸县\",\n  530523: \"龙陵县\",\n  530524: \"昌宁县\",\n  530581: \"腾冲市\",\n  530600: \"昭通市\",\n  530601: \"市辖区\",\n  530602: \"昭阳区\",\n  530621: \"鲁甸县\",\n  530622: \"巧家县\",\n  530623: \"盐津县\",\n  530624: \"大关县\",\n  530625: \"永善县\",\n  530626: \"绥江县\",\n  530627: \"镇雄县\",\n  530628: \"彝良县\",\n  530629: \"威信县\",\n  530630: \"水富县\",\n  530700: \"丽江市\",\n  530701: \"市辖区\",\n  530702: \"古城区\",\n  530721: \"玉龙纳西族自治县\",\n  530722: \"永胜县\",\n  530723: \"华坪县\",\n  530724: \"宁蒗彝族自治县\",\n  530800: \"普洱市\",\n  530801: \"市辖区\",\n  530802: \"思茅区\",\n  530821: \"宁洱哈尼族彝族自治县\",\n  530822: \"墨江哈尼族自治县\",\n  530823: \"景东彝族自治县\",\n  530824: \"景谷傣族彝族自治县\",\n  530825: \"镇沅彝族哈尼族拉祜族自治县\",\n  530826: \"江城哈尼族彝族自治县\",\n  530827: \"孟连傣族拉祜族佤族自治县\",\n  530828: \"澜沧拉祜族自治县\",\n  530829: \"西盟佤族自治县\",\n  530900: \"临沧市\",\n  530901: \"市辖区\",\n  530902: \"临翔区\",\n  530921: \"凤庆县\",\n  530922: \"云县\",\n  530923: \"永德县\",\n  530924: \"镇康县\",\n  530925: \"双江拉祜族佤族布朗族傣族自治县\",\n  530926: \"耿马傣族佤族自治县\",\n  530927: \"沧源佤族自治县\",\n  532300: \"楚雄彝族自治州\",\n  532301: \"楚雄市\",\n  532322: \"双柏县\",\n  532323: \"牟定县\",\n  532324: \"南华县\",\n  532325: \"姚安县\",\n  532326: \"大姚县\",\n  532327: \"永仁县\",\n  532328: \"元谋县\",\n  532329: \"武定县\",\n  532331: \"禄丰县\",\n  532500: \"红河哈尼族彝族自治州\",\n  532501: \"个旧市\",\n  532502: \"开远市\",\n  532503: \"蒙自市\",\n  532504: \"弥勒市\",\n  532523: \"屏边苗族自治县\",\n  532524: \"建水县\",\n  532525: \"石屏县\",\n  532527: \"泸西县\",\n  532528: \"元阳县\",\n  532529: \"红河县\",\n  532530: \"金平苗族瑶族傣族自治县\",\n  532531: \"绿春县\",\n  532532: \"河口瑶族自治县\",\n  532600: \"文山壮族苗族自治州\",\n  532601: \"文山市\",\n  532622: \"砚山县\",\n  532623: \"西畴县\",\n  532624: \"麻栗坡县\",\n  532625: \"马关县\",\n  532626: \"丘北县\",\n  532627: \"广南县\",\n  532628: \"富宁县\",\n  532800: \"西双版纳傣族自治州\",\n  532801: \"景洪市\",\n  532822: \"勐海县\",\n  532823: \"勐腊县\",\n  532900: \"大理白族自治州\",\n  532901: \"大理市\",\n  532922: \"漾濞彝族自治县\",\n  532923: \"祥云县\",\n  532924: \"宾川县\",\n  532925: \"弥渡县\",\n  532926: \"南涧彝族自治县\",\n  532927: \"巍山彝族回族自治县\",\n  532928: \"永平县\",\n  532929: \"云龙县\",\n  532930: \"洱源县\",\n  532931: \"剑川县\",\n  532932: \"鹤庆县\",\n  533100: \"德宏傣族景颇族自治州\",\n  533102: \"瑞丽市\",\n  533103: \"芒市\",\n  533122: \"梁河县\",\n  533123: \"盈江县\",\n  533124: \"陇川县\",\n  533300: \"怒江傈僳族自治州\",\n  533301: \"泸水市\",\n  533323: \"福贡县\",\n  533324: \"贡山独龙族怒族自治县\",\n  533325: \"兰坪白族普米族自治县\",\n  533400: \"迪庆藏族自治州\",\n  533401: \"香格里拉市\",\n  533422: \"德钦县\",\n  533423: \"维西傈僳族自治县\",\n  54e4: \"西藏自治区\",\n  540100: \"拉萨市\",\n  540101: \"市辖区\",\n  540102: \"城关区\",\n  540103: \"堆龙德庆区\",\n  540121: \"林周县\",\n  540122: \"当雄县\",\n  540123: \"尼木县\",\n  540124: \"曲水县\",\n  540126: \"达孜县\",\n  540127: \"墨竹工卡县\",\n  540200: \"日喀则市\",\n  540202: \"桑珠孜区\",\n  540221: \"南木林县\",\n  540222: \"江孜县\",\n  540223: \"定日县\",\n  540224: \"萨迦县\",\n  540225: \"拉孜县\",\n  540226: \"昂仁县\",\n  540227: \"谢通门县\",\n  540228: \"白朗县\",\n  540229: \"仁布县\",\n  540230: \"康马县\",\n  540231: \"定结县\",\n  540232: \"仲巴县\",\n  540233: \"亚东县\",\n  540234: \"吉隆县\",\n  540235: \"聂拉木县\",\n  540236: \"萨嘎县\",\n  540237: \"岗巴县\",\n  540300: \"昌都市\",\n  540302: \"卡若区\",\n  540321: \"江达县\",\n  540322: \"贡觉县\",\n  540323: \"类乌齐县\",\n  540324: \"丁青县\",\n  540325: \"察雅县\",\n  540326: \"八宿县\",\n  540327: \"左贡县\",\n  540328: \"芒康县\",\n  540329: \"洛隆县\",\n  540330: \"边坝县\",\n  540400: \"林芝市\",\n  540402: \"巴宜区\",\n  540421: \"工布江达县\",\n  540422: \"米林县\",\n  540423: \"墨脱县\",\n  540424: \"波密县\",\n  540425: \"察隅县\",\n  540426: \"朗县\",\n  540500: \"山南市\",\n  540501: \"市辖区\",\n  540502: \"乃东区\",\n  540521: \"扎囊县\",\n  540522: \"贡嘎县\",\n  540523: \"桑日县\",\n  540524: \"琼结县\",\n  540525: \"曲松县\",\n  540526: \"措美县\",\n  540527: \"洛扎县\",\n  540528: \"加查县\",\n  540529: \"隆子县\",\n  540530: \"错那县\",\n  540531: \"浪卡子县\",\n  542400: \"那曲地区\",\n  542421: \"那曲县\",\n  542422: \"嘉黎县\",\n  542423: \"比如县\",\n  542424: \"聂荣县\",\n  542425: \"安多县\",\n  542426: \"申扎县\",\n  542427: \"索县\",\n  542428: \"班戈县\",\n  542429: \"巴青县\",\n  542430: \"尼玛县\",\n  542431: \"双湖县\",\n  542500: \"阿里地区\",\n  542521: \"普兰县\",\n  542522: \"札达县\",\n  542523: \"噶尔县\",\n  542524: \"日土县\",\n  542525: \"革吉县\",\n  542526: \"改则县\",\n  542527: \"措勤县\",\n  61e4: \"陕西省\",\n  610100: \"西安市\",\n  610101: \"市辖区\",\n  610102: \"新城区\",\n  610103: \"碑林区\",\n  610104: \"莲湖区\",\n  610111: \"灞桥区\",\n  610112: \"未央区\",\n  610113: \"雁塔区\",\n  610114: \"阎良区\",\n  610115: \"临潼区\",\n  610116: \"长安区\",\n  610117: \"高陵区\",\n  610122: \"蓝田县\",\n  610124: \"周至县\",\n  610125: \"户县\",\n  610200: \"铜川市\",\n  610201: \"市辖区\",\n  610202: \"王益区\",\n  610203: \"印台区\",\n  610204: \"耀州区\",\n  610222: \"宜君县\",\n  610300: \"宝鸡市\",\n  610301: \"市辖区\",\n  610302: \"渭滨区\",\n  610303: \"金台区\",\n  610304: \"陈仓区\",\n  610322: \"凤翔县\",\n  610323: \"岐山县\",\n  610324: \"扶风县\",\n  610326: \"眉县\",\n  610327: \"陇县\",\n  610328: \"千阳县\",\n  610329: \"麟游县\",\n  610330: \"凤县\",\n  610331: \"太白县\",\n  610400: \"咸阳市\",\n  610401: \"市辖区\",\n  610402: \"秦都区\",\n  610403: \"杨陵区\",\n  610404: \"渭城区\",\n  610422: \"三原县\",\n  610423: \"泾阳县\",\n  610424: \"乾县\",\n  610425: \"礼泉县\",\n  610426: \"永寿县\",\n  610427: \"彬县\",\n  610428: \"长武县\",\n  610429: \"旬邑县\",\n  610430: \"淳化县\",\n  610431: \"武功县\",\n  610481: \"兴平市\",\n  610500: \"渭南市\",\n  610501: \"市辖区\",\n  610502: \"临渭区\",\n  610503: \"华州区\",\n  610522: \"潼关县\",\n  610523: \"大荔县\",\n  610524: \"合阳县\",\n  610525: \"澄城县\",\n  610526: \"蒲城县\",\n  610527: \"白水县\",\n  610528: \"富平县\",\n  610581: \"韩城市\",\n  610582: \"华阴市\",\n  610600: \"延安市\",\n  610601: \"市辖区\",\n  610602: \"宝塔区\",\n  610603: \"安塞区\",\n  610621: \"延长县\",\n  610622: \"延川县\",\n  610623: \"子长县\",\n  610625: \"志丹县\",\n  610626: \"吴起县\",\n  610627: \"甘泉县\",\n  610628: \"富县\",\n  610629: \"洛川县\",\n  610630: \"宜川县\",\n  610631: \"黄龙县\",\n  610632: \"黄陵县\",\n  610700: \"汉中市\",\n  610701: \"市辖区\",\n  610702: \"汉台区\",\n  610721: \"南郑县\",\n  610722: \"城固县\",\n  610723: \"洋县\",\n  610724: \"西乡县\",\n  610725: \"勉县\",\n  610726: \"宁强县\",\n  610727: \"略阳县\",\n  610728: \"镇巴县\",\n  610729: \"留坝县\",\n  610730: \"佛坪县\",\n  610800: \"榆林市\",\n  610801: \"市辖区\",\n  610802: \"榆阳区\",\n  610803: \"横山区\",\n  610821: \"神木县\",\n  610822: \"府谷县\",\n  610824: \"靖边县\",\n  610825: \"定边县\",\n  610826: \"绥德县\",\n  610827: \"米脂县\",\n  610828: \"佳县\",\n  610829: \"吴堡县\",\n  610830: \"清涧县\",\n  610831: \"子洲县\",\n  610900: \"安康市\",\n  610901: \"市辖区\",\n  610902: \"汉滨区\",\n  610921: \"汉阴县\",\n  610922: \"石泉县\",\n  610923: \"宁陕县\",\n  610924: \"紫阳县\",\n  610925: \"岚皋县\",\n  610926: \"平利县\",\n  610927: \"镇坪县\",\n  610928: \"旬阳县\",\n  610929: \"白河县\",\n  611e3: \"商洛市\",\n  611001: \"市辖区\",\n  611002: \"商州区\",\n  611021: \"洛南县\",\n  611022: \"丹凤县\",\n  611023: \"商南县\",\n  611024: \"山阳县\",\n  611025: \"镇安县\",\n  611026: \"柞水县\",\n  62e4: \"甘肃省\",\n  620100: \"兰州市\",\n  620101: \"市辖区\",\n  620102: \"城关区\",\n  620103: \"七里河区\",\n  620104: \"西固区\",\n  620105: \"安宁区\",\n  620111: \"红古区\",\n  620121: \"永登县\",\n  620122: \"皋兰县\",\n  620123: \"榆中县\",\n  620200: \"嘉峪关市\",\n  620201: \"市辖区\",\n  620300: \"金昌市\",\n  620301: \"市辖区\",\n  620302: \"金川区\",\n  620321: \"永昌县\",\n  620400: \"白银市\",\n  620401: \"市辖区\",\n  620402: \"白银区\",\n  620403: \"平川区\",\n  620421: \"靖远县\",\n  620422: \"会宁县\",\n  620423: \"景泰县\",\n  620500: \"天水市\",\n  620501: \"市辖区\",\n  620502: \"秦州区\",\n  620503: \"麦积区\",\n  620521: \"清水县\",\n  620522: \"秦安县\",\n  620523: \"甘谷县\",\n  620524: \"武山县\",\n  620525: \"张家川回族自治县\",\n  620600: \"武威市\",\n  620601: \"市辖区\",\n  620602: \"凉州区\",\n  620621: \"民勤县\",\n  620622: \"古浪县\",\n  620623: \"天祝藏族自治县\",\n  620700: \"张掖市\",\n  620701: \"市辖区\",\n  620702: \"甘州区\",\n  620721: \"肃南裕固族自治县\",\n  620722: \"民乐县\",\n  620723: \"临泽县\",\n  620724: \"高台县\",\n  620725: \"山丹县\",\n  620800: \"平凉市\",\n  620801: \"市辖区\",\n  620802: \"崆峒区\",\n  620821: \"泾川县\",\n  620822: \"灵台县\",\n  620823: \"崇信县\",\n  620824: \"华亭县\",\n  620825: \"庄浪县\",\n  620826: \"静宁县\",\n  620900: \"酒泉市\",\n  620901: \"市辖区\",\n  620902: \"肃州区\",\n  620921: \"金塔县\",\n  620922: \"瓜州县\",\n  620923: \"肃北蒙古族自治县\",\n  620924: \"阿克塞哈萨克族自治县\",\n  620981: \"玉门市\",\n  620982: \"敦煌市\",\n  621e3: \"庆阳市\",\n  621001: \"市辖区\",\n  621002: \"西峰区\",\n  621021: \"庆城县\",\n  621022: \"环县\",\n  621023: \"华池县\",\n  621024: \"合水县\",\n  621025: \"正宁县\",\n  621026: \"宁县\",\n  621027: \"镇原县\",\n  621100: \"定西市\",\n  621101: \"市辖区\",\n  621102: \"安定区\",\n  621121: \"通渭县\",\n  621122: \"陇西县\",\n  621123: \"渭源县\",\n  621124: \"临洮县\",\n  621125: \"漳县\",\n  621126: \"岷县\",\n  621200: \"陇南市\",\n  621201: \"市辖区\",\n  621202: \"武都区\",\n  621221: \"成县\",\n  621222: \"文县\",\n  621223: \"宕昌县\",\n  621224: \"康县\",\n  621225: \"西和县\",\n  621226: \"礼县\",\n  621227: \"徽县\",\n  621228: \"两当县\",\n  622900: \"临夏回族自治州\",\n  622901: \"临夏市\",\n  622921: \"临夏县\",\n  622922: \"康乐县\",\n  622923: \"永靖县\",\n  622924: \"广河县\",\n  622925: \"和政县\",\n  622926: \"东乡族自治县\",\n  622927: \"积石山保安族东乡族撒拉族自治县\",\n  623e3: \"甘南藏族自治州\",\n  623001: \"合作市\",\n  623021: \"临潭县\",\n  623022: \"卓尼县\",\n  623023: \"舟曲县\",\n  623024: \"迭部县\",\n  623025: \"玛曲县\",\n  623026: \"碌曲县\",\n  623027: \"夏河县\",\n  63e4: \"青海省\",\n  630100: \"西宁市\",\n  630101: \"市辖区\",\n  630102: \"城东区\",\n  630103: \"城中区\",\n  630104: \"城西区\",\n  630105: \"城北区\",\n  630121: \"大通回族土族自治县\",\n  630122: \"湟中县\",\n  630123: \"湟源县\",\n  630200: \"海东市\",\n  630202: \"乐都区\",\n  630203: \"平安区\",\n  630222: \"民和回族土族自治县\",\n  630223: \"互助土族自治县\",\n  630224: \"化隆回族自治县\",\n  630225: \"循化撒拉族自治县\",\n  632200: \"海北藏族自治州\",\n  632221: \"门源回族自治县\",\n  632222: \"祁连县\",\n  632223: \"海晏县\",\n  632224: \"刚察县\",\n  632300: \"黄南藏族自治州\",\n  632321: \"同仁县\",\n  632322: \"尖扎县\",\n  632323: \"泽库县\",\n  632324: \"河南蒙古族自治县\",\n  632500: \"海南藏族自治州\",\n  632521: \"共和县\",\n  632522: \"同德县\",\n  632523: \"贵德县\",\n  632524: \"兴海县\",\n  632525: \"贵南县\",\n  632600: \"果洛藏族自治州\",\n  632621: \"玛沁县\",\n  632622: \"班玛县\",\n  632623: \"甘德县\",\n  632624: \"达日县\",\n  632625: \"久治县\",\n  632626: \"玛多县\",\n  632700: \"玉树藏族自治州\",\n  632701: \"玉树市\",\n  632722: \"杂多县\",\n  632723: \"称多县\",\n  632724: \"治多县\",\n  632725: \"囊谦县\",\n  632726: \"曲麻莱县\",\n  632800: \"海西蒙古族藏族自治州\",\n  632801: \"格尔木市\",\n  632802: \"德令哈市\",\n  632821: \"乌兰县\",\n  632822: \"都兰县\",\n  632823: \"天峻县\",\n  64e4: \"宁夏回族自治区\",\n  640100: \"银川市\",\n  640101: \"市辖区\",\n  640104: \"兴庆区\",\n  640105: \"西夏区\",\n  640106: \"金凤区\",\n  640121: \"永宁县\",\n  640122: \"贺兰县\",\n  640181: \"灵武市\",\n  640200: \"石嘴山市\",\n  640201: \"市辖区\",\n  640202: \"大武口区\",\n  640205: \"惠农区\",\n  640221: \"平罗县\",\n  640300: \"吴忠市\",\n  640301: \"市辖区\",\n  640302: \"利通区\",\n  640303: \"红寺堡区\",\n  640323: \"盐池县\",\n  640324: \"同心县\",\n  640381: \"青铜峡市\",\n  640400: \"固原市\",\n  640401: \"市辖区\",\n  640402: \"原州区\",\n  640422: \"西吉县\",\n  640423: \"隆德县\",\n  640424: \"泾源县\",\n  640425: \"彭阳县\",\n  640500: \"中卫市\",\n  640501: \"市辖区\",\n  640502: \"沙坡头区\",\n  640521: \"中宁县\",\n  640522: \"海原县\",\n  65e4: \"新疆维吾尔自治区\",\n  650100: \"乌鲁木齐市\",\n  650101: \"市辖区\",\n  650102: \"天山区\",\n  650103: \"沙依巴克区\",\n  650104: \"新市区\",\n  650105: \"水磨沟区\",\n  650106: \"头屯河区\",\n  650107: \"达坂城区\",\n  650109: \"米东区\",\n  650121: \"乌鲁木齐县\",\n  650200: \"克拉玛依市\",\n  650201: \"市辖区\",\n  650202: \"独山子区\",\n  650203: \"克拉玛依区\",\n  650204: \"白碱滩区\",\n  650205: \"乌尔禾区\",\n  650400: \"吐鲁番市\",\n  650402: \"高昌区\",\n  650421: \"鄯善县\",\n  650422: \"托克逊县\",\n  650500: \"哈密市\",\n  650502: \"伊州区\",\n  650521: \"巴里坤哈萨克自治县\",\n  650522: \"伊吾县\",\n  652300: \"昌吉回族自治州\",\n  652301: \"昌吉市\",\n  652302: \"阜康市\",\n  652323: \"呼图壁县\",\n  652324: \"玛纳斯县\",\n  652325: \"奇台县\",\n  652327: \"吉木萨尔县\",\n  652328: \"木垒哈萨克自治县\",\n  652700: \"博尔塔拉蒙古自治州\",\n  652701: \"博乐市\",\n  652702: \"阿拉山口市\",\n  652722: \"精河县\",\n  652723: \"温泉县\",\n  652800: \"巴音郭楞蒙古自治州\",\n  652801: \"库尔勒市\",\n  652822: \"轮台县\",\n  652823: \"尉犁县\",\n  652824: \"若羌县\",\n  652825: \"且末县\",\n  652826: \"焉耆回族自治县\",\n  652827: \"和静县\",\n  652828: \"和硕县\",\n  652829: \"博湖县\",\n  652900: \"阿克苏地区\",\n  652901: \"阿克苏市\",\n  652922: \"温宿县\",\n  652923: \"库车县\",\n  652924: \"沙雅县\",\n  652925: \"新和县\",\n  652926: \"拜城县\",\n  652927: \"乌什县\",\n  652928: \"阿瓦提县\",\n  652929: \"柯坪县\",\n  653e3: \"克孜勒苏柯尔克孜自治州\",\n  653001: \"阿图什市\",\n  653022: \"阿克陶县\",\n  653023: \"阿合奇县\",\n  653024: \"乌恰县\",\n  653100: \"喀什地区\",\n  653101: \"喀什市\",\n  653121: \"疏附县\",\n  653122: \"疏勒县\",\n  653123: \"英吉沙县\",\n  653124: \"泽普县\",\n  653125: \"莎车县\",\n  653126: \"叶城县\",\n  653127: \"麦盖提县\",\n  653128: \"岳普湖县\",\n  653129: \"伽师县\",\n  653130: \"巴楚县\",\n  653131: \"塔什库尔干塔吉克自治县\",\n  653200: \"和田地区\",\n  653201: \"和田市\",\n  653221: \"和田县\",\n  653222: \"墨玉县\",\n  653223: \"皮山县\",\n  653224: \"洛浦县\",\n  653225: \"策勒县\",\n  653226: \"于田县\",\n  653227: \"民丰县\",\n  654e3: \"伊犁哈萨克自治州\",\n  654002: \"伊宁市\",\n  654003: \"奎屯市\",\n  654004: \"霍尔果斯市\",\n  654021: \"伊宁县\",\n  654022: \"察布查尔锡伯自治县\",\n  654023: \"霍城县\",\n  654024: \"巩留县\",\n  654025: \"新源县\",\n  654026: \"昭苏县\",\n  654027: \"特克斯县\",\n  654028: \"尼勒克县\",\n  654200: \"塔城地区\",\n  654201: \"塔城市\",\n  654202: \"乌苏市\",\n  654221: \"额敏县\",\n  654223: \"沙湾县\",\n  654224: \"托里县\",\n  654225: \"裕民县\",\n  654226: \"和布克赛尔蒙古自治县\",\n  654300: \"阿勒泰地区\",\n  654301: \"阿勒泰市\",\n  654321: \"布尔津县\",\n  654322: \"富蕴县\",\n  654323: \"福海县\",\n  654324: \"哈巴河县\",\n  654325: \"青河县\",\n  654326: \"吉木乃县\",\n  659e3: \"自治区直辖县级行政区划\",\n  659001: \"石河子市\",\n  659002: \"阿拉尔市\",\n  659003: \"图木舒克市\",\n  659004: \"五家渠市\",\n  659006: \"铁门关市\",\n  71e4: \"台湾省\",\n  81e4: \"香港特别行政区\",\n  82e4: \"澳门特别行政区\"\n};\nfunction fr(t, e, n) {\n  if (!t || t.length !== e || !/^[0-9A-Z]+$/.test(t))\n    throw new Error(n);\n}\nfunction P(t, e, n) {\n  if (e.findIndex((r) => r == t) < 0)\n    throw new Error(n);\n}\nfunction oo(t, e, n) {\n  const r = Object.entries(e).find(([s]) => s == t);\n  if (!r)\n    throw new Error(n || `{ ${t} } 不在范围内！`);\n  return r[1];\n}\nfunction ao(t, e, n) {\n  const r = Object.entries(e).find(([s, i]) => i == t);\n  if (!r)\n    throw new Error(n || `{ ${t} } 不在范围内！`);\n  return r[0];\n}\nfunction hr(t, e, n, r) {\n  let s = 0;\n  for (let i = 0, o = n.length; i < o; i++) {\n    if (!(t[i] in r))\n      throw new Error(\n        `计算校验码失败: 参与校验的字符 { ${t[i]} } 不在代码字符集范围内！`\n      );\n    const a = r[t[i]];\n    s += a * n[i];\n  }\n  return s = (e - s % e) % e, ao(\n    s,\n    r,\n    `计算校验码失败: 校验码 { ${s} } 不在代码字符集范围内！`\n  );\n}\nconst co = 11, uo = [3, 7, 9, 10, 5, 8, 4, 2], lo = {\n  0: 0,\n  1: 1,\n  2: 2,\n  3: 3,\n  4: 4,\n  5: 5,\n  6: 6,\n  7: 7,\n  8: 8,\n  9: 9,\n  A: 10,\n  B: 11,\n  C: 12,\n  D: 13,\n  E: 14,\n  F: 15,\n  G: 16,\n  H: 17,\n  I: 18,\n  J: 19,\n  K: 20,\n  L: 21,\n  M: 22,\n  N: 23,\n  O: 24,\n  P: 25,\n  Q: 26,\n  R: 27,\n  S: 28,\n  T: 29,\n  U: 30,\n  V: 31,\n  W: 32,\n  X: 33,\n  Y: 34,\n  Z: 35\n};\nfunction fo(t) {\n  if (fr(\n    t,\n    9,\n    \"不符合《GB 11714-1997》：组织机构代码只能 9 位 且 大写！\"\n  ), hr(t, co, uo, lo) !== t[8])\n    throw new Error(\"不符合《GB 11714-1997》：校验码检验失败\");\n  return !0;\n}\nconst ho = 31, po = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28], mo = {\n  0: 0,\n  1: 1,\n  2: 2,\n  3: 3,\n  4: 4,\n  5: 5,\n  6: 6,\n  7: 7,\n  8: 8,\n  9: 9,\n  A: 10,\n  B: 11,\n  C: 12,\n  D: 13,\n  E: 14,\n  F: 15,\n  G: 16,\n  H: 17,\n  J: 18,\n  K: 19,\n  L: 20,\n  M: 21,\n  N: 22,\n  P: 23,\n  Q: 24,\n  R: 25,\n  T: 26,\n  U: 27,\n  W: 28,\n  X: 29,\n  Y: 30\n};\nfunction bl(t) {\n  fr(\n    t,\n    18,\n    \"不符合《GB 32100-2015》：税号只能 18 位 且 大写！\"\n  );\n  const e = t[0];\n  P(\n    e,\n    [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"N\", \"Y\"],\n    \"不符合《GB 32100-2015》： { 第1位 : 登记管理部门代码 } \"\n  );\n  const n = t[1], r = \"不符合《GB 32100-2015》： { 第2位 : 机构类别代码 } \";\n  switch (e) {\n    case \"1\":\n      P(n, [\"1\", \"2\", \"3\", \"9\"], r);\n      break;\n    case \"2\":\n      P(n, [\"1\", \"9\"], r);\n      break;\n    case \"3\":\n      P(\n        n,\n        [\"1\", \"2\", \"3\", \"4\", \"5\", \"9\"],\n        r\n      );\n      break;\n    case \"4\":\n      P(n, [\"1\", \"9\"], r);\n      break;\n    case \"5\":\n      P(n, [\"1\", \"2\", \"3\", \"9\"], r);\n      break;\n    case \"6\":\n      P(n, [\"1\", \"2\", \"9\"], r);\n      break;\n    case \"7\":\n      P(n, [\"1\", \"2\", \"9\"], r);\n      break;\n    case \"8\":\n      P(n, [\"1\", \"9\"], r);\n      break;\n    case \"9\":\n      P(n, [\"1\", \"2\", \"3\"], r);\n      break;\n    case \"A\":\n      P(n, [\"1\", \"9\"], r);\n      break;\n    case \"N\":\n      P(n, [\"1\", \"2\", \"3\", \"9\"], r);\n      break;\n    case \"Y\":\n      P(n, [\"1\"], r);\n      break;\n  }\n  const s = t.substring(2, 8);\n  oo(\n    s,\n    io,\n    \"不符合《GB 32100-2015》： { 第3位 ~ 第8位 : 登记管理机关行政区划码 } \"\n  );\n  const i = t.substring(8, 17);\n  try {\n    fo(i);\n  } catch {\n    throw new Error(\n      \"不符合《GB 32100-2015》： { 第9位 ~ 第17位 : 主体标识码 (组织机构代码) }\"\n    );\n  }\n  if (hr(t, ho, po, mo) !== t[17])\n    throw new Error(\"不符合《GB 32100-2015》：校验码检验失败\");\n  return !0;\n}\nfunction go() {\n  const t = {};\n  return t.promise = new Promise((e, n) => {\n    t.resolve = e, t.reject = n;\n  }), t;\n}\nasync function Sl(t, e) {\n  const n = hs(t) ? t : t(), r = async (s) => {\n    s.value && s.value.then ? s.value.then(async (i) => {\n      await e?.(i), s.done || await r(await n.next(i));\n    }).catch(async (i) => {\n      if (s.done || !n.throw)\n        throw new Error(i);\n      await r(await n.throw(i));\n    }) : typeof s.value == \"function\" ? s.value(async (i, o) => {\n      if (i) {\n        if (s.done || !n.throw)\n          throw new Error(i);\n        return await r(await n.throw(i));\n      }\n      await e?.(o), s.done || await r(await n.next(o));\n    }) : (await e?.(s.value), s.done || await r(await n.next(s.value)));\n  };\n  await r(await n.next());\n}\nfunction xl(t) {\n  return (...e) => (\n    // Thunk函数签名\n    (n) => {\n      let r;\n      try {\n        t.apply(this, [\n          ...e,\n          (s, i) => {\n            r || (r = !0, n(s, i));\n          }\n        ]);\n      } catch (s) {\n        n(s);\n      }\n    }\n  );\n}\nfunction Al(t) {\n  return new Promise((e, n) => {\n    t.call(this, (r, s) => r ? n(r) : e(s));\n  });\n}\nfunction Ol(t) {\n  let e = !1;\n  return {\n    promise: new Promise((n, r) => {\n      t.then(\n        (s) => e ? r({ isCanceled: !0, value: s }) : n(s),\n        (s) => r({ isCanceled: e, error: s })\n      );\n    }),\n    cancel: () => e = !0\n  };\n}\nfunction vl(t, e) {\n  let n;\n  return Promise.race([\n    t,\n    new Promise((r, s) => {\n      n = setTimeout(() => s(new Error(\"Timeout\")), e);\n    })\n  ]).then((r) => (clearTimeout(n), r)).catch((r) => (clearTimeout(n), r));\n}\nfunction Rl(t) {\n  let e = null, n = Promise.resolve();\n  for (const r of t)\n    n = n.then((s) => (e = s, r));\n  return n.catch((r) => {\n    throw r;\n  }).then(() => e);\n}\nconst yo = 2147483647;\nasync function _l(t) {\n  return new Promise((e) => {\n    setTimeout(e, Math.min(yo, t));\n  });\n}\nfunction Tl(t) {\n}\nasync function El(t, e) {\n  return Promise.race([\n    t(),\n    new Promise(\n      (n, r) => setTimeout(() => r(new Error(\"Timeout exceeded\")), e)\n    )\n  ]);\n}\nasync function kl(t = []) {\n  return await t.reduce(async (e, n) => (await e, await n()), Promise.resolve(void 0));\n}\nlet wo = 0;\nfunction dr(t) {\n  const e = go();\n  let n = !1;\n  return {\n    name: t.name || String(++wo),\n    deadline: typeof t.deadline == \"number\" ? Math.max(t.deadline, 0) : -1,\n    run: async () => {\n      if (!n) {\n        n = !0;\n        try {\n          let r;\n          const s = t.args || [];\n          t.thisArg ? r = await t.fn.call(t.thisArg, ...s) : r = await t.fn(...s), e.resolve(r);\n        } catch (r) {\n          e.reject(r);\n        }\n      }\n    },\n    result: () => e.promise\n  };\n}\nclass bo {\n  // 任务队列\n  queue;\n  // 是否暂停执行任务队列\n  suspend = !1;\n  // 执行信号\n  // Incrementing adds a lock\n  // Decrementing releases a lock\n  semaphore = 0;\n  // 并发执行数量 或 并发等待结果数量\n  concurrency = 1;\n  // 剩余可执行时间，毫秒\n  // -1 不考虑剩余可执行时间\n  // =0 自动暂停执行任务队列\n  timeRemaining = -1;\n  // 超时任务检查id\n  timeoutId;\n  // queue = createNoneRingQueue() : 不缓存数据\n  // queue = createFixedRingQueue(10) : 超出缓存空间时，抛错\n  // queue = createDroppingRingQueue(10) : 超出缓存空间时，忽略新数据\n  // queue = createSlidingRingQueue(10) : 超出缓存空间时，删除旧数据\n  // queue = createExpandingRingQueue(10) : 超出缓存空间时，扩大缓存空间\n  constructor(e) {\n    this.queue = e?.queue || ii(10), typeof e?.concurrency == \"number\" && (this.concurrency = Math.max(e?.concurrency, 1)), typeof e?.timeRemaining == \"number\" && this.setTimeRemaining(e.timeRemaining);\n  }\n  setTimeRemaining(e) {\n    this.timeRemaining = Math.max(0, e);\n  }\n  increaseTimeRemaining(e, n = !1) {\n    this.timeRemaining !== -1 ? this.setTimeRemaining(this.timeRemaining + e) : n && this.setTimeRemaining(e);\n  }\n  decreaseTimeRemaining(e) {\n    this.timeRemaining !== -1 && this.setTimeRemaining(this.timeRemaining - e);\n  }\n  // 执行任务，不管执行结果\n  _exec(e, n = !0) {\n    const r = X();\n    try {\n      this.semaphore++, e.run();\n    } finally {\n      this.semaphore--, n && (this.decreaseTimeRemaining(X() - r), this._flush());\n    }\n  }\n  // 执行队列\n  _flush() {\n    for (; !this.suspend && this.semaphore < this.concurrency && (this.timeRemaining == -1 || this.timeRemaining > 0); ) {\n      const e = this.queue.dequeue();\n      if (!e)\n        break;\n      this._exec(e);\n    }\n    this._timeout();\n  }\n  // 超时任务检查\n  _timeout(e = 0, n = 0) {\n    clearTimeout(this.timeoutId), this.timeoutId = setTimeout(() => {\n      if (!(this.suspend || this.semaphore > 0 || !this.queue.length)) {\n        for (let r = 0; r < this.queue.length(); ) {\n          const s = this.queue.index(r);\n          if (!s)\n            break;\n          s.deadline != -1 && s.deadline <= X() ? (this._exec(s, !1), this.queue.deleteIndex(r)) : r++;\n        }\n        this.queue.length() && (this.timeoutId = setTimeout(\n          () => {\n            this._timeout(e, ++n);\n          },\n          300 * Math.pow(2, n)\n          // wait a bit longer between each retry\n        ));\n      }\n    }, e);\n  }\n  // 暂停\n  pause() {\n    this.suspend = !0;\n  }\n  // 恢复\n  resume() {\n    this.suspend = !1, this._flush();\n  }\n  addTask(e) {\n    this.queue.delete((n) => n.name == e.name), this.queue.enqueue(e);\n  }\n  // 立即触发执行\n  immediately(e) {\n    this._exec(e), this._flush();\n  }\n  // 立即顺序触发执行队列\n  asap(e) {\n    this.addTask(e), this._flush();\n  }\n  // 有空余时间再执行队列\n  idleCallback(e) {\n    this.setTimeRemaining(e.timeRemaining()), this._flush();\n  }\n  clear() {\n    this.queue.clear();\n  }\n}\nclass pr extends bo {\n  // 上个任务的执行结果\n  lastResult;\n  constructor(e) {\n    super(e);\n  }\n  // 执行任务\n  _exec(e, n = !0) {\n    const r = X();\n    try {\n      this.semaphore++, e.run();\n    } finally {\n      e.result().then((s) => {\n        this.lastResult = s;\n      }).finally(() => {\n        this.semaphore--, n && (this.decreaseTimeRemaining(X() - r), this._flush());\n      });\n    }\n  }\n}\nclass Cl {\n  schedule;\n  constructor(e) {\n    this.schedule = new pr(e);\n  }\n  get lastResult() {\n    return this.schedule.lastResult;\n  }\n  // promise 自己绑定this\n  asap(e, ...n) {\n    const r = dr({\n      fn: e,\n      args: n\n    });\n    return this.schedule.asap(r), r;\n  }\n  immediately(e, ...n) {\n    return this.clear(), this.asap(e, ...n);\n  }\n  // 丢弃所有未处理的 promise\n  clear() {\n    this.schedule.clear();\n  }\n}\nclass Pl {\n  schedule;\n  closeLastDialog;\n  constructor(e) {\n    this.schedule = new pr(e);\n  }\n  // dialog 自己绑定this\n  // 将 Dialog 放入队列，依次关闭后显示\n  asap(e, n) {\n    const r = dr({\n      fn: (s) => new Promise((i) => {\n        this.closeLastDialog = e({\n          ...s,\n          onClose: () => {\n            this.closeLastDialog = void 0, s?.onClose?.(), i();\n          }\n        });\n      }),\n      args: [n]\n    });\n    return this.schedule.asap(r), r;\n  }\n  // 强制显示 Dialog\n  immediately(e, n) {\n    return this.clear(), this.asap(e, n);\n  }\n  // 强制关闭上一个 Dialog\n  closeLast() {\n    this.closeLastDialog && this.closeLastDialog();\n  }\n  // 丢弃所有未处理的 Dialog\n  clear() {\n    this.schedule.clear(), this.closeLast();\n  }\n}\nfunction Dl(t) {\n  if (typeof setImmediate < \"u\" && ft(setImmediate))\n    setImmediate(t);\n  else if (typeof MessageChannel < \"u\" && (ft(MessageChannel) || MessageChannel.toString() === \"[object MessageChannelConstructor]\")) {\n    const { port1: e, port2: n } = new MessageChannel();\n    n.onmessage = t, e.postMessage(null);\n  } else\n    typeof Promise < \"u\" && ft(Promise) ? Promise.resolve().then(t) : setTimeout(t, 0);\n}\nfunction Ml(t) {\n  typeof queueMicrotask == \"function\" ? queueMicrotask(t) : Promise.resolve().then(t).catch(\n    (e) => setTimeout(() => {\n      throw e;\n    })\n  );\n}\nclass Il {\n  // postMessage\n  port;\n  // onmessage\n  port2;\n  constructor() {\n    const { port1: e, port2: n } = new MessageChannel();\n    this.port = e, this.port2 = n, this.port.start(), this.port2.start();\n  }\n  close() {\n    this.port.close(), this.port2.close();\n  }\n  postMessage(e) {\n    const n = In();\n    return this.port.postMessage({ id: n, message: e }), n;\n  }\n  onmessage(e) {\n    this.port2.addEventListener(\"message\", e);\n  }\n  offmessage(e) {\n    this.port2.removeEventListener(\"message\", e);\n  }\n  onmessageerror(e) {\n    this.port2.addEventListener(\"messageerror\", e);\n  }\n  offmessageerror(e) {\n    this.port2.removeEventListener(\"messageerror\", e);\n  }\n}\nfunction Ll(t = \"\", e) {\n  const {\n    OPERATION_DELIMITER: n = \"/\",\n    KEY_DELIMITER: r = \",\",\n    KEY_VALUE_DELIMITER: s = \":\"\n  } = e || {};\n  return t.split(n).filter((i) => i !== \"\").reduce((i, o) => {\n    const [a, ...c] = o.split(r);\n    if (c.length === 0) {\n      const [u, l] = a.split(s);\n      i.push({\n        type: u,\n        payload: l !== void 0 ? decodeURIComponent(l) : !0\n      });\n    } else {\n      if (a.indexOf(s) !== -1)\n        throw new Error(`\"${a}\" is invalid`);\n      i.push(\n        c.reduce(\n          (u, l) => {\n            const [h, m] = l.split(s);\n            return u[h] = m !== void 0 ? decodeURIComponent(m) : !0, u;\n          },\n          {\n            type: a\n          }\n        )\n      );\n    }\n    return i;\n  }, []);\n}\nfunction So(t) {\n  const e = typeof t.immutable == \"boolean\" ? t.immutable : !0, n = t.initState || {};\n  let r = t.reducer;\n  if (t.enhancer)\n    return t.enhancer(So)({ reducer: r, initState: n, immutable: e });\n  const s = [], i = (u) => (s.push(u), () => {\n    const l = s.indexOf(u);\n    l > -1 && s.splice(l, 1);\n  });\n  let o = n;\n  e || (o = Zi(o, {\n    callback: (u) => {\n      s.forEach((l) => l(u));\n    }\n  }));\n  const a = (u) => {\n    if (e) {\n      const l = o;\n      o = r(o, u);\n      const h = jn(l, o);\n      for (const m of h)\n        s.forEach((d) => d(m));\n    } else\n      r(o, u);\n  }, c = (u) => {\n    r = u, a({ type: \"INIT\" });\n  };\n  return a({ type: \"INIT\" }), {\n    getState: () => o,\n    dispatch: a,\n    subscribe: i,\n    replaceReducer: c\n  };\n}\nfunction $l(t, e = !0) {\n  const n = Object.keys(t);\n  return (r, s) => {\n    const i = e ? { ...r } : r;\n    for (let o = 0, a = n.length; o < a; o++) {\n      const c = n[o];\n      i[c] = t[c](i[c] || {}, s);\n    }\n    return i;\n  };\n}\nfunction Fl(...t) {\n  return (e) => (n) => {\n    const r = e(n);\n    let s = r.dispatch;\n    const i = { getState: r.getState, dispatch: s }, o = t.map((a) => a(i));\n    return s = fi(...o)(s), r.dispatch = s, r;\n  };\n}\nconst Nl = (t) => {\n  let e = 0;\n  return (n) => (r) => {\n    ln.start(\n      `--- State Change index: ${++e} action: ${String(\n        r.type\n      )} ---`\n    ), R(`action: ${L(r)}`), R(`old-state: ${L(t.getState())}`), n(r), R(`new-state: ${L(t.getState())}`), ln.end();\n  };\n}, Ul = (t) => (e) => (n) => {\n  try {\n    e(n);\n  } catch (r) {\n    throw R(`Reducer错误报告: ${r}`), r;\n  }\n}, Bl = (t) => (e) => (n) => {\n  const r = `dispatch(${String(n.type)}) execute time`;\n  qe.start(r), e(n), qe.end(r);\n};\nclass jl {\n  _next;\n  _error;\n  _complete;\n  constructor() {\n  }\n  subscribe(e) {\n    return this._next = e.next, this._error = e.error, this._complete = e.complete, {\n      unsubscribe: () => {\n        this.complete();\n      }\n    };\n  }\n  next(e) {\n    this._next?.(e);\n  }\n  error(e) {\n    this._error?.(e);\n  }\n  complete() {\n    this._complete?.();\n  }\n}\nfunction mr(t = window.location.href) {\n  try {\n    return new URL(t);\n  } catch {\n    const n = \"(?<protocol>https?:)\", r = \"(?<host>(?<hostname>[^/#?:]+)(?::(?<port>\\\\d+))?)\", s = \"(?<pathname>(?:\\\\/[^/#?]+)*\\\\/?)\", i = \"(?<search>(?:\\\\?[^#]*)?)\", o = \"(?<hash>(?:#.*)?)\", c = new RegExp(`^${n}//${r}${s}${i}${o}$`).exec(t);\n    return {\n      href: t,\n      protocol: c?.groups?.protocol || \"\",\n      host: c?.groups?.host || \"\",\n      hostname: c?.groups?.hostname || \"\",\n      port: c?.groups?.port || \"\",\n      pathname: c?.groups?.pathname || \"\",\n      search: c?.groups?.search || \"\",\n      hash: c?.groups?.hash || \"\"\n    };\n  }\n}\nfunction ql(t) {\n  const e = mr(t);\n  return e.protocol === \"http:\" || e.protocol === \"https:\";\n}\nfunction xo(t) {\n  return !t.includes(\"://\") || t.includes(window.location.origin);\n}\nfunction zl(t = window.location.href) {\n  const e = mr(t), n = e.href.indexOf(e.hash);\n  return e.hash && n >= 0 ? e.href.substring(0, n) : e.href;\n}\nfunction Ao(t, e) {\n  return t.replace(/(?:\\?.*)?$/, e.replace(/^[&?]/, \"?\"));\n}\nfunction Hl(t, e) {\n  return Ao(t, gr(e));\n}\nfunction Oo(t, e) {\n  return t + e.replace(/^[&?]/, t.indexOf(\"?\") >= 0 ? \"&\" : \"?\");\n}\nfunction Vl(t, e) {\n  return Oo(t, gr(e));\n}\nfunction Wl(t = window.location.href) {\n  const e = {};\n  let n = decodeURIComponent(t).split(/[?]/)[1];\n  if (n || (n = t), n = n.replace(/^[#?&]/, \"\"), n = n.replace(/#\\/(([^?&=]*))$/, \"\"), n) {\n    const r = /(?:^|&)([^&=]*)=?([^&]*?)(?=&|$)/y;\n    let s = r.exec(n);\n    for (; s; )\n      e[s[1]] = s[2], s = r.exec(n);\n  }\n  return e;\n}\nfunction Gl(t = window.location.href) {\n  return JSON.parse(\n    '{\"' + decodeURI(t.split(\"?\")[1]).replace(/\"/g, '\\\\\"').replace(/&/g, '\",\"').replace(/=/g, '\":\"') + '\"}'\n  );\n}\nfunction gr(t) {\n  return \"?\" + Object.entries(t).map(([e, n]) => `${encodeURIComponent(e)}=${encodeURIComponent(n)}`).join(\"&\");\n}\nfunction Xl(t) {\n  return \"?\" + [...t.entries()].map(\n    (e) => encodeURIComponent(e[0]) + \"=\" + encodeURIComponent(e[1] instanceof File ? e[1].name : e[1])\n  ).join(\"&\");\n}\nasync function vo(t, e) {\n  if (xo(t))\n    return t;\n  const r = await (await fetch(t)).text(), s = new URL(t).href.split(\"/\");\n  s.pop();\n  const i = `const _importScripts = importScripts;\nconst _fixImports = (url) => new URL(url, '${s.join(\"/\") + \"/\"}').href;\nimportScripts = (...urls) => _importScripts(...urls.map(_fixImports));\n`, o = \"application/javascript\";\n  let a = `data:${o},` + encodeURIComponent(i + r);\n  return (typeof e?.useBlob == \"boolean\" ? e?.useBlob : !0) && (a = URL.createObjectURL(\n    new Blob([`importScripts(\"${a}\")`], { type: o })\n  )), a;\n}\nclass Jl {\n  worker;\n  constructor() {\n    if (!Ls)\n      throw new Error(\"Your environment do not support Worker !\");\n  }\n  async createFromURL(e, n = !1) {\n    const r = await vo(e);\n    return n ? (this.worker = new SharedWorker(r, {\n      type: \"module\"\n      // 声明为 ES 模块，默认是 classic\n    }), this.worker.port.start()) : this.worker = new Worker(r, {\n      type: \"module\"\n      // 声明为 ES 模块，默认是 classic\n    }), this.worker;\n  }\n  async createFromCode(e, n = !1) {\n    const r = new Blob([e]), s = URL.createObjectURL(r);\n    return n ? (this.worker = new SharedWorker(s, {\n      type: \"module\"\n      // 声明为 ES 模块，默认是 classic\n    }), this.worker.port.start()) : this.worker = new Worker(s, {\n      type: \"module\"\n      // 声明为 ES 模块，默认是 classic\n    }), this.worker;\n  }\n  terminate() {\n    this.worker instanceof Worker && this.worker.terminate(), this.worker instanceof SharedWorker && this.worker.port.close();\n  }\n  // type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | ArrayBuffer;\n  postMessage(e, n = []) {\n    const r = In();\n    return this.worker instanceof Worker && this.worker.postMessage({ id: r, message: e }, n), this.worker instanceof SharedWorker && this.worker.port.postMessage({ id: r, message: e }, n), r;\n  }\n  postCanvas(e) {\n    const n = e.transferControlToOffscreen();\n    this.postMessage({ canvas: n }, [n]);\n  }\n  postPort(e) {\n    this.postMessage({ port: e }, [e]);\n  }\n  onmessage(e) {\n    this.worker instanceof Worker && this.worker.addEventListener(\"message\", e), this.worker instanceof SharedWorker && this.worker.port.addEventListener(\"message\", e);\n  }\n  offmessage(e) {\n    this.worker instanceof Worker && this.worker.removeEventListener(\"message\", e), this.worker instanceof SharedWorker && this.worker.port.removeEventListener(\"message\", e);\n  }\n  onmessageerror(e) {\n    this.worker instanceof Worker && this.worker.addEventListener(\"messageerror\", e), this.worker instanceof SharedWorker && this.worker.port.addEventListener(\"messageerror\", e);\n  }\n  offmessageerror(e) {\n    this.worker instanceof Worker && this.worker.removeEventListener(\"messageerror\", e), this.worker instanceof SharedWorker && this.worker.port.removeEventListener(\"messageerror\", e);\n  }\n}\nfunction Ro(t) {\n  return t * Math.PI / 180;\n}\nfunction z(t) {\n  return t * 180 / Math.PI;\n}\nfunction V(t, e = 0) {\n  if (!t)\n    return e;\n  switch (t.unit) {\n    case \"turn\":\n      return t.v * 360;\n    case \"rad\":\n      return z(t.v);\n    case \"deg\":\n    default:\n      return t.v;\n  }\n}\nfunction Yl(t, e) {\n  return {\n    dx: Math.cos(t) * e,\n    dy: Math.sin(t) * e\n  };\n}\nfunction _o(t) {\n  const e = [];\n  return t.replace(\n    /([a-z0-9]+)\\s*\\(?\\s*((-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)*[a-z%]*\\s*,?\\s*)+)\\)?/gi,\n    (n, r, s) => {\n      const i = [];\n      return s.split(/\\s*[,\\s]+\\s*/).forEach((o) => {\n        o.trim() && i.push({\n          v: G(o, 0),\n          unit: o.match(/[a-z%]+$/)?.[0] || \"\"\n        });\n      }), e.push({\n        command: r,\n        values: i\n      }), \"\";\n    }\n  ), e;\n}\nclass O {\n  precision = 1e-6;\n  x;\n  y;\n  z;\n  w;\n  // 齐次坐标 w = 1：表示 3D 点坐标  w = 0：作为一个向量或方向使用\n  constructor(e = 0, n = 0, r = 0, s = 1) {\n    this.x = e, this.y = n, this.z = r, this.w = s;\n  }\n  clone() {\n    return new O(this.x, this.y, this.z, this.w);\n  }\n  add(e) {\n    return new O(this.x + e.x, this.y + e.y, this.z + e.z, this.w);\n  }\n  sub(e) {\n    return new O(this.x - e.x, this.y - e.y, this.z - e.z, this.w);\n  }\n  multiply(e) {\n    return new O(this.x * e.x, this.y * e.y, this.z * e.z, this.w);\n  }\n  divide(e) {\n    return new O(this.x / e.x, this.y / e.y, this.z / e.z, this.w);\n  }\n  min(e) {\n    return new O(\n      Math.min(this.x, e.x),\n      Math.min(this.y, e.y),\n      Math.min(this.z, e.z),\n      this.w\n    );\n  }\n  max(e) {\n    return new O(\n      Math.max(this.x, e.x),\n      Math.max(this.y, e.y),\n      Math.max(this.z, e.z),\n      this.w\n    );\n  }\n  clamp(e, n) {\n    return new O(\n      ce(this.x, e.x, n.x),\n      ce(this.y, e.y, n.y),\n      ce(this.z, e.z, n.z),\n      this.w\n    );\n  }\n  floor() {\n    return new O(\n      Math.floor(this.x),\n      Math.floor(this.y),\n      Math.floor(this.z),\n      this.w\n    );\n  }\n  ceil() {\n    return new O(\n      Math.ceil(this.x),\n      Math.ceil(this.y),\n      Math.ceil(this.z),\n      this.w\n    );\n  }\n  round() {\n    return new O(\n      Math.round(this.x),\n      Math.round(this.y),\n      Math.round(this.z),\n      this.w\n    );\n  }\n  roundToZero() {\n    return new O(\n      Math.trunc(this.x),\n      Math.trunc(this.y),\n      Math.trunc(this.z),\n      this.w\n    );\n  }\n  negate() {\n    return new O(\n      this.x - this.x,\n      this.y - this.y,\n      this.z - this.z,\n      this.w\n    );\n  }\n  // Returns the scalar product of the vector with the argument\n  // Both vectors must have equal dimensionality\n  dot(e) {\n    const n = e.toArray(), r = this.toArray();\n    let s = 0, i = 3;\n    do\n      s += r[i - 1] * n[i - 1];\n    while (--i);\n    return s;\n  }\n  // Returns the vector product of the vector with the argument\n  // Both vectors must have dimensionality 3\n  cross(e) {\n    const n = e.toArray(), r = this.toArray();\n    return new O(\n      r[1] * n[2] - r[2] * n[1],\n      r[2] * n[0] - r[0] * n[2],\n      r[0] * n[1] - r[1] * n[0]\n    );\n  }\n  length() {\n    return Math.sqrt(this.dot(this));\n  }\n  distance(e) {\n    return this.sub(e).length();\n  }\n  normalize() {\n    const e = this.length();\n    return e == 0 ? new O() : new O(this.x / e, this.y / e, this.z / e, this.w);\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n  }\n  // Returns the angle between the vector and the argument (also a vector)\n  degreeFrom(e) {\n    const n = e.toArray();\n    let r = 0, s = 0, i = 0;\n    if (this.toArray().forEach((a, c) => {\n      r += a * n[c], s += a * a, i += n[c] * n[c];\n    }), s = Math.sqrt(s), i = Math.sqrt(i), s * i === 0)\n      return;\n    let o = r / (s * i);\n    return o < -1 && (o = -1), o > 1 && (o = 1), z(Math.acos(o));\n  }\n  // Returns true iff the vector is parallel to the argument\n  isParallelTo(e) {\n    const n = this.degreeFrom(e);\n    return n === void 0 ? void 0 : n <= this.precision;\n  }\n  // 2D: 与 x 轴正方向之间的弧度值\n  radian() {\n    let e = Math.atan2(this.y, this.x);\n    return e < 0 && (e += Math.PI * 2), e;\n  }\n  // 2D: 与 x 轴正方向之间的角度值\n  degree() {\n    return z(this.radian());\n  }\n  // 2D: 返回滑动方向\n  getDirection(e = 10) {\n    if (Math.abs(this.x) < e && Math.abs(this.y) < e)\n      return \"no\";\n    const n = this.degree();\n    return n >= -135 && n <= -45 ? \"up\" : n > 45 && n < 135 ? \"down\" : n >= 135 && n <= 180 || n >= -180 && n < -135 ? \"left\" : \"right\";\n  }\n  toArray() {\n    return [this.x, this.y, this.z, this.w];\n  }\n  *[Symbol.iterator]() {\n    yield this.x, yield this.y, yield this.z, yield this.w;\n  }\n}\nclass q {\n  _elements;\n  _margin;\n  // protected isCoordinateChanged = false;\n  // private _is2D: boolean;\n  // 2D矩阵属性\n  get a() {\n    return this._elements[0];\n  }\n  set a(e) {\n    this._elements[0] = e;\n  }\n  get b() {\n    return this._elements[1];\n  }\n  set b(e) {\n    this._elements[1] = e;\n  }\n  get c() {\n    return this._elements[4];\n  }\n  set c(e) {\n    this._elements[4] = e;\n  }\n  get d() {\n    return this._elements[5];\n  }\n  set d(e) {\n    this._elements[5] = e;\n  }\n  get e() {\n    return this._elements[12];\n  }\n  set e(e) {\n    this._elements[12] = e;\n  }\n  get f() {\n    return this._elements[13];\n  }\n  set f(e) {\n    this._elements[13] = e;\n  }\n  // 3D矩阵属性\n  get m11() {\n    return this._elements[0];\n  }\n  set m11(e) {\n    this._elements[0] = e;\n  }\n  get m12() {\n    return this._elements[1];\n  }\n  set m12(e) {\n    this._elements[1] = e;\n  }\n  get m13() {\n    return this._elements[2];\n  }\n  set m13(e) {\n    this._elements[2] = e;\n  }\n  get m14() {\n    return this._elements[3];\n  }\n  set m14(e) {\n    this._elements[3] = e;\n  }\n  get m21() {\n    return this._elements[4];\n  }\n  set m21(e) {\n    this._elements[4] = e;\n  }\n  get m22() {\n    return this._elements[5];\n  }\n  set m22(e) {\n    this._elements[5] = e;\n  }\n  get m23() {\n    return this._elements[6];\n  }\n  set m23(e) {\n    this._elements[6] = e;\n  }\n  get m24() {\n    return this._elements[7];\n  }\n  set m24(e) {\n    this._elements[7] = e;\n  }\n  get m31() {\n    return this._elements[8];\n  }\n  set m31(e) {\n    this._elements[8] = e;\n  }\n  get m32() {\n    return this._elements[9];\n  }\n  set m32(e) {\n    this._elements[9] = e;\n  }\n  get m33() {\n    return this._elements[10];\n  }\n  set m33(e) {\n    this._elements[10] = e;\n  }\n  get m34() {\n    return this._elements[11];\n  }\n  set m34(e) {\n    this._elements[11] = e;\n  }\n  get m41() {\n    return this._elements[12];\n  }\n  set m41(e) {\n    this._elements[12] = e;\n  }\n  get m42() {\n    return this._elements[13];\n  }\n  set m42(e) {\n    this._elements[13] = e;\n  }\n  get m43() {\n    return this._elements[14];\n  }\n  set m43(e) {\n    this._elements[14] = e;\n  }\n  get m44() {\n    return this._elements[15];\n  }\n  set m44(e) {\n    this._elements[15] = e;\n  }\n  get elements() {\n    return Array.from(this._elements);\n  }\n  constructor(e, n) {\n    this._margin = bs(n), this._elements = new Float64Array(16), this.identity(), e && (typeof e == \"string\" ? this._parseTransformString(e) : Array.isArray(e) ? this._fromArray(e) : e instanceof q && this._elements.set(e._elements));\n  }\n  identity() {\n    this._elements.fill(0), this.m11 = 1, this.m22 = 1, this.m33 = 1, this.m44 = 1;\n  }\n  get isIdentity() {\n    return this._margin(this.m11, 1) && this._margin(this.m12, 0) && this._margin(this.m13, 0) && this._margin(this.m14, 0) && this._margin(this.m21, 0) && this._margin(this.m22, 1) && this._margin(this.m23, 0) && this._margin(this.m24, 0) && this._margin(this.m31, 0) && this._margin(this.m32, 0) && this._margin(this.m33, 1) && this._margin(this.m34, 0) && this._margin(this.m41, 0) && this._margin(this.m42, 0) && this._margin(this.m43, 0) && this._margin(this.m44, 1);\n  }\n  get isCoordinateChanged() {\n    return !(this._margin(this.m11, 1) && this._margin(this.m12, 0) && this._margin(this.m13, 0) && this._margin(this.m14, 0) && this._margin(this.m21, 0) && this._margin(this.m22, 1) && this._margin(this.m23, 0) && this._margin(this.m24, 0) && this._margin(this.m31, 0) && this._margin(this.m32, 0) && this._margin(this.m33, 1) && this._margin(this.m34, 0) && // this._margin(this.m41, 0) &&\n    // this._margin(this.m42, 0) &&\n    // this._margin(this.m43, 0) &&\n    this._margin(this.m44, 1));\n  }\n  get is2D() {\n    return this._margin(this.m31, 0) && this._margin(this.m32, 0) && this._margin(this.m33, 1) && this._margin(this.m34, 0) && this._margin(this.m43, 0) && this._margin(this.m44, 1);\n  }\n  _fromArray(e) {\n    if (e.length === 6)\n      this._elements.set([\n        e[0],\n        e[1],\n        0,\n        0,\n        e[2],\n        e[3],\n        0,\n        0,\n        0,\n        0,\n        1,\n        0,\n        e[4],\n        e[5],\n        0,\n        1\n      ]);\n    else if (e.length === 16)\n      this._elements.set(e);\n    else\n      throw new TypeError(\n        \"Invalid matrix length (must be 6 for 2D or 16 for 3D)\"\n      );\n  }\n  // 矩阵不满足交换律，所以顺序很重要\n  _parseTransformString(e) {\n    return _o(e).forEach(({ command: n, values: r }) => {\n      switch (n) {\n        case \"m\":\n        case \"matrix\":\n        case \"matrix3d\":\n          this._fromArray(r.map((s) => s.v));\n          break;\n        case \"t\":\n        case \"translate\":\n        case \"translate3d\":\n          this.translateSelf(\n            r[0]?.v || 0,\n            r[1]?.v || 0,\n            r[2]?.v || 0\n          );\n          break;\n        case \"translateX\":\n          this.translateSelf(r[0]?.v || 0, 0, 0);\n          break;\n        case \"translateY\":\n          this.translateSelf(0, r[0]?.v || 0, 0);\n          break;\n        case \"translateZ\":\n          this.translateSelf(0, 0, r[0]?.v || 0);\n          break;\n        case \"r\":\n        case \"rotate\":\n        case \"rotateZ\":\n          this.rotateSelf(V(r[0], 0), 0, 0, 1);\n          break;\n        case \"rotateX\":\n          this.rotateSelf(V(r[0], 0), 1, 0, 0);\n          break;\n        case \"rotateY\":\n          this.rotateSelf(V(r[0], 0), 0, 1, 0);\n          break;\n        case \"rotate3d\":\n          this.rotateSelf(\n            V(r[3], 0),\n            V(r[0], 0),\n            V(r[1], 0),\n            V(r[2], 0)\n          );\n          break;\n        case \"s\":\n        case \"scale\":\n        case \"scale3d\":\n          this.scaleSelf(\n            r[0]?.v || 1,\n            r[1]?.v || r[0]?.v || 1,\n            r[2]?.v || 1\n          );\n          break;\n        case \"scaleX\":\n          this.scaleSelf(r[0]?.v || 1, 1, 1);\n          break;\n        case \"scaleY\":\n          this.scaleSelf(1, r[0]?.v || 1, 1);\n          break;\n        case \"scaleZ\":\n          this.scaleSelf(1, 1, r[0]?.v || 1);\n          break;\n        case \"skewX\":\n          this.skewXSelf(V(r[0], 0));\n          break;\n        case \"skewY\":\n          this.skewYSelf(V(r[0], 0));\n          break;\n        case \"none\":\n        default:\n          oi(`Unsupported transform function: ${n}`);\n      }\n    }), this;\n  }\n  // other * this  =>  this first, then other\n  multiply(e) {\n    return this.clone().multiplySelf(e);\n  }\n  // other * this  =>  this first, then other\n  multiplySelf(e) {\n    const n = this.elements, r = e.elements, s = new Float64Array(16);\n    for (let i = 0; i < 4; i++)\n      for (let o = 0; o < 4; o++)\n        s[i * 4 + o] = n[i * 4 + 0] * r[0 * 4 + o] + n[i * 4 + 1] * r[1 * 4 + o] + n[i * 4 + 2] * r[2 * 4 + o] + n[i * 4 + 3] * r[3 * 4 + o];\n    return this._elements.set(s), this;\n  }\n  translate(e, n = 0, r = 0) {\n    return this.clone().translateSelf(e, n, r);\n  }\n  translateSelf(e, n = 0, r = 0) {\n    const s = new q();\n    if (this.isCoordinateChanged) {\n      const i = this.transformPoint(new O(e, n, r));\n      s.m41 = i.x, s.m42 = i.y, s.m43 = i.z;\n    } else\n      s.m41 = e, s.m42 = n, s.m43 = r;\n    return this.multiplySelf(s);\n  }\n  rotate(e, n = 0, r = 0, s = 1) {\n    return this.clone().rotateSelf(e, n, r, s);\n  }\n  // x, y, z 代表旋转轴的方向向量\n  // 对于多个旋转，通常是先绕 Z 轴旋转，然后绕 Y 轴，再绕 X 轴\n  rotateSelf(e, n = 0, r = 0, s = 1) {\n    if (this.isCoordinateChanged) {\n      const u = this.transformPoint(new O(n, r, s));\n      n = u.x, r = u.y, s = u.z;\n    }\n    const i = e * Math.PI / 180, o = Math.cos(i), a = Math.sin(i), c = new q();\n    if (n === 0 && r === 0 && s === 1)\n      c.m11 = o, c.m12 = a, c.m21 = -a, c.m22 = o;\n    else if (n === 1 && r === 0 && s === 0)\n      c.m22 = o, c.m23 = a, c.m32 = -a, c.m33 = o;\n    else if (n === 0 && r === 1 && s === 0)\n      c.m11 = o, c.m13 = -a, c.m31 = a, c.m33 = o;\n    else {\n      const u = Math.sqrt(n * n + r * r + s * s) || 1;\n      if (u == 0)\n        return this;\n      const l = n / u, h = r / u, m = s / u, d = 1 - o;\n      c.m11 = o + l * l * d, c.m12 = l * h * d + m * a, c.m13 = l * m * d - h * a, c.m21 = h * l * d - m * a, c.m22 = o + h * h * d, c.m23 = h * m * d + l * a, c.m31 = m * l * d + h * a, c.m32 = m * h * d - l * a, c.m33 = o + m * m * d;\n    }\n    return this.multiplySelf(c);\n  }\n  scale(e, n = e, r = 1) {\n    return this.clone().scaleSelf(e, n, r);\n  }\n  scaleSelf(e, n = e, r = 1) {\n    const s = new q();\n    return s.m11 = e, s.m22 = n, s.m33 = r, this.multiplySelf(s);\n  }\n  skewX(e) {\n    return this.clone().skewXSelf(e);\n  }\n  skewXSelf(e) {\n    const n = e * Math.PI / 180, r = new q();\n    return r.m21 = Math.tan(n), this.multiplySelf(r);\n  }\n  skewY(e) {\n    return this.clone().skewYSelf(e);\n  }\n  skewYSelf(e) {\n    const n = e * Math.PI / 180, r = new q();\n    return r.m12 = Math.tan(n), this.multiplySelf(r);\n  }\n  // skewZ(degree: number): DomMatrix {\n  //   return this.clone().skewZSelf(degree);\n  // }\n  // skewZSelf(degree: number): this {\n  //   const rad = (degree * Math.PI) / 180;\n  //   const skew = new DomMatrix();\n  //   skew.m13 = Math.tan(rad); // c参数\n  //   // if (skew.m13 !== 0) {\n  //   //   this.isCoordinateChanged = true;\n  //   // }\n  //   return this.multiplySelf(skew);\n  // }\n  to2D() {\n    return new q([\n      this.a,\n      this.b,\n      this.c,\n      this.d,\n      this.e,\n      this.f\n    ]);\n  }\n  // 正射投影\n  // | 2/(r-l)   0         0      -(r+l)/(r-l) |\n  // | 0         2/(t-b)   0      -(t+b)/(t-b) |\n  // | 0         0         -2/(f-n)  -(f+n)/(f-n) |\n  // | 0         0         0       1            |\n  // 透视投影\n  // | 2n/(r-l)  0        (r+l)/(r-l)   0       |\n  // | 0        2n/(t-b)  (t+b)/(t-b)   0       |\n  // | 0        0        -(f+n)/(f-n)   -2fn/(f-n) |\n  // | 0        0        -1             0       |\n  inverse() {\n    return this.clone().invertSelf();\n  }\n  /**\n   * Inverts the matrix\n   * -> based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n   * -> based on https://github.com/mrdoob/three.js/blob/master/src/math/Matrix4.js\n   */\n  invertSelf() {\n    if (this.is2D) {\n      const e = this.a * this.d - this.b * this.c;\n      if (e === 0)\n        throw new Error(\"Matrix is not invertible.\");\n      const n = 1 / e;\n      return this.multiplySelf(\n        new q([\n          this.d * n,\n          -this.b * n,\n          -this.c * n,\n          this.a * n,\n          (this.c * this.f - this.d * this.e) * n,\n          (this.b * this.e - this.a * this.f) * n\n        ])\n      );\n    } else {\n      const e = Array.from(this.elements), n = e[0], r = e[1], s = e[2], i = e[3], o = e[4], a = e[5], c = e[6], u = e[7], l = e[8], h = e[9], m = e[10], d = e[11], p = e[12], g = e[13], y = e[14], w = e[15], x = h * y * u - g * m * u + g * c * d - a * y * d - h * c * w + a * m * w, A = p * m * u - l * y * u - p * c * d + o * y * d + l * c * w - o * m * w, I = l * g * u - p * h * u + p * a * d - o * g * d - l * a * w + o * h * w, T = p * h * c - l * g * c - p * a * m + o * g * m + l * a * y - o * h * y, F = n * x + r * A + s * I + i * T;\n      if (F === 0)\n        throw new Error(\"Matrix is not invertible.\");\n      const S = 1 / F;\n      return e[0] = x * S, e[1] = (g * m * i - h * y * i - g * s * d + r * y * d + h * s * w - r * m * w) * S, e[2] = (a * y * i - g * c * i + g * s * u - r * y * u - a * s * w + r * c * w) * S, e[3] = (h * c * i - a * m * i - h * s * u + r * m * u + a * s * d - r * c * d) * S, e[4] = A * S, e[5] = (l * y * i - p * m * i + p * s * d - n * y * d - l * s * w + n * m * w) * S, e[6] = (p * c * i - o * y * i - p * s * u + n * y * u + o * s * w - n * c * w) * S, e[7] = (o * m * i - l * c * i + l * s * u - n * m * u - o * s * d + n * c * d) * S, e[8] = I * S, e[9] = (p * h * i - l * g * i - p * r * d + n * g * d + l * r * w - n * h * w) * S, e[10] = (o * g * i - p * a * i + p * r * u - n * g * u - o * r * w + n * a * w) * S, e[11] = (l * a * i - o * h * i - l * r * u + n * h * u + o * r * d - n * a * d) * S, e[12] = T * S, e[13] = (l * g * s - p * h * s + p * r * m - n * g * m - l * r * y + n * h * y) * S, e[14] = (p * a * s - o * g * s - p * r * c + n * g * c + o * r * y - n * a * y) * S, e[15] = (o * h * s - l * a * s + l * r * c - n * h * c - o * r * m + n * a * m) * S, this._elements.set(e), this;\n    }\n  }\n  transformPoint(e) {\n    const { x: n = 0, y: r = 0, z: s = 0, w: i = 1 } = e, o = new O(\n      this.m11 * n + this.m21 * r + this.m31 * s + this.m41 * i,\n      this.m12 * n + this.m22 * r + this.m32 * s + this.m42 * i,\n      this.m13 * n + this.m23 * r + this.m33 * s + this.m43 * i,\n      this.m14 * n + this.m24 * r + this.m34 * s + this.m44 * i\n    );\n    return o.w !== 1 && (o.x /= o.w, o.y /= o.w, o.z /= o.w), o;\n  }\n  toString(e = 6) {\n    return this.is2D ? `matrix(${[\n      K(this.a, e),\n      K(this.b, e),\n      K(this.c, e),\n      K(this.d, e),\n      K(this.e, e),\n      K(this.f, e)\n    ].join(\", \")})` : `matrix3d(${Array.from(this.elements).map((n) => K(n, e)).join(\", \")})`;\n  }\n  toArray() {\n    return this.is2D ? [this.a, this.b, this.c, this.d, this.e, this.f] : [\n      this.m11,\n      this.m12,\n      this.m13,\n      this.m14,\n      this.m21,\n      this.m22,\n      this.m23,\n      this.m24,\n      this.m31,\n      this.m32,\n      this.m33,\n      this.m34,\n      this.m41,\n      this.m42,\n      this.m43,\n      this.m44\n    ];\n  }\n  clone() {\n    return new q(this);\n  }\n  split() {\n    const e = Math.sqrt(\n      this.m11 * this.m11 + this.m12 * this.m12 + this.m13 * this.m13\n    ), n = Math.sqrt(\n      this.m21 * this.m21 + this.m22 * this.m22 + this.m23 * this.m23\n    ), r = Math.sqrt(\n      this.m31 * this.m31 + this.m32 * this.m32 + this.m33 * this.m33\n    ), s = z(ce(Math.asin(-this.m13), -1, 1));\n    let i = z(Math.atan2(this.m23, this.m33));\n    Math.cos(Ro(s)) === 0 && (i = z(Math.atan2(-this.m31, this.m22)));\n    let o = z(Math.atan2(this.m12, this.m11));\n    return this.m11 < 0 && this.m22 >= 0 && (o += 180), {\n      x: this.m41,\n      y: this.m42,\n      z: this.m43,\n      scalarX: e,\n      scalarY: n,\n      scalarZ: r,\n      degreeX: i,\n      degreeY: s,\n      degreeZ: o,\n      skewX: z(this.m14),\n      skewY: z(this.m24),\n      skewZ: z(this.m34),\n      skewW: this.m44,\n      perspective: this.m34 ? -(1 / this.m34) : 0\n    };\n  }\n  // 行列式\n  determinant() {\n    if (this.is2D)\n      return this.a * this.d - this.b * this.c;\n    const e = this.elements, n = e[0], r = e[4], s = e[8], i = e[12], o = e[1], a = e[5], c = e[9], u = e[13], l = e[2], h = e[6], m = e[10], d = e[14], p = e[3], g = e[7], y = e[11], w = e[15];\n    return p * (+i * c * h - s * u * h - i * a * m + r * u * m + s * a * d - r * c * d) + g * (+n * c * d - n * u * m + i * o * m - s * o * d + s * u * l - i * c * l) + y * (+n * u * h - n * a * d - i * o * h + r * o * d + i * a * l - r * u * l) + w * (-s * a * l - n * c * h + n * a * m + s * o * h - r * o * m + r * c * l);\n  }\n}\nfunction yr(t, e) {\n  return function() {\n    return t.apply(e, arguments);\n  };\n}\nconst { toString: To } = Object.prototype, { getPrototypeOf: Yt } = Object, st = ((t) => (e) => {\n  const n = To.call(e);\n  return t[n] || (t[n] = n.slice(8, -1).toLowerCase());\n})(/* @__PURE__ */ Object.create(null)), B = (t) => (t = t.toLowerCase(), (e) => st(e) === t), it = (t) => (e) => typeof e === t, { isArray: he } = Array, Se = it(\"undefined\");\nfunction Eo(t) {\n  return t !== null && !Se(t) && t.constructor !== null && !Se(t.constructor) && M(t.constructor.isBuffer) && t.constructor.isBuffer(t);\n}\nconst wr = B(\"ArrayBuffer\");\nfunction ko(t) {\n  let e;\n  return typeof ArrayBuffer < \"u\" && ArrayBuffer.isView ? e = ArrayBuffer.isView(t) : e = t && t.buffer && wr(t.buffer), e;\n}\nconst Co = it(\"string\"), M = it(\"function\"), br = it(\"number\"), ot = (t) => t !== null && typeof t == \"object\", Po = (t) => t === !0 || t === !1, Le = (t) => {\n  if (st(t) !== \"object\")\n    return !1;\n  const e = Yt(t);\n  return (e === null || e === Object.prototype || Object.getPrototypeOf(e) === null) && !(Symbol.toStringTag in t) && !(Symbol.iterator in t);\n}, Do = B(\"Date\"), Mo = B(\"File\"), Io = B(\"Blob\"), Lo = B(\"FileList\"), $o = (t) => ot(t) && M(t.pipe), Fo = (t) => {\n  let e;\n  return t && (typeof FormData == \"function\" && t instanceof FormData || M(t.append) && ((e = st(t)) === \"formdata\" || // detect form-data instance\n  e === \"object\" && M(t.toString) && t.toString() === \"[object FormData]\"));\n}, No = B(\"URLSearchParams\"), [Uo, Bo, jo, qo] = [\"ReadableStream\", \"Request\", \"Response\", \"Headers\"].map(B), zo = (t) => t.trim ? t.trim() : t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\");\nfunction _e(t, e, { allOwnKeys: n = !1 } = {}) {\n  if (t === null || typeof t > \"u\")\n    return;\n  let r, s;\n  if (typeof t != \"object\" && (t = [t]), he(t))\n    for (r = 0, s = t.length; r < s; r++)\n      e.call(null, t[r], r, t);\n  else {\n    const i = n ? Object.getOwnPropertyNames(t) : Object.keys(t), o = i.length;\n    let a;\n    for (r = 0; r < o; r++)\n      a = i[r], e.call(null, t[a], a, t);\n  }\n}\nfunction Sr(t, e) {\n  e = e.toLowerCase();\n  const n = Object.keys(t);\n  let r = n.length, s;\n  for (; r-- > 0; )\n    if (s = n[r], e === s.toLowerCase())\n      return s;\n  return null;\n}\nconst ne = (() => typeof globalThis < \"u\" ? globalThis : typeof self < \"u\" ? self : typeof window < \"u\" ? window : global)(), xr = (t) => !Se(t) && t !== ne;\nfunction Tt() {\n  const { caseless: t } = xr(this) && this || {}, e = {}, n = (r, s) => {\n    const i = t && Sr(e, s) || s;\n    Le(e[i]) && Le(r) ? e[i] = Tt(e[i], r) : Le(r) ? e[i] = Tt({}, r) : he(r) ? e[i] = r.slice() : e[i] = r;\n  };\n  for (let r = 0, s = arguments.length; r < s; r++)\n    arguments[r] && _e(arguments[r], n);\n  return e;\n}\nconst Ho = (t, e, n, { allOwnKeys: r } = {}) => (_e(e, (s, i) => {\n  n && M(s) ? t[i] = yr(s, n) : t[i] = s;\n}, { allOwnKeys: r }), t), Vo = (t) => (t.charCodeAt(0) === 65279 && (t = t.slice(1)), t), Wo = (t, e, n, r) => {\n  t.prototype = Object.create(e.prototype, r), t.prototype.constructor = t, Object.defineProperty(t, \"super\", {\n    value: e.prototype\n  }), n && Object.assign(t.prototype, n);\n}, Go = (t, e, n, r) => {\n  let s, i, o;\n  const a = {};\n  if (e = e || {}, t == null)\n    return e;\n  do {\n    for (s = Object.getOwnPropertyNames(t), i = s.length; i-- > 0; )\n      o = s[i], (!r || r(o, t, e)) && !a[o] && (e[o] = t[o], a[o] = !0);\n    t = n !== !1 && Yt(t);\n  } while (t && (!n || n(t, e)) && t !== Object.prototype);\n  return e;\n}, Xo = (t, e, n) => {\n  t = String(t), (n === void 0 || n > t.length) && (n = t.length), n -= e.length;\n  const r = t.indexOf(e, n);\n  return r !== -1 && r === n;\n}, Jo = (t) => {\n  if (!t)\n    return null;\n  if (he(t))\n    return t;\n  let e = t.length;\n  if (!br(e))\n    return null;\n  const n = new Array(e);\n  for (; e-- > 0; )\n    n[e] = t[e];\n  return n;\n}, Yo = ((t) => (e) => t && e instanceof t)(typeof Uint8Array < \"u\" && Yt(Uint8Array)), Zo = (t, e) => {\n  const r = (t && t[Symbol.iterator]).call(t);\n  let s;\n  for (; (s = r.next()) && !s.done; ) {\n    const i = s.value;\n    e.call(t, i[0], i[1]);\n  }\n}, Ko = (t, e) => {\n  let n;\n  const r = [];\n  for (; (n = t.exec(e)) !== null; )\n    r.push(n);\n  return r;\n}, Qo = B(\"HTMLFormElement\"), e0 = (t) => t.toLowerCase().replace(\n  /[-_\\s]([a-z\\d])(\\w*)/g,\n  function(n, r, s) {\n    return r.toUpperCase() + s;\n  }\n), xn = (({ hasOwnProperty: t }) => (e, n) => t.call(e, n))(Object.prototype), t0 = B(\"RegExp\"), Ar = (t, e) => {\n  const n = Object.getOwnPropertyDescriptors(t), r = {};\n  _e(n, (s, i) => {\n    let o;\n    (o = e(s, i, t)) !== !1 && (r[i] = o || s);\n  }), Object.defineProperties(t, r);\n}, n0 = (t) => {\n  Ar(t, (e, n) => {\n    if (M(t) && [\"arguments\", \"caller\", \"callee\"].indexOf(n) !== -1)\n      return !1;\n    const r = t[n];\n    if (M(r)) {\n      if (e.enumerable = !1, \"writable\" in e) {\n        e.writable = !1;\n        return;\n      }\n      e.set || (e.set = () => {\n        throw Error(\"Can not rewrite read-only method '\" + n + \"'\");\n      });\n    }\n  });\n}, r0 = (t, e) => {\n  const n = {}, r = (s) => {\n    s.forEach((i) => {\n      n[i] = !0;\n    });\n  };\n  return he(t) ? r(t) : r(String(t).split(e)), n;\n}, s0 = () => {\n}, i0 = (t, e) => t != null && Number.isFinite(t = +t) ? t : e;\nfunction o0(t) {\n  return !!(t && M(t.append) && t[Symbol.toStringTag] === \"FormData\" && t[Symbol.iterator]);\n}\nconst a0 = (t) => {\n  const e = new Array(10), n = (r, s) => {\n    if (ot(r)) {\n      if (e.indexOf(r) >= 0)\n        return;\n      if (!(\"toJSON\" in r)) {\n        e[s] = r;\n        const i = he(r) ? [] : {};\n        return _e(r, (o, a) => {\n          const c = n(o, s + 1);\n          !Se(c) && (i[a] = c);\n        }), e[s] = void 0, i;\n      }\n    }\n    return r;\n  };\n  return n(t, 0);\n}, c0 = B(\"AsyncFunction\"), u0 = (t) => t && (ot(t) || M(t)) && M(t.then) && M(t.catch), Or = ((t, e) => t ? setImmediate : e ? ((n, r) => (ne.addEventListener(\"message\", ({ source: s, data: i }) => {\n  s === ne && i === n && r.length && r.shift()();\n}, !1), (s) => {\n  r.push(s), ne.postMessage(n, \"*\");\n}))(`axios@${Math.random()}`, []) : (n) => setTimeout(n))(\n  typeof setImmediate == \"function\",\n  M(ne.postMessage)\n), l0 = typeof queueMicrotask < \"u\" ? queueMicrotask.bind(ne) : typeof process < \"u\" && process.nextTick || Or, f = {\n  isArray: he,\n  isArrayBuffer: wr,\n  isBuffer: Eo,\n  isFormData: Fo,\n  isArrayBufferView: ko,\n  isString: Co,\n  isNumber: br,\n  isBoolean: Po,\n  isObject: ot,\n  isPlainObject: Le,\n  isReadableStream: Uo,\n  isRequest: Bo,\n  isResponse: jo,\n  isHeaders: qo,\n  isUndefined: Se,\n  isDate: Do,\n  isFile: Mo,\n  isBlob: Io,\n  isRegExp: t0,\n  isFunction: M,\n  isStream: $o,\n  isURLSearchParams: No,\n  isTypedArray: Yo,\n  isFileList: Lo,\n  forEach: _e,\n  merge: Tt,\n  extend: Ho,\n  trim: zo,\n  stripBOM: Vo,\n  inherits: Wo,\n  toFlatObject: Go,\n  kindOf: st,\n  kindOfTest: B,\n  endsWith: Xo,\n  toArray: Jo,\n  forEachEntry: Zo,\n  matchAll: Ko,\n  isHTMLForm: Qo,\n  hasOwnProperty: xn,\n  hasOwnProp: xn,\n  // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors: Ar,\n  freezeMethods: n0,\n  toObjectSet: r0,\n  toCamelCase: e0,\n  noop: s0,\n  toFiniteNumber: i0,\n  findKey: Sr,\n  global: ne,\n  isContextDefined: xr,\n  isSpecCompliantForm: o0,\n  toJSONObject: a0,\n  isAsyncFn: c0,\n  isThenable: u0,\n  setImmediate: Or,\n  asap: l0\n};\nfunction b(t, e, n, r, s) {\n  Error.call(this), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack, this.message = t, this.name = \"AxiosError\", e && (this.code = e), n && (this.config = n), r && (this.request = r), s && (this.response = s, this.status = s.status ? s.status : null);\n}\nf.inherits(b, Error, {\n  toJSON: function() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: f.toJSONObject(this.config),\n      code: this.code,\n      status: this.status\n    };\n  }\n});\nconst vr = b.prototype, Rr = {};\n[\n  \"ERR_BAD_OPTION_VALUE\",\n  \"ERR_BAD_OPTION\",\n  \"ECONNABORTED\",\n  \"ETIMEDOUT\",\n  \"ERR_NETWORK\",\n  \"ERR_FR_TOO_MANY_REDIRECTS\",\n  \"ERR_DEPRECATED\",\n  \"ERR_BAD_RESPONSE\",\n  \"ERR_BAD_REQUEST\",\n  \"ERR_CANCELED\",\n  \"ERR_NOT_SUPPORT\",\n  \"ERR_INVALID_URL\"\n  // eslint-disable-next-line func-names\n].forEach((t) => {\n  Rr[t] = { value: t };\n});\nObject.defineProperties(b, Rr);\nObject.defineProperty(vr, \"isAxiosError\", { value: !0 });\nb.from = (t, e, n, r, s, i) => {\n  const o = Object.create(vr);\n  return f.toFlatObject(t, o, function(c) {\n    return c !== Error.prototype;\n  }, (a) => a !== \"isAxiosError\"), b.call(o, t.message, e, n, r, s), o.cause = t, o.name = t.name, i && Object.assign(o, i), o;\n};\nconst f0 = null;\nfunction Et(t) {\n  return f.isPlainObject(t) || f.isArray(t);\n}\nfunction _r(t) {\n  return f.endsWith(t, \"[]\") ? t.slice(0, -2) : t;\n}\nfunction An(t, e, n) {\n  return t ? t.concat(e).map(function(s, i) {\n    return s = _r(s), !n && i ? \"[\" + s + \"]\" : s;\n  }).join(n ? \".\" : \"\") : e;\n}\nfunction h0(t) {\n  return f.isArray(t) && !t.some(Et);\n}\nconst d0 = f.toFlatObject(f, {}, null, function(e) {\n  return /^is[A-Z]/.test(e);\n});\nfunction at(t, e, n) {\n  if (!f.isObject(t))\n    throw new TypeError(\"target must be an object\");\n  e = e || new FormData(), n = f.toFlatObject(n, {\n    metaTokens: !0,\n    dots: !1,\n    indexes: !1\n  }, !1, function(g, y) {\n    return !f.isUndefined(y[g]);\n  });\n  const r = n.metaTokens, s = n.visitor || l, i = n.dots, o = n.indexes, c = (n.Blob || typeof Blob < \"u\" && Blob) && f.isSpecCompliantForm(e);\n  if (!f.isFunction(s))\n    throw new TypeError(\"visitor must be a function\");\n  function u(p) {\n    if (p === null)\n      return \"\";\n    if (f.isDate(p))\n      return p.toISOString();\n    if (!c && f.isBlob(p))\n      throw new b(\"Blob is not supported. Use a Buffer instead.\");\n    return f.isArrayBuffer(p) || f.isTypedArray(p) ? c && typeof Blob == \"function\" ? new Blob([p]) : Buffer.from(p) : p;\n  }\n  function l(p, g, y) {\n    let w = p;\n    if (p && !y && typeof p == \"object\") {\n      if (f.endsWith(g, \"{}\"))\n        g = r ? g : g.slice(0, -2), p = JSON.stringify(p);\n      else if (f.isArray(p) && h0(p) || (f.isFileList(p) || f.endsWith(g, \"[]\")) && (w = f.toArray(p)))\n        return g = _r(g), w.forEach(function(A, I) {\n          !(f.isUndefined(A) || A === null) && e.append(\n            // eslint-disable-next-line no-nested-ternary\n            o === !0 ? An([g], I, i) : o === null ? g : g + \"[]\",\n            u(A)\n          );\n        }), !1;\n    }\n    return Et(p) ? !0 : (e.append(An(y, g, i), u(p)), !1);\n  }\n  const h = [], m = Object.assign(d0, {\n    defaultVisitor: l,\n    convertValue: u,\n    isVisitable: Et\n  });\n  function d(p, g) {\n    if (!f.isUndefined(p)) {\n      if (h.indexOf(p) !== -1)\n        throw Error(\"Circular reference detected in \" + g.join(\".\"));\n      h.push(p), f.forEach(p, function(w, x) {\n        (!(f.isUndefined(w) || w === null) && s.call(\n          e,\n          w,\n          f.isString(x) ? x.trim() : x,\n          g,\n          m\n        )) === !0 && d(w, g ? g.concat(x) : [x]);\n      }), h.pop();\n    }\n  }\n  if (!f.isObject(t))\n    throw new TypeError(\"data must be an object\");\n  return d(t), e;\n}\nfunction On(t) {\n  const e = {\n    \"!\": \"%21\",\n    \"'\": \"%27\",\n    \"(\": \"%28\",\n    \")\": \"%29\",\n    \"~\": \"%7E\",\n    \"%20\": \"+\",\n    \"%00\": \"\\0\"\n  };\n  return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g, function(r) {\n    return e[r];\n  });\n}\nfunction Zt(t, e) {\n  this._pairs = [], t && at(t, this, e);\n}\nconst Tr = Zt.prototype;\nTr.append = function(e, n) {\n  this._pairs.push([e, n]);\n};\nTr.toString = function(e) {\n  const n = e ? function(r) {\n    return e.call(this, r, On);\n  } : On;\n  return this._pairs.map(function(s) {\n    return n(s[0]) + \"=\" + n(s[1]);\n  }, \"\").join(\"&\");\n};\nfunction p0(t) {\n  return encodeURIComponent(t).replace(/%3A/gi, \":\").replace(/%24/g, \"$\").replace(/%2C/gi, \",\").replace(/%20/g, \"+\").replace(/%5B/gi, \"[\").replace(/%5D/gi, \"]\");\n}\nfunction Er(t, e, n) {\n  if (!e)\n    return t;\n  const r = n && n.encode || p0;\n  f.isFunction(n) && (n = {\n    serialize: n\n  });\n  const s = n && n.serialize;\n  let i;\n  if (s ? i = s(e, n) : i = f.isURLSearchParams(e) ? e.toString() : new Zt(e, n).toString(r), i) {\n    const o = t.indexOf(\"#\");\n    o !== -1 && (t = t.slice(0, o)), t += (t.indexOf(\"?\") === -1 ? \"?\" : \"&\") + i;\n  }\n  return t;\n}\nclass m0 {\n  constructor() {\n    this.handlers = [];\n  }\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(e, n, r) {\n    return this.handlers.push({\n      fulfilled: e,\n      rejected: n,\n      synchronous: r ? r.synchronous : !1,\n      runWhen: r ? r.runWhen : null\n    }), this.handlers.length - 1;\n  }\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(e) {\n    this.handlers[e] && (this.handlers[e] = null);\n  }\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    this.handlers && (this.handlers = []);\n  }\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(e) {\n    f.forEach(this.handlers, function(r) {\n      r !== null && e(r);\n    });\n  }\n}\nconst vn = m0, kr = {\n  silentJSONParsing: !0,\n  forcedJSONParsing: !0,\n  clarifyTimeoutError: !1\n}, g0 = typeof URLSearchParams < \"u\" ? URLSearchParams : Zt, y0 = typeof FormData < \"u\" ? FormData : null, w0 = typeof Blob < \"u\" ? Blob : null, b0 = {\n  isBrowser: !0,\n  classes: {\n    URLSearchParams: g0,\n    FormData: y0,\n    Blob: w0\n  },\n  protocols: [\"http\", \"https\", \"file\", \"blob\", \"url\", \"data\"]\n}, Kt = typeof window < \"u\" && typeof document < \"u\", kt = typeof navigator == \"object\" && navigator || void 0, S0 = Kt && (!kt || [\"ReactNative\", \"NativeScript\", \"NS\"].indexOf(kt.product) < 0), x0 = (() => typeof WorkerGlobalScope < \"u\" && // eslint-disable-next-line no-undef\nself instanceof WorkerGlobalScope && typeof self.importScripts == \"function\")(), A0 = Kt && window.location.href || \"http://localhost\", O0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  hasBrowserEnv: Kt,\n  hasStandardBrowserEnv: S0,\n  hasStandardBrowserWebWorkerEnv: x0,\n  navigator: kt,\n  origin: A0\n}, Symbol.toStringTag, { value: \"Module\" })), k = {\n  ...O0,\n  ...b0\n};\nfunction v0(t, e) {\n  return at(t, new k.classes.URLSearchParams(), Object.assign({\n    visitor: function(n, r, s, i) {\n      return k.isNode && f.isBuffer(n) ? (this.append(r, n.toString(\"base64\")), !1) : i.defaultVisitor.apply(this, arguments);\n    }\n  }, e));\n}\nfunction R0(t) {\n  return f.matchAll(/\\w+|\\[(\\w*)]/g, t).map((e) => e[0] === \"[]\" ? \"\" : e[1] || e[0]);\n}\nfunction _0(t) {\n  const e = {}, n = Object.keys(t);\n  let r;\n  const s = n.length;\n  let i;\n  for (r = 0; r < s; r++)\n    i = n[r], e[i] = t[i];\n  return e;\n}\nfunction Cr(t) {\n  function e(n, r, s, i) {\n    let o = n[i++];\n    if (o === \"__proto__\")\n      return !0;\n    const a = Number.isFinite(+o), c = i >= n.length;\n    return o = !o && f.isArray(s) ? s.length : o, c ? (f.hasOwnProp(s, o) ? s[o] = [s[o], r] : s[o] = r, !a) : ((!s[o] || !f.isObject(s[o])) && (s[o] = []), e(n, r, s[o], i) && f.isArray(s[o]) && (s[o] = _0(s[o])), !a);\n  }\n  if (f.isFormData(t) && f.isFunction(t.entries)) {\n    const n = {};\n    return f.forEachEntry(t, (r, s) => {\n      e(R0(r), s, n, 0);\n    }), n;\n  }\n  return null;\n}\nfunction T0(t, e, n) {\n  if (f.isString(t))\n    try {\n      return (e || JSON.parse)(t), f.trim(t);\n    } catch (r) {\n      if (r.name !== \"SyntaxError\")\n        throw r;\n    }\n  return (n || JSON.stringify)(t);\n}\nconst Qt = {\n  transitional: kr,\n  adapter: [\"xhr\", \"http\", \"fetch\"],\n  transformRequest: [function(e, n) {\n    const r = n.getContentType() || \"\", s = r.indexOf(\"application/json\") > -1, i = f.isObject(e);\n    if (i && f.isHTMLForm(e) && (e = new FormData(e)), f.isFormData(e))\n      return s ? JSON.stringify(Cr(e)) : e;\n    if (f.isArrayBuffer(e) || f.isBuffer(e) || f.isStream(e) || f.isFile(e) || f.isBlob(e) || f.isReadableStream(e))\n      return e;\n    if (f.isArrayBufferView(e))\n      return e.buffer;\n    if (f.isURLSearchParams(e))\n      return n.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\", !1), e.toString();\n    let a;\n    if (i) {\n      if (r.indexOf(\"application/x-www-form-urlencoded\") > -1)\n        return v0(e, this.formSerializer).toString();\n      if ((a = f.isFileList(e)) || r.indexOf(\"multipart/form-data\") > -1) {\n        const c = this.env && this.env.FormData;\n        return at(\n          a ? { \"files[]\": e } : e,\n          c && new c(),\n          this.formSerializer\n        );\n      }\n    }\n    return i || s ? (n.setContentType(\"application/json\", !1), T0(e)) : e;\n  }],\n  transformResponse: [function(e) {\n    const n = this.transitional || Qt.transitional, r = n && n.forcedJSONParsing, s = this.responseType === \"json\";\n    if (f.isResponse(e) || f.isReadableStream(e))\n      return e;\n    if (e && f.isString(e) && (r && !this.responseType || s)) {\n      const o = !(n && n.silentJSONParsing) && s;\n      try {\n        return JSON.parse(e);\n      } catch (a) {\n        if (o)\n          throw a.name === \"SyntaxError\" ? b.from(a, b.ERR_BAD_RESPONSE, this, null, this.response) : a;\n      }\n    }\n    return e;\n  }],\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n  xsrfCookieName: \"XSRF-TOKEN\",\n  xsrfHeaderName: \"X-XSRF-TOKEN\",\n  maxContentLength: -1,\n  maxBodyLength: -1,\n  env: {\n    FormData: k.classes.FormData,\n    Blob: k.classes.Blob\n  },\n  validateStatus: function(e) {\n    return e >= 200 && e < 300;\n  },\n  headers: {\n    common: {\n      Accept: \"application/json, text/plain, */*\",\n      \"Content-Type\": void 0\n    }\n  }\n};\nf.forEach([\"delete\", \"get\", \"head\", \"post\", \"put\", \"patch\"], (t) => {\n  Qt.headers[t] = {};\n});\nconst en = Qt, E0 = f.toObjectSet([\n  \"age\",\n  \"authorization\",\n  \"content-length\",\n  \"content-type\",\n  \"etag\",\n  \"expires\",\n  \"from\",\n  \"host\",\n  \"if-modified-since\",\n  \"if-unmodified-since\",\n  \"last-modified\",\n  \"location\",\n  \"max-forwards\",\n  \"proxy-authorization\",\n  \"referer\",\n  \"retry-after\",\n  \"user-agent\"\n]), k0 = (t) => {\n  const e = {};\n  let n, r, s;\n  return t && t.split(`\n`).forEach(function(o) {\n    s = o.indexOf(\":\"), n = o.substring(0, s).trim().toLowerCase(), r = o.substring(s + 1).trim(), !(!n || e[n] && E0[n]) && (n === \"set-cookie\" ? e[n] ? e[n].push(r) : e[n] = [r] : e[n] = e[n] ? e[n] + \", \" + r : r);\n  }), e;\n}, Rn = Symbol(\"internals\");\nfunction me(t) {\n  return t && String(t).trim().toLowerCase();\n}\nfunction $e(t) {\n  return t === !1 || t == null ? t : f.isArray(t) ? t.map($e) : String(t);\n}\nfunction C0(t) {\n  const e = /* @__PURE__ */ Object.create(null), n = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let r;\n  for (; r = n.exec(t); )\n    e[r[1]] = r[2];\n  return e;\n}\nconst P0 = (t) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());\nfunction pt(t, e, n, r, s) {\n  if (f.isFunction(r))\n    return r.call(this, e, n);\n  if (s && (e = n), !!f.isString(e)) {\n    if (f.isString(r))\n      return e.indexOf(r) !== -1;\n    if (f.isRegExp(r))\n      return r.test(e);\n  }\n}\nfunction D0(t) {\n  return t.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g, (e, n, r) => n.toUpperCase() + r);\n}\nfunction M0(t, e) {\n  const n = f.toCamelCase(\" \" + e);\n  [\"get\", \"set\", \"has\"].forEach((r) => {\n    Object.defineProperty(t, r + n, {\n      value: function(s, i, o) {\n        return this[r].call(this, e, s, i, o);\n      },\n      configurable: !0\n    });\n  });\n}\nclass ct {\n  constructor(e) {\n    e && this.set(e);\n  }\n  set(e, n, r) {\n    const s = this;\n    function i(a, c, u) {\n      const l = me(c);\n      if (!l)\n        throw new Error(\"header name must be a non-empty string\");\n      const h = f.findKey(s, l);\n      (!h || s[h] === void 0 || u === !0 || u === void 0 && s[h] !== !1) && (s[h || c] = $e(a));\n    }\n    const o = (a, c) => f.forEach(a, (u, l) => i(u, l, c));\n    if (f.isPlainObject(e) || e instanceof this.constructor)\n      o(e, n);\n    else if (f.isString(e) && (e = e.trim()) && !P0(e))\n      o(k0(e), n);\n    else if (f.isHeaders(e))\n      for (const [a, c] of e.entries())\n        i(c, a, r);\n    else\n      e != null && i(n, e, r);\n    return this;\n  }\n  get(e, n) {\n    if (e = me(e), e) {\n      const r = f.findKey(this, e);\n      if (r) {\n        const s = this[r];\n        if (!n)\n          return s;\n        if (n === !0)\n          return C0(s);\n        if (f.isFunction(n))\n          return n.call(this, s, r);\n        if (f.isRegExp(n))\n          return n.exec(s);\n        throw new TypeError(\"parser must be boolean|regexp|function\");\n      }\n    }\n  }\n  has(e, n) {\n    if (e = me(e), e) {\n      const r = f.findKey(this, e);\n      return !!(r && this[r] !== void 0 && (!n || pt(this, this[r], r, n)));\n    }\n    return !1;\n  }\n  delete(e, n) {\n    const r = this;\n    let s = !1;\n    function i(o) {\n      if (o = me(o), o) {\n        const a = f.findKey(r, o);\n        a && (!n || pt(r, r[a], a, n)) && (delete r[a], s = !0);\n      }\n    }\n    return f.isArray(e) ? e.forEach(i) : i(e), s;\n  }\n  clear(e) {\n    const n = Object.keys(this);\n    let r = n.length, s = !1;\n    for (; r--; ) {\n      const i = n[r];\n      (!e || pt(this, this[i], i, e, !0)) && (delete this[i], s = !0);\n    }\n    return s;\n  }\n  normalize(e) {\n    const n = this, r = {};\n    return f.forEach(this, (s, i) => {\n      const o = f.findKey(r, i);\n      if (o) {\n        n[o] = $e(s), delete n[i];\n        return;\n      }\n      const a = e ? D0(i) : String(i).trim();\n      a !== i && delete n[i], n[a] = $e(s), r[a] = !0;\n    }), this;\n  }\n  concat(...e) {\n    return this.constructor.concat(this, ...e);\n  }\n  toJSON(e) {\n    const n = /* @__PURE__ */ Object.create(null);\n    return f.forEach(this, (r, s) => {\n      r != null && r !== !1 && (n[s] = e && f.isArray(r) ? r.join(\", \") : r);\n    }), n;\n  }\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n  toString() {\n    return Object.entries(this.toJSON()).map(([e, n]) => e + \": \" + n).join(`\n`);\n  }\n  get [Symbol.toStringTag]() {\n    return \"AxiosHeaders\";\n  }\n  static from(e) {\n    return e instanceof this ? e : new this(e);\n  }\n  static concat(e, ...n) {\n    const r = new this(e);\n    return n.forEach((s) => r.set(s)), r;\n  }\n  static accessor(e) {\n    const r = (this[Rn] = this[Rn] = {\n      accessors: {}\n    }).accessors, s = this.prototype;\n    function i(o) {\n      const a = me(o);\n      r[a] || (M0(s, o), r[a] = !0);\n    }\n    return f.isArray(e) ? e.forEach(i) : i(e), this;\n  }\n}\nct.accessor([\"Content-Type\", \"Content-Length\", \"Accept\", \"Accept-Encoding\", \"User-Agent\", \"Authorization\"]);\nf.reduceDescriptors(ct.prototype, ({ value: t }, e) => {\n  let n = e[0].toUpperCase() + e.slice(1);\n  return {\n    get: () => t,\n    set(r) {\n      this[n] = r;\n    }\n  };\n});\nf.freezeMethods(ct);\nconst U = ct;\nfunction mt(t, e) {\n  const n = this || en, r = e || n, s = U.from(r.headers);\n  let i = r.data;\n  return f.forEach(t, function(a) {\n    i = a.call(n, i, s.normalize(), e ? e.status : void 0);\n  }), s.normalize(), i;\n}\nfunction Pr(t) {\n  return !!(t && t.__CANCEL__);\n}\nfunction de(t, e, n) {\n  b.call(this, t ?? \"canceled\", b.ERR_CANCELED, e, n), this.name = \"CanceledError\";\n}\nf.inherits(de, b, {\n  __CANCEL__: !0\n});\nfunction Dr(t, e, n) {\n  const r = n.config.validateStatus;\n  !n.status || !r || r(n.status) ? t(n) : e(new b(\n    \"Request failed with status code \" + n.status,\n    [b.ERR_BAD_REQUEST, b.ERR_BAD_RESPONSE][Math.floor(n.status / 100) - 4],\n    n.config,\n    n.request,\n    n\n  ));\n}\nfunction I0(t) {\n  const e = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(t);\n  return e && e[1] || \"\";\n}\nfunction L0(t, e) {\n  t = t || 10;\n  const n = new Array(t), r = new Array(t);\n  let s = 0, i = 0, o;\n  return e = e !== void 0 ? e : 1e3, function(c) {\n    const u = Date.now(), l = r[i];\n    o || (o = u), n[s] = c, r[s] = u;\n    let h = i, m = 0;\n    for (; h !== s; )\n      m += n[h++], h = h % t;\n    if (s = (s + 1) % t, s === i && (i = (i + 1) % t), u - o < e)\n      return;\n    const d = l && u - l;\n    return d ? Math.round(m * 1e3 / d) : void 0;\n  };\n}\nfunction $0(t, e) {\n  let n = 0, r = 1e3 / e, s, i;\n  const o = (u, l = Date.now()) => {\n    n = l, s = null, i && (clearTimeout(i), i = null), t.apply(null, u);\n  };\n  return [(...u) => {\n    const l = Date.now(), h = l - n;\n    h >= r ? o(u, l) : (s = u, i || (i = setTimeout(() => {\n      i = null, o(s);\n    }, r - h)));\n  }, () => s && o(s)];\n}\nconst Ye = (t, e, n = 3) => {\n  let r = 0;\n  const s = L0(50, 250);\n  return $0((i) => {\n    const o = i.loaded, a = i.lengthComputable ? i.total : void 0, c = o - r, u = s(c), l = o <= a;\n    r = o;\n    const h = {\n      loaded: o,\n      total: a,\n      progress: a ? o / a : void 0,\n      bytes: c,\n      rate: u || void 0,\n      estimated: u && a && l ? (a - o) / u : void 0,\n      event: i,\n      lengthComputable: a != null,\n      [e ? \"download\" : \"upload\"]: !0\n    };\n    t(h);\n  }, n);\n}, _n = (t, e) => {\n  const n = t != null;\n  return [(r) => e[0]({\n    lengthComputable: n,\n    total: t,\n    loaded: r\n  }), e[1]];\n}, Tn = (t) => (...e) => f.asap(() => t(...e)), F0 = k.hasStandardBrowserEnv ? ((t, e) => (n) => (n = new URL(n, k.origin), t.protocol === n.protocol && t.host === n.host && (e || t.port === n.port)))(\n  new URL(k.origin),\n  k.navigator && /(msie|trident)/i.test(k.navigator.userAgent)\n) : () => !0, N0 = k.hasStandardBrowserEnv ? (\n  // Standard browser envs support document.cookie\n  {\n    write(t, e, n, r, s, i) {\n      const o = [t + \"=\" + encodeURIComponent(e)];\n      f.isNumber(n) && o.push(\"expires=\" + new Date(n).toGMTString()), f.isString(r) && o.push(\"path=\" + r), f.isString(s) && o.push(\"domain=\" + s), i === !0 && o.push(\"secure\"), document.cookie = o.join(\"; \");\n    },\n    read(t) {\n      const e = document.cookie.match(new RegExp(\"(^|;\\\\s*)(\" + t + \")=([^;]*)\"));\n      return e ? decodeURIComponent(e[3]) : null;\n    },\n    remove(t) {\n      this.write(t, \"\", Date.now() - 864e5);\n    }\n  }\n) : (\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {\n    },\n    read() {\n      return null;\n    },\n    remove() {\n    }\n  }\n);\nfunction U0(t) {\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(t);\n}\nfunction B0(t, e) {\n  return e ? t.replace(/\\/?\\/$/, \"\") + \"/\" + e.replace(/^\\/+/, \"\") : t;\n}\nfunction Mr(t, e, n) {\n  let r = !U0(e);\n  return t && (r || n == !1) ? B0(t, e) : e;\n}\nconst En = (t) => t instanceof U ? { ...t } : t;\nfunction se(t, e) {\n  e = e || {};\n  const n = {};\n  function r(u, l, h, m) {\n    return f.isPlainObject(u) && f.isPlainObject(l) ? f.merge.call({ caseless: m }, u, l) : f.isPlainObject(l) ? f.merge({}, l) : f.isArray(l) ? l.slice() : l;\n  }\n  function s(u, l, h, m) {\n    if (f.isUndefined(l)) {\n      if (!f.isUndefined(u))\n        return r(void 0, u, h, m);\n    } else\n      return r(u, l, h, m);\n  }\n  function i(u, l) {\n    if (!f.isUndefined(l))\n      return r(void 0, l);\n  }\n  function o(u, l) {\n    if (f.isUndefined(l)) {\n      if (!f.isUndefined(u))\n        return r(void 0, u);\n    } else\n      return r(void 0, l);\n  }\n  function a(u, l, h) {\n    if (h in e)\n      return r(u, l);\n    if (h in t)\n      return r(void 0, u);\n  }\n  const c = {\n    url: i,\n    method: i,\n    data: i,\n    baseURL: o,\n    transformRequest: o,\n    transformResponse: o,\n    paramsSerializer: o,\n    timeout: o,\n    timeoutMessage: o,\n    withCredentials: o,\n    withXSRFToken: o,\n    adapter: o,\n    responseType: o,\n    xsrfCookieName: o,\n    xsrfHeaderName: o,\n    onUploadProgress: o,\n    onDownloadProgress: o,\n    decompress: o,\n    maxContentLength: o,\n    maxBodyLength: o,\n    beforeRedirect: o,\n    transport: o,\n    httpAgent: o,\n    httpsAgent: o,\n    cancelToken: o,\n    socketPath: o,\n    responseEncoding: o,\n    validateStatus: a,\n    headers: (u, l, h) => s(En(u), En(l), h, !0)\n  };\n  return f.forEach(Object.keys(Object.assign({}, t, e)), function(l) {\n    const h = c[l] || s, m = h(t[l], e[l], l);\n    f.isUndefined(m) && h !== a || (n[l] = m);\n  }), n;\n}\nconst Ir = (t) => {\n  const e = se({}, t);\n  let { data: n, withXSRFToken: r, xsrfHeaderName: s, xsrfCookieName: i, headers: o, auth: a } = e;\n  e.headers = o = U.from(o), e.url = Er(Mr(e.baseURL, e.url, e.allowAbsoluteUrls), t.params, t.paramsSerializer), a && o.set(\n    \"Authorization\",\n    \"Basic \" + btoa((a.username || \"\") + \":\" + (a.password ? unescape(encodeURIComponent(a.password)) : \"\"))\n  );\n  let c;\n  if (f.isFormData(n)) {\n    if (k.hasStandardBrowserEnv || k.hasStandardBrowserWebWorkerEnv)\n      o.setContentType(void 0);\n    else if ((c = o.getContentType()) !== !1) {\n      const [u, ...l] = c ? c.split(\";\").map((h) => h.trim()).filter(Boolean) : [];\n      o.setContentType([u || \"multipart/form-data\", ...l].join(\"; \"));\n    }\n  }\n  if (k.hasStandardBrowserEnv && (r && f.isFunction(r) && (r = r(e)), r || r !== !1 && F0(e.url))) {\n    const u = s && i && N0.read(i);\n    u && o.set(s, u);\n  }\n  return e;\n}, j0 = typeof XMLHttpRequest < \"u\", q0 = j0 && function(t) {\n  return new Promise(function(n, r) {\n    const s = Ir(t);\n    let i = s.data;\n    const o = U.from(s.headers).normalize();\n    let { responseType: a, onUploadProgress: c, onDownloadProgress: u } = s, l, h, m, d, p;\n    function g() {\n      d && d(), p && p(), s.cancelToken && s.cancelToken.unsubscribe(l), s.signal && s.signal.removeEventListener(\"abort\", l);\n    }\n    let y = new XMLHttpRequest();\n    y.open(s.method.toUpperCase(), s.url, !0), y.timeout = s.timeout;\n    function w() {\n      if (!y)\n        return;\n      const A = U.from(\n        \"getAllResponseHeaders\" in y && y.getAllResponseHeaders()\n      ), T = {\n        data: !a || a === \"text\" || a === \"json\" ? y.responseText : y.response,\n        status: y.status,\n        statusText: y.statusText,\n        headers: A,\n        config: t,\n        request: y\n      };\n      Dr(function(S) {\n        n(S), g();\n      }, function(S) {\n        r(S), g();\n      }, T), y = null;\n    }\n    \"onloadend\" in y ? y.onloadend = w : y.onreadystatechange = function() {\n      !y || y.readyState !== 4 || y.status === 0 && !(y.responseURL && y.responseURL.indexOf(\"file:\") === 0) || setTimeout(w);\n    }, y.onabort = function() {\n      y && (r(new b(\"Request aborted\", b.ECONNABORTED, t, y)), y = null);\n    }, y.onerror = function() {\n      r(new b(\"Network Error\", b.ERR_NETWORK, t, y)), y = null;\n    }, y.ontimeout = function() {\n      let I = s.timeout ? \"timeout of \" + s.timeout + \"ms exceeded\" : \"timeout exceeded\";\n      const T = s.transitional || kr;\n      s.timeoutErrorMessage && (I = s.timeoutErrorMessage), r(new b(\n        I,\n        T.clarifyTimeoutError ? b.ETIMEDOUT : b.ECONNABORTED,\n        t,\n        y\n      )), y = null;\n    }, i === void 0 && o.setContentType(null), \"setRequestHeader\" in y && f.forEach(o.toJSON(), function(I, T) {\n      y.setRequestHeader(T, I);\n    }), f.isUndefined(s.withCredentials) || (y.withCredentials = !!s.withCredentials), a && a !== \"json\" && (y.responseType = s.responseType), u && ([m, p] = Ye(u, !0), y.addEventListener(\"progress\", m)), c && y.upload && ([h, d] = Ye(c), y.upload.addEventListener(\"progress\", h), y.upload.addEventListener(\"loadend\", d)), (s.cancelToken || s.signal) && (l = (A) => {\n      y && (r(!A || A.type ? new de(null, t, y) : A), y.abort(), y = null);\n    }, s.cancelToken && s.cancelToken.subscribe(l), s.signal && (s.signal.aborted ? l() : s.signal.addEventListener(\"abort\", l)));\n    const x = I0(s.url);\n    if (x && k.protocols.indexOf(x) === -1) {\n      r(new b(\"Unsupported protocol \" + x + \":\", b.ERR_BAD_REQUEST, t));\n      return;\n    }\n    y.send(i || null);\n  });\n}, z0 = (t, e) => {\n  const { length: n } = t = t ? t.filter(Boolean) : [];\n  if (e || n) {\n    let r = new AbortController(), s;\n    const i = function(u) {\n      if (!s) {\n        s = !0, a();\n        const l = u instanceof Error ? u : this.reason;\n        r.abort(l instanceof b ? l : new de(l instanceof Error ? l.message : l));\n      }\n    };\n    let o = e && setTimeout(() => {\n      o = null, i(new b(`timeout ${e} of ms exceeded`, b.ETIMEDOUT));\n    }, e);\n    const a = () => {\n      t && (o && clearTimeout(o), o = null, t.forEach((u) => {\n        u.unsubscribe ? u.unsubscribe(i) : u.removeEventListener(\"abort\", i);\n      }), t = null);\n    };\n    t.forEach((u) => u.addEventListener(\"abort\", i));\n    const { signal: c } = r;\n    return c.unsubscribe = () => f.asap(a), c;\n  }\n}, H0 = z0, V0 = function* (t, e) {\n  let n = t.byteLength;\n  if (!e || n < e) {\n    yield t;\n    return;\n  }\n  let r = 0, s;\n  for (; r < n; )\n    s = r + e, yield t.slice(r, s), r = s;\n}, W0 = async function* (t, e) {\n  for await (const n of G0(t))\n    yield* V0(n, e);\n}, G0 = async function* (t) {\n  if (t[Symbol.asyncIterator]) {\n    yield* t;\n    return;\n  }\n  const e = t.getReader();\n  try {\n    for (; ; ) {\n      const { done: n, value: r } = await e.read();\n      if (n)\n        break;\n      yield r;\n    }\n  } finally {\n    await e.cancel();\n  }\n}, kn = (t, e, n, r) => {\n  const s = W0(t, e);\n  let i = 0, o, a = (c) => {\n    o || (o = !0, r && r(c));\n  };\n  return new ReadableStream({\n    async pull(c) {\n      try {\n        const { done: u, value: l } = await s.next();\n        if (u) {\n          a(), c.close();\n          return;\n        }\n        let h = l.byteLength;\n        if (n) {\n          let m = i += h;\n          n(m);\n        }\n        c.enqueue(new Uint8Array(l));\n      } catch (u) {\n        throw a(u), u;\n      }\n    },\n    cancel(c) {\n      return a(c), s.return();\n    }\n  }, {\n    highWaterMark: 2\n  });\n}, ut = typeof fetch == \"function\" && typeof Request == \"function\" && typeof Response == \"function\", Lr = ut && typeof ReadableStream == \"function\", X0 = ut && (typeof TextEncoder == \"function\" ? ((t) => (e) => t.encode(e))(new TextEncoder()) : async (t) => new Uint8Array(await new Response(t).arrayBuffer())), $r = (t, ...e) => {\n  try {\n    return !!t(...e);\n  } catch {\n    return !1;\n  }\n}, J0 = Lr && $r(() => {\n  let t = !1;\n  const e = new Request(k.origin, {\n    body: new ReadableStream(),\n    method: \"POST\",\n    get duplex() {\n      return t = !0, \"half\";\n    }\n  }).headers.has(\"Content-Type\");\n  return t && !e;\n}), Cn = 64 * 1024, Ct = Lr && $r(() => f.isReadableStream(new Response(\"\").body)), Ze = {\n  stream: Ct && ((t) => t.body)\n};\nut && ((t) => {\n  [\"text\", \"arrayBuffer\", \"blob\", \"formData\", \"stream\"].forEach((e) => {\n    !Ze[e] && (Ze[e] = f.isFunction(t[e]) ? (n) => n[e]() : (n, r) => {\n      throw new b(`Response type '${e}' is not supported`, b.ERR_NOT_SUPPORT, r);\n    });\n  });\n})(new Response());\nconst Y0 = async (t) => {\n  if (t == null)\n    return 0;\n  if (f.isBlob(t))\n    return t.size;\n  if (f.isSpecCompliantForm(t))\n    return (await new Request(k.origin, {\n      method: \"POST\",\n      body: t\n    }).arrayBuffer()).byteLength;\n  if (f.isArrayBufferView(t) || f.isArrayBuffer(t))\n    return t.byteLength;\n  if (f.isURLSearchParams(t) && (t = t + \"\"), f.isString(t))\n    return (await X0(t)).byteLength;\n}, Z0 = async (t, e) => {\n  const n = f.toFiniteNumber(t.getContentLength());\n  return n ?? Y0(e);\n}, K0 = ut && (async (t) => {\n  let {\n    url: e,\n    method: n,\n    data: r,\n    signal: s,\n    cancelToken: i,\n    timeout: o,\n    onDownloadProgress: a,\n    onUploadProgress: c,\n    responseType: u,\n    headers: l,\n    withCredentials: h = \"same-origin\",\n    fetchOptions: m\n  } = Ir(t);\n  u = u ? (u + \"\").toLowerCase() : \"text\";\n  let d = H0([s, i && i.toAbortSignal()], o), p;\n  const g = d && d.unsubscribe && (() => {\n    d.unsubscribe();\n  });\n  let y;\n  try {\n    if (c && J0 && n !== \"get\" && n !== \"head\" && (y = await Z0(l, r)) !== 0) {\n      let T = new Request(e, {\n        method: \"POST\",\n        body: r,\n        duplex: \"half\"\n      }), F;\n      if (f.isFormData(r) && (F = T.headers.get(\"content-type\")) && l.setContentType(F), T.body) {\n        const [S, Te] = _n(\n          y,\n          Ye(Tn(c))\n        );\n        r = kn(T.body, Cn, S, Te);\n      }\n    }\n    f.isString(h) || (h = h ? \"include\" : \"omit\");\n    const w = \"credentials\" in Request.prototype;\n    p = new Request(e, {\n      ...m,\n      signal: d,\n      method: n.toUpperCase(),\n      headers: l.normalize().toJSON(),\n      body: r,\n      duplex: \"half\",\n      credentials: w ? h : void 0\n    });\n    let x = await fetch(p);\n    const A = Ct && (u === \"stream\" || u === \"response\");\n    if (Ct && (a || A && g)) {\n      const T = {};\n      [\"status\", \"statusText\", \"headers\"].forEach((nn) => {\n        T[nn] = x[nn];\n      });\n      const F = f.toFiniteNumber(x.headers.get(\"content-length\")), [S, Te] = a && _n(\n        F,\n        Ye(Tn(a), !0)\n      ) || [];\n      x = new Response(\n        kn(x.body, Cn, S, () => {\n          Te && Te(), g && g();\n        }),\n        T\n      );\n    }\n    u = u || \"text\";\n    let I = await Ze[f.findKey(Ze, u) || \"text\"](x, t);\n    return !A && g && g(), await new Promise((T, F) => {\n      Dr(T, F, {\n        data: I,\n        headers: U.from(x.headers),\n        status: x.status,\n        statusText: x.statusText,\n        config: t,\n        request: p\n      });\n    });\n  } catch (w) {\n    throw g && g(), w && w.name === \"TypeError\" && /fetch/i.test(w.message) ? Object.assign(\n      new b(\"Network Error\", b.ERR_NETWORK, t, p),\n      {\n        cause: w.cause || w\n      }\n    ) : b.from(w, w && w.code, t, p);\n  }\n}), Pt = {\n  http: f0,\n  xhr: q0,\n  fetch: K0\n};\nf.forEach(Pt, (t, e) => {\n  if (t) {\n    try {\n      Object.defineProperty(t, \"name\", { value: e });\n    } catch {\n    }\n    Object.defineProperty(t, \"adapterName\", { value: e });\n  }\n});\nconst Pn = (t) => `- ${t}`, Q0 = (t) => f.isFunction(t) || t === null || t === !1, Fr = {\n  getAdapter: (t) => {\n    t = f.isArray(t) ? t : [t];\n    const { length: e } = t;\n    let n, r;\n    const s = {};\n    for (let i = 0; i < e; i++) {\n      n = t[i];\n      let o;\n      if (r = n, !Q0(n) && (r = Pt[(o = String(n)).toLowerCase()], r === void 0))\n        throw new b(`Unknown adapter '${o}'`);\n      if (r)\n        break;\n      s[o || \"#\" + i] = r;\n    }\n    if (!r) {\n      const i = Object.entries(s).map(\n        ([a, c]) => `adapter ${a} ` + (c === !1 ? \"is not supported by the environment\" : \"is not available in the build\")\n      );\n      let o = e ? i.length > 1 ? `since :\n` + i.map(Pn).join(`\n`) : \" \" + Pn(i[0]) : \"as no adapter specified\";\n      throw new b(\n        \"There is no suitable adapter to dispatch the request \" + o,\n        \"ERR_NOT_SUPPORT\"\n      );\n    }\n    return r;\n  },\n  adapters: Pt\n};\nfunction gt(t) {\n  if (t.cancelToken && t.cancelToken.throwIfRequested(), t.signal && t.signal.aborted)\n    throw new de(null, t);\n}\nfunction Dn(t) {\n  return gt(t), t.headers = U.from(t.headers), t.data = mt.call(\n    t,\n    t.transformRequest\n  ), [\"post\", \"put\", \"patch\"].indexOf(t.method) !== -1 && t.headers.setContentType(\"application/x-www-form-urlencoded\", !1), Fr.getAdapter(t.adapter || en.adapter)(t).then(function(r) {\n    return gt(t), r.data = mt.call(\n      t,\n      t.transformResponse,\n      r\n    ), r.headers = U.from(r.headers), r;\n  }, function(r) {\n    return Pr(r) || (gt(t), r && r.response && (r.response.data = mt.call(\n      t,\n      t.transformResponse,\n      r.response\n    ), r.response.headers = U.from(r.response.headers))), Promise.reject(r);\n  });\n}\nconst Nr = \"1.8.4\", lt = {};\n[\"object\", \"boolean\", \"number\", \"function\", \"string\", \"symbol\"].forEach((t, e) => {\n  lt[t] = function(r) {\n    return typeof r === t || \"a\" + (e < 1 ? \"n \" : \" \") + t;\n  };\n});\nconst Mn = {};\nlt.transitional = function(e, n, r) {\n  function s(i, o) {\n    return \"[Axios v\" + Nr + \"] Transitional option '\" + i + \"'\" + o + (r ? \". \" + r : \"\");\n  }\n  return (i, o, a) => {\n    if (e === !1)\n      throw new b(\n        s(o, \" has been removed\" + (n ? \" in \" + n : \"\")),\n        b.ERR_DEPRECATED\n      );\n    return n && !Mn[o] && (Mn[o] = !0, console.warn(\n      s(\n        o,\n        \" has been deprecated since v\" + n + \" and will be removed in the near future\"\n      )\n    )), e ? e(i, o, a) : !0;\n  };\n};\nlt.spelling = function(e) {\n  return (n, r) => (console.warn(`${r} is likely a misspelling of ${e}`), !0);\n};\nfunction e1(t, e, n) {\n  if (typeof t != \"object\")\n    throw new b(\"options must be an object\", b.ERR_BAD_OPTION_VALUE);\n  const r = Object.keys(t);\n  let s = r.length;\n  for (; s-- > 0; ) {\n    const i = r[s], o = e[i];\n    if (o) {\n      const a = t[i], c = a === void 0 || o(a, i, t);\n      if (c !== !0)\n        throw new b(\"option \" + i + \" must be \" + c, b.ERR_BAD_OPTION_VALUE);\n      continue;\n    }\n    if (n !== !0)\n      throw new b(\"Unknown option \" + i, b.ERR_BAD_OPTION);\n  }\n}\nconst Fe = {\n  assertOptions: e1,\n  validators: lt\n}, j = Fe.validators;\nclass Ke {\n  constructor(e) {\n    this.defaults = e, this.interceptors = {\n      request: new vn(),\n      response: new vn()\n    };\n  }\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(e, n) {\n    try {\n      return await this._request(e, n);\n    } catch (r) {\n      if (r instanceof Error) {\n        let s = {};\n        Error.captureStackTrace ? Error.captureStackTrace(s) : s = new Error();\n        const i = s.stack ? s.stack.replace(/^.+\\n/, \"\") : \"\";\n        try {\n          r.stack ? i && !String(r.stack).endsWith(i.replace(/^.+\\n.+\\n/, \"\")) && (r.stack += `\n` + i) : r.stack = i;\n        } catch {\n        }\n      }\n      throw r;\n    }\n  }\n  _request(e, n) {\n    typeof e == \"string\" ? (n = n || {}, n.url = e) : n = e || {}, n = se(this.defaults, n);\n    const { transitional: r, paramsSerializer: s, headers: i } = n;\n    r !== void 0 && Fe.assertOptions(r, {\n      silentJSONParsing: j.transitional(j.boolean),\n      forcedJSONParsing: j.transitional(j.boolean),\n      clarifyTimeoutError: j.transitional(j.boolean)\n    }, !1), s != null && (f.isFunction(s) ? n.paramsSerializer = {\n      serialize: s\n    } : Fe.assertOptions(s, {\n      encode: j.function,\n      serialize: j.function\n    }, !0)), n.allowAbsoluteUrls !== void 0 || (this.defaults.allowAbsoluteUrls !== void 0 ? n.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls : n.allowAbsoluteUrls = !0), Fe.assertOptions(n, {\n      baseUrl: j.spelling(\"baseURL\"),\n      withXsrfToken: j.spelling(\"withXSRFToken\")\n    }, !0), n.method = (n.method || this.defaults.method || \"get\").toLowerCase();\n    let o = i && f.merge(\n      i.common,\n      i[n.method]\n    );\n    i && f.forEach(\n      [\"delete\", \"get\", \"head\", \"post\", \"put\", \"patch\", \"common\"],\n      (p) => {\n        delete i[p];\n      }\n    ), n.headers = U.concat(o, i);\n    const a = [];\n    let c = !0;\n    this.interceptors.request.forEach(function(g) {\n      typeof g.runWhen == \"function\" && g.runWhen(n) === !1 || (c = c && g.synchronous, a.unshift(g.fulfilled, g.rejected));\n    });\n    const u = [];\n    this.interceptors.response.forEach(function(g) {\n      u.push(g.fulfilled, g.rejected);\n    });\n    let l, h = 0, m;\n    if (!c) {\n      const p = [Dn.bind(this), void 0];\n      for (p.unshift.apply(p, a), p.push.apply(p, u), m = p.length, l = Promise.resolve(n); h < m; )\n        l = l.then(p[h++], p[h++]);\n      return l;\n    }\n    m = a.length;\n    let d = n;\n    for (h = 0; h < m; ) {\n      const p = a[h++], g = a[h++];\n      try {\n        d = p(d);\n      } catch (y) {\n        g.call(this, y);\n        break;\n      }\n    }\n    try {\n      l = Dn.call(this, d);\n    } catch (p) {\n      return Promise.reject(p);\n    }\n    for (h = 0, m = u.length; h < m; )\n      l = l.then(u[h++], u[h++]);\n    return l;\n  }\n  getUri(e) {\n    e = se(this.defaults, e);\n    const n = Mr(e.baseURL, e.url, e.allowAbsoluteUrls);\n    return Er(n, e.params, e.paramsSerializer);\n  }\n}\nf.forEach([\"delete\", \"get\", \"head\", \"options\"], function(e) {\n  Ke.prototype[e] = function(n, r) {\n    return this.request(se(r || {}, {\n      method: e,\n      url: n,\n      data: (r || {}).data\n    }));\n  };\n});\nf.forEach([\"post\", \"put\", \"patch\"], function(e) {\n  function n(r) {\n    return function(i, o, a) {\n      return this.request(se(a || {}, {\n        method: e,\n        headers: r ? {\n          \"Content-Type\": \"multipart/form-data\"\n        } : {},\n        url: i,\n        data: o\n      }));\n    };\n  }\n  Ke.prototype[e] = n(), Ke.prototype[e + \"Form\"] = n(!0);\n});\nconst Ne = Ke;\nclass tn {\n  constructor(e) {\n    if (typeof e != \"function\")\n      throw new TypeError(\"executor must be a function.\");\n    let n;\n    this.promise = new Promise(function(i) {\n      n = i;\n    });\n    const r = this;\n    this.promise.then((s) => {\n      if (!r._listeners)\n        return;\n      let i = r._listeners.length;\n      for (; i-- > 0; )\n        r._listeners[i](s);\n      r._listeners = null;\n    }), this.promise.then = (s) => {\n      let i;\n      const o = new Promise((a) => {\n        r.subscribe(a), i = a;\n      }).then(s);\n      return o.cancel = function() {\n        r.unsubscribe(i);\n      }, o;\n    }, e(function(i, o, a) {\n      r.reason || (r.reason = new de(i, o, a), n(r.reason));\n    });\n  }\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason)\n      throw this.reason;\n  }\n  /**\n   * Subscribe to the cancel signal\n   */\n  subscribe(e) {\n    if (this.reason) {\n      e(this.reason);\n      return;\n    }\n    this._listeners ? this._listeners.push(e) : this._listeners = [e];\n  }\n  /**\n   * Unsubscribe from the cancel signal\n   */\n  unsubscribe(e) {\n    if (!this._listeners)\n      return;\n    const n = this._listeners.indexOf(e);\n    n !== -1 && this._listeners.splice(n, 1);\n  }\n  toAbortSignal() {\n    const e = new AbortController(), n = (r) => {\n      e.abort(r);\n    };\n    return this.subscribe(n), e.signal.unsubscribe = () => this.unsubscribe(n), e.signal;\n  }\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let e;\n    return {\n      token: new tn(function(s) {\n        e = s;\n      }),\n      cancel: e\n    };\n  }\n}\nconst t1 = tn;\nfunction n1(t) {\n  return function(n) {\n    return t.apply(null, n);\n  };\n}\nfunction r1(t) {\n  return f.isObject(t) && t.isAxiosError === !0;\n}\nconst Dt = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511\n};\nObject.entries(Dt).forEach(([t, e]) => {\n  Dt[e] = t;\n});\nconst s1 = Dt;\nfunction Ur(t) {\n  const e = new Ne(t), n = yr(Ne.prototype.request, e);\n  return f.extend(n, Ne.prototype, e, { allOwnKeys: !0 }), f.extend(n, e, null, { allOwnKeys: !0 }), n.create = function(s) {\n    return Ur(se(t, s));\n  }, n;\n}\nconst v = Ur(en);\nv.Axios = Ne;\nv.CanceledError = de;\nv.CancelToken = t1;\nv.isCancel = Pr;\nv.VERSION = Nr;\nv.toFormData = at;\nv.AxiosError = b;\nv.Cancel = v.CanceledError;\nv.all = function(e) {\n  return Promise.all(e);\n};\nv.spread = n1;\nv.isAxiosError = r1;\nv.mergeConfig = se;\nv.AxiosHeaders = U;\nv.formToJSON = (t) => Cr(f.isHTMLForm(t) ? new FormData(t) : t);\nv.getAdapter = Fr.getAdapter;\nv.HttpStatusCode = s1;\nv.default = v;\nconst i1 = v;\nclass Zl {\n  instance;\n  canceler;\n  retryCount = 0;\n  cacheTime = 0;\n  caches = new rt();\n  constructor(e) {\n    this.instance = i1.create(e), this.canceler = new o1(), this.retryCount = e?.retry || 0, this.cacheTime = e?.cache || 0, this.instance.interceptors.request.use(\n      (n) => (e?.interceptor?.start?.(), this.canceler.pendingRequest(n), e?.interceptor?.request?.(n), n),\n      (n) => (e?.interceptor?.end?.(), this.canceler.cancelRequest(n.config), e?.interceptor?.requestError?.(n), Promise.reject(n))\n    ), this.instance.interceptors.response.use(\n      (n) => (e?.interceptor?.end?.(), this.canceler.confirmRequest(n.config), e?.interceptor?.response?.(n), n.status == 200 ? Promise.resolve(n) : Promise.reject(n)),\n      (n) => (e?.interceptor?.end?.(), this.canceler.cancelRequest(n.config), e?.interceptor?.responseError?.(n), Promise.reject(n.response))\n    );\n  }\n  // @CacheDecorator(60)\n  // @RetryDecorator(3)\n  request(e) {\n    let n = this.instance.request;\n    const r = e.retry || this.retryCount;\n    r && (n = Kn(n, r));\n    const s = e.cache || this.cacheTime;\n    return s && (n = Qn(n, s, this.caches)), n(e);\n  }\n  // this.request() 请求后未返回前，可取消请求\n  cancel(e) {\n    this.canceler.cancelRequest(e);\n  }\n  get(e, n) {\n    return this.request({ ...n, method: \"get\", url: e });\n  }\n  delete(e, n) {\n    return this.request({ ...n, method: \"delete\", url: e });\n  }\n  head(e, n) {\n    return this.request({ ...n, method: \"head\", url: e });\n  }\n  options(e, n) {\n    return this.request({ ...n, method: \"options\", url: e });\n  }\n  post(e, n, r) {\n    return this.request({ ...r, method: \"post\", url: e, data: n });\n  }\n  postBlob(e, n, r) {\n    return r = {\n      ...r,\n      headers: {\n        ...r?.headers,\n        \"Content-Type\": \"multipart/form-data\"\n      }\n    }, this.request({ ...r, method: \"post\", url: e, data: n });\n  }\n  // UNDO : application/octet-stream\n  postForm(e, n, r) {\n    return this.instance.postForm(e, n, { ...r });\n  }\n  put(e, n, r) {\n    return this.request({ ...r, method: \"put\", url: e, data: n });\n  }\n  patch(e, n, r) {\n    return this.request({ ...r, method: \"patch\", url: e, data: n });\n  }\n  getUri(e) {\n    return this.instance.getUri(e);\n  }\n}\nclass o1 {\n  pendingRequestMap;\n  constructor() {\n    this.pendingRequestMap = /* @__PURE__ */ new Map();\n  }\n  getRequestId(e) {\n    const { method: n, url: r, params: s, data: i } = e;\n    return $t({ method: n, url: r, params: s, data: i });\n  }\n  pendingRequest(e) {\n    const n = this.getRequestId(e);\n    if (this.pendingRequestMap.has(n))\n      e.signal = this.pendingRequestMap.get(n)?.signal;\n    else {\n      const r = new AbortController();\n      e.signal = r.signal, this.pendingRequestMap.set(n, r);\n    }\n  }\n  confirmRequest(e) {\n    if (this.pendingRequestMap.size === 0)\n      return;\n    const n = this.getRequestId(e);\n    this.pendingRequestMap.has(n) && this.pendingRequestMap.delete(n);\n  }\n  cancelRequest(e) {\n    if (this.pendingRequestMap.size === 0)\n      return;\n    const n = this.getRequestId(e);\n    this.pendingRequestMap.has(n) && (this.pendingRequestMap.get(n)?.abort(), this.pendingRequestMap.delete(n));\n  }\n  cancelAllRequest() {\n    const e = this.pendingRequestMap.values();\n    for (const n of e)\n      n.abort();\n    this.pendingRequestMap.clear();\n  }\n}\nexport {\n  Xr as AlgorithmEnum,\n  zu as AuthenticatableDecorator,\n  Hu as AuthorizeDecorator,\n  nt as BasicHeap,\n  a2 as BigIntSupported,\n  ul as BinarySearch,\n  Y2 as BinarySearchTree,\n  ye as BinaryTreeNode,\n  sl as BubbleSort,\n  c1 as CSSAnimationNames,\n  rt as Cache,\n  Qu as CacheDecorator,\n  Jr as CipherEnum,\n  ro as CommandInvoker,\n  nl as ConfigurableDecorator,\n  N2 as CreateValidator,\n  Zu as DebounceDecorator,\n  Ji as Dep,\n  Jl as DeriveWorker,\n  Pl as DialogSchedule,\n  pl as DiffArray,\n  q as DomMatrix,\n  O as DomPoint,\n  Ia as EPSILON,\n  Ue as EncodeEnum,\n  on as EntryHashCache,\n  St as EntryListCache,\n  p2 as EntryMapCache,\n  m2 as EntryStack,\n  Jn as Enum,\n  rl as EnumerableDecorator,\n  Uu as EventBus,\n  Zl as FetchWithAxios,\n  Z2 as Graph,\n  je as GraphEdge,\n  qt as GraphNode,\n  au as HashObject,\n  ou as HashTable,\n  un as HashTableOverflow,\n  cl as HeapSort,\n  Lu as HttpError,\n  ol as InsertSort,\n  hl as LRUCacheUseLinkedList,\n  fl as LRUCacheUseMap,\n  si as LinkedList,\n  zt as ListNode,\n  Gu as LogExecuteResultDecorator,\n  Xu as LogExecuteTimeDecorator,\n  Da as MAX_SAFE_INTEGER,\n  W as MIMEEnum,\n  Ma as MIN_SAFE_INTEGER,\n  Q2 as MaxHeap,\n  Wu as MaxLengthDecorator,\n  gl as MementoCaretaker,\n  ml as MementoOriginator,\n  el as MemorizeDecorator,\n  yn as MergeSort,\n  gn as MergeSort2,\n  eu as MinHeap,\n  Vu as MinLengthDecorator,\n  Bt as ONE_DAY_TIMESTAMP,\n  dl as PrefixSumArray,\n  K2 as PriorityQueue,\n  Ju as ProfileDecorator,\n  Cl as PromiseSchedule,\n  Re as Queue,\n  H as QueueOverflow,\n  ll as QuickSearch,\n  wn as QuickSort,\n  bn as QuickSort2,\n  no as QuickSort_partition,\n  Gr as ReadInBrowserEnum,\n  tl as ReadonlyDecorator,\n  Ku as RetryDecorator,\n  ae as SYMBOL_META,\n  ge as SYMBOL_TIMESTAMP,\n  yl as SaveCommand,\n  bo as Schedule,\n  pr as ScheduleDependOnResult,\n  il as SelectSort,\n  al as ShellSort,\n  qu as SingletonDecorator,\n  iu as Stack,\n  Il as StreamUsedMessageChannel,\n  jl as Subject,\n  c2 as SymbolSupported,\n  Sn as ThreeWayQuickSort,\n  Yu as ThrottleDecorator,\n  wl as UndoCommand,\n  W1 as _instanceof,\n  Ua as add,\n  dc as addArrayItem,\n  $s as addMapEntry,\n  Fs as addSetEntry,\n  Oo as appendURL,\n  Vl as appendURLRecord,\n  vc as appendUniqueArray,\n  Fl as applyMiddleware,\n  j1 as arrayBufferToDataView,\n  q1 as arrayBufferToTypedArray,\n  oc as arrayEach,\n  Dc as arrayNeedsUint32,\n  gu as assoc,\n  ke as assocIndexOf,\n  Xn as atob,\n  Fa as average,\n  Ws as base64URLDecode,\n  Vs as base64URLEncode,\n  to as bd09_to_gcj02,\n  ju as bd09_to_wgs84,\n  Oa as bind,\n  va as bindObjectThis,\n  Xs as btoa,\n  Qn as cache,\n  d2 as canUseBitmap,\n  Ls as canUseWorker,\n  Ol as cancelablePromise,\n  R1 as capitalize,\n  Rl as chainPromise,\n  Mc as changeTimeZone,\n  y1 as charAt,\n  ce as clamp,\n  ga as classMixin,\n  hc as clearArray,\n  Ea as clearObject,\n  Nt as cloneArrayBuffer,\n  Sa as cloneAsPrototype,\n  H1 as cloneDataView,\n  sc as cloneFill2DArray,\n  y2 as cloneMap,\n  Zr as cloneRegExp,\n  b2 as cloneSet,\n  ea as cloneSymbol,\n  V1 as cloneTypedArray,\n  uu as closeLog,\n  $l as combineReducers,\n  h2 as compareVersion,\n  fi as compose,\n  z1 as concateTypedArray,\n  vu as conditional,\n  Hc as copyTime,\n  j2 as createCommonDateValidator,\n  z2 as createCommonDatetimeValidator,\n  U2 as createCommonEmailValidator,\n  W2 as createCommonEnumValidator,\n  V2 as createCommonLengthValidator,\n  H2 as createCommonNumberValidator,\n  B2 as createCommonPhoneValidator,\n  q2 as createCommonTimeValidator,\n  ru as createDroppingRingQueue,\n  ec as createEmptyArray,\n  ii as createExpandingRingQueue,\n  nu as createFixedRingQueue,\n  Za as createNextInt,\n  tu as createNoneRingQueue,\n  su as createSlidingRingQueue,\n  So as createStore,\n  Lt as createSymbol,\n  dr as createTask,\n  li as curry,\n  Pu as customDelay,\n  ei as dateValidate,\n  ni as datetimeValidate,\n  Qc as dayOfYear,\n  ui as debounce,\n  Wa as decimalNumber,\n  zc as decreaseTime,\n  te as deepClone,\n  jn as deepDiff,\n  gs as deepEqual,\n  go as deferred,\n  _l as delayAsync,\n  Tl as delaySync,\n  pc as deleteArrayItem,\n  Qa as denormalize,\n  sn as diffDays,\n  Cu as discardOddDoubleEven,\n  Ks as emailValidate,\n  ri as enumValidate,\n  ms as eq,\n  fu as errorLog,\n  ja as euclideanModulo,\n  Ul as exceptionLoggerMiddleware,\n  Bl as executeTimeLoggerMiddleware,\n  xs as extractAllNumbers,\n  Xa as extractNumber,\n  Os as fill2DArray,\n  rc as fillArray,\n  nc as fillArrayIterate,\n  _a as filterObject,\n  uc as first,\n  b1 as fixChineseCompanyName,\n  w1 as fixChineseTaxNo,\n  S1 as fixEmail,\n  zn as fixedDotNumberString,\n  Va as fixedNumberString,\n  yc as flattenArray,\n  Es as flattenArray2,\n  ks as flattenArray3,\n  wc as flattenArray4,\n  bc as flattenArray5,\n  Sc as flattenArray6,\n  xc as flattenArray7,\n  Ts as flushArray,\n  Hl as flushURLRecord,\n  Ao as flushURLSearch,\n  Xl as formDataToSearch,\n  ve as format,\n  Xc as formatDate,\n  Zc as formatDateTime,\n  G2 as formatDistance,\n  X2 as formatMoney,\n  Ga as formatNumber,\n  Gc as formatPreset,\n  Jc as formatTime,\n  Yc as formatTime2,\n  $c as formatTimeOverflow,\n  Fc as formatTimeOverflowChinese,\n  ps as freeze,\n  ma as functionMixin,\n  bl as gb32100_2015,\n  fo as gbt11714,\n  eo as gcj02_to_bd09,\n  Qi as gcj02_to_wgs84,\n  x1 as generateUUID,\n  Rs as get2DArrayColumn,\n  vs as get2DArrayRow,\n  ic as get2DArrayRowColumn,\n  A2 as getArrayBufferFromByteArray,\n  v2 as getArrayBufferFromHexString,\n  O2 as getArrayBufferFromNumber,\n  Hs as getArrayBufferFromString,\n  Bs as getByteArrayFromArrayBuffer,\n  qs as getByteArrayFromHexString,\n  js as getByteArrayFromNumber,\n  zs as getByteArrayFromString,\n  s2 as getCalendarPageItems,\n  x2 as getCodePointArrayFromString,\n  vo as getCrossOriginWorkerURL,\n  pe as getDateDetail,\n  ie as getDefinedRegExpPattern,\n  V as getDegree,\n  Cc as getDifferenceArray,\n  Pc as getDifferenceSet,\n  M2 as getFileTypeFromArrayBuffer,\n  Ms as getFirstTimestampOfMonth,\n  e2 as getFirstTimestampOfNextMonth,\n  jr as getGlobal,\n  T2 as getHexNumber,\n  E2 as getHexString,\n  Tc as getIntersectArray,\n  kc as getIntersectArrayUseMap,\n  Ec as getIntersectSet,\n  Ps as getLastDayOfMonth,\n  Ds as getLastTimestampOfMonth,\n  t2 as getLastTimestampOfPrevMonth,\n  cc as getMiddleValue,\n  Ca as getNestedValue,\n  ws as getNextPrime,\n  Ee as getNthDay,\n  r2 as getNthMonth,\n  n2 as getNthMonthNotGood,\n  ha as getOwnPropertyDescriptors,\n  Yr as getRegExpFlags,\n  hi as getRetryDelay,\n  Me as getSecondsFromTimeOverlow,\n  ka as getSortedObjectString,\n  Gs as getString,\n  k2 as getStringFromArrayBuffer,\n  C2 as getStringFromArrayBuffer2,\n  P2 as getStringFromBase64,\n  Y as getTag,\n  G1 as getType,\n  B1 as getTypedArrayType,\n  mr as getURL,\n  I2 as getUint64,\n  L2 as getUint64BigInt,\n  S2 as getUint8ArrayFromString,\n  m1 as getUnicodeLengthES5,\n  Rc as getUnionArray,\n  _c as getUnionSet,\n  Oc as getUniqueArray,\n  ln as groupLog,\n  u2 as hasDocument,\n  f2 as hasHistory,\n  da as hasProperty,\n  zr as hasSymbol,\n  l2 as hasWindow,\n  hu as identity,\n  fc as includes,\n  qc as increaseTime,\n  xa as inheritPrototype,\n  $1 as is32BitString,\n  $ as isArray,\n  es as isArrayBufferView,\n  gc as isArrayEqual,\n  na as isArrayLike,\n  mc as isArrayNotEmpty,\n  Z1 as isBoolean,\n  Is as isBrowser,\n  ya as isCloneable,\n  N as isDateValid,\n  ia as isDescriptor,\n  oa as isEmptyObject,\n  Iu as isErrorType,\n  $a as isEven,\n  re as isFunction,\n  ca as isGenerator,\n  Cs as isInArray,\n  Wc as isInDays,\n  Vc as isInTime,\n  ua as isIterable,\n  hs as isIterator,\n  D as isJustObject,\n  fs as isKeyable,\n  jt as isLittleEndian,\n  qn as isNaN,\n  ft as isNative,\n  ls as isNativeFunction,\n  tc as isNotEmptyArray,\n  Y1 as isNotOK,\n  J1 as isNull,\n  K1 as isNumber,\n  Q1 as isNumeric,\n  as as isOK,\n  Ae as isObject,\n  J as isObjectLike,\n  ra as isPlainObject,\n  ys as isPrime,\n  Ut as isPrimitive,\n  aa as isPromise,\n  sa as isPrototype,\n  La as isReallyNaN,\n  xo as isSameOriginURL,\n  o2 as isServer,\n  cs as isString,\n  ta as isStringableFunction,\n  us as isSymbol,\n  Mt as isSymbolString,\n  Vn as isTimestampInMilliSeconds,\n  Lc as isTimestampInSeconds,\n  ts as isTypedArray,\n  ql as isURL,\n  X1 as isUndefined,\n  Kc as isWeekend,\n  mu as kDone,\n  pu as kFalse,\n  du as kTrue,\n  Yn as konst,\n  lc as last,\n  Zs as lengthValidate,\n  Ss as lerp,\n  za as lerpMap,\n  qa as lerps,\n  R as log,\n  Kr as lowercaseFirst,\n  Eu as map,\n  an as mapToArray,\n  K as maxDotNumber,\n  F2 as maxLengthValidate,\n  Ys as maxValidate,\n  di as memorize,\n  De as mergeObject,\n  ds as mergeObjectDeep,\n  Qe as meta,\n  Ml as microTask,\n  X as milliseconds,\n  $2 as minLengthValidate,\n  Js as minValidate,\n  g2 as nativeMap,\n  w2 as nativeSet,\n  ba as newConstructor,\n  Dl as nextTick,\n  ai as noop,\n  Ka as normalize,\n  oe as notEmptyValidate,\n  Be as now,\n  Ns as numberToRadixString,\n  fa as objectEntries,\n  Oe as objectKeys,\n  $t as objectSignature,\n  la as objectValues,\n  Au as once,\n  cu as openLog,\n  Ll as operationParser,\n  cr as out_of_china,\n  R2 as pack,\n  P1 as padString,\n  Vr as parse,\n  tt as parseDate,\n  G as parseNumber,\n  a1 as parseObjectSignature,\n  Na as parseRelativeNumber,\n  Nc as parseTime,\n  Bc as parseTimeFromArray,\n  Uc as parseTimeFromDate,\n  jc as parseTimeFromDateDiff,\n  Du as pausable$,\n  Qs as phoneValidate,\n  Ta as pick,\n  yu as pipe,\n  wu as pipeCallback,\n  Yl as polar,\n  ac as popToTopInArray,\n  fn as profileLog,\n  Mu as prop$,\n  Us as radixStringToNumber,\n  Ja as randomDirection,\n  As as randomFloat,\n  Ya as randomInt,\n  A1 as randomLetter,\n  In as randomString,\n  v1 as raw,\n  Zi as reactive,\n  We as reactiveVue2,\n  ar as reactiveVue3,\n  J2 as readStream,\n  Ic as readableTimestamp,\n  gr as recordToSearch,\n  ku as reduce,\n  Nu as ref,\n  h1 as regExec,\n  Ft as regMatch,\n  f1 as regMatchAll,\n  u1 as regSearchIndex,\n  l1 as regSplit,\n  xe as regTest,\n  D1 as repeatString,\n  wt as replaceSymbol,\n  bt as restoreSymbol,\n  Kn as retry,\n  xu as reverseArgs,\n  L1 as reverseString,\n  E as root,\n  Ba as round,\n  kl as runAsyncChain,\n  El as runAsyncWithTimeout,\n  Sl as runGenerator,\n  Z as runValidates,\n  Wl as searchToRecord,\n  Gl as searchToRecord2,\n  lu as setLogUploadFn,\n  Pa as setNestedValue,\n  Aa as setProtoOf,\n  cn as setToArray,\n  wa as shallowClone,\n  Ac as shuffleArray,\n  pa as shuffleObject,\n  g1 as sliceByCodePoints,\n  _o as splitTransformString,\n  Nl as stateLoggerMiddleware,\n  Ha as stepMap,\n  U1 as stringByteSize,\n  Q as stringLength,\n  d1 as stringLength2,\n  p1 as stringLength3,\n  O1 as stringReplace,\n  Hr as stringify,\n  Ra as subtractObject,\n  _s as swapArrayValue,\n  Su as tco,\n  ci as throttle,\n  Al as thunkToPromise,\n  xl as thunkify,\n  qe as timeLog,\n  ti as timeValidate,\n  vl as timeoutLimitPromise,\n  et as toArrayBuffer,\n  D2 as toBlob,\n  T1 as toCamel,\n  z as toDegree,\n  Bn as toFunctionString,\n  _1 as toKebab,\n  L as toObjectString,\n  Qr as toPascal,\n  Ro as toRadian,\n  Fu as toValue,\n  _u as trace,\n  bu as trampoline,\n  Tu as transformUnaryArg,\n  E1 as trim,\n  zl as trimHash,\n  C1 as trimScopedCSS,\n  k1 as trimSpecial,\n  M1 as truncateString,\n  I1 as truncateStringInMiddle,\n  Ru as tryCatch,\n  Ou as tryEach,\n  rn as tryToSymbol,\n  _2 as unpack,\n  i2 as useTimestampValue,\n  F1 as utf16to8,\n  N1 as utf8to16,\n  oi as warnLog,\n  $u as watchEffect,\n  Bu as wgs84_to_bd09,\n  Ki as wgs84_to_gcj02,\n  bs as withinErrorMarginNumber\n};\n//# sourceMappingURL=zyzgroup_core_common.js.map\n","<script setup lang=\"tsx\">\nimport {\n  StyleValue,\n  onMounted,\n  onUnmounted,\n  ref,\n  watch,\n  watchEffect\n} from \"vue\";\nimport { throttle } from \"@zyzgroup/core-common\";\nimport {\n  getInnerText,\n  useClipboard,\n  tap$,\n  DrawShape,\n  DrawType,\n  DrawContext,\n  requestAnimationFrameCycle\n} from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nexport type DisplayType = \"full\" | \"shrink\" | \"empty\";\n\nconst props = withDefaults(\n  defineProps<{\n    type?: DrawType;\n    display?: DisplayType;\n    shapes?: DrawShape[]; // const shapes = ref([]);\n    loop?: boolean;\n    enableCustomContext?: boolean;\n    supportCopyToClipboard?: boolean; // 是否支持复制文字\n  }>(),\n  {\n    type: \"div\",\n    display: \"full\",\n    shapes: () => [],\n    loop: false,\n    enableCustomContext: false,\n    supportCopyToClipboard: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"mount\", box: { el: HTMLElement; rect: DOMRect }): void;\n  (event: \"resize\", box: { el: HTMLElement; rect: DOMRect }): void;\n  (\n    event: \"start\",\n    drawContext: DrawContext,\n    box: { el: HTMLElement; rect: DOMRect }\n  ): void;\n  (\n    event: \"frame\",\n    drawContext: DrawContext,\n    box: { el: HTMLElement; rect: DOMRect }\n  ): void;\n  (\n    event: \"end\",\n    drawContext: DrawContext,\n    box: { el: HTMLElement; rect: DOMRect }\n  ): void;\n  (event: \"copyToClipboardSuccess\", text: string): void;\n  (event: \"copyToClipboardError\", err: string): void;\n  (event: \"throttledClick\", e: Event): void;\n  (event: \"click\", e: Event): void;\n}>();\n\nconst r = ref();\n\nlet drawContext;\nlet resizeSubscription;\nlet tapSubscription;\nlet cancelAnimationFrame;\n\nlet isEmitMount = false;\n\n// props.shapes 地址更新时，重新 emits(\"start\")\nlet isShapesUpdated = true;\nwatch(\n  () => props.shapes,\n  (newVal, oldVal) => {\n    if (!drawContext) {\n      return;\n    }\n    if (!r.value) {\n      return;\n    }\n    isShapesUpdated = newVal !== oldVal;\n    if (isShapesUpdated) {\n      startAnimationFrame(drawContext, {\n        el: r.value,\n        rect: drawContext.rect\n      });\n    }\n  }\n);\n\nfunction startAnimationFrame(drawContext, box) {\n  cancelAnimationFrame?.();\n  emits(\"start\", drawContext, box);\n  cancelAnimationFrame = requestAnimationFrameCycle(() => {\n    emits(\"frame\", drawContext, box);\n    if (props.shapes.length) {\n      if (isShapesUpdated) {\n        drawContext.draw(...props.shapes);\n        isShapesUpdated = false;\n      } else {\n        drawContext.draw(); // 传入空数组：保持原 shapes 以提高性能\n      }\n    } else {\n      drawContext.clear();\n      cancelAnimationFrame?.();\n      emits(\"end\", drawContext, box);\n    }\n    return props.loop;\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\n  if (!drawContext) {\n    drawContext = new DrawContext(\n      r.value,\n      props.type,\n      props.enableCustomContext\n    );\n    resizeSubscription = drawContext.size$.subscribe((rect) => {\n      if (rect) {\n        const box = { el: r.value, rect };\n        if (!isEmitMount) {\n          isEmitMount = true;\n          emits(\"mount\", box);\n        }\n        emits(\"resize\", box);\n        startAnimationFrame(drawContext, box);\n      }\n    });\n  }\n\n  if (props.supportCopyToClipboard && !tapSubscription) {\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\nconst isClicked = ref(false);\nconst throttledClick = throttle((e: Event) => {\n  isClicked.value = true;\n  setTimeout(() => {\n    isClicked.value = false;\n    emits(\"throttledClick\", e);\n    emits(\"click\", e);\n    // const dataset = (e.target as HTMLElement).dataset;\n  }, 100);\n  // const dataset = (e.currentTarget as HTMLElement).dataset;\n\n  // 注意 ce 中不可用： const dataset = ((e.currentTarget || e.target) as HTMLElement).dataset;\n  // ce 中 e.currentTarget 为 null, e.target 为 customElement 实例\n}, 300);\n\nonMounted(() => {});\n\nonUnmounted(() => {\n  cancelAnimationFrame?.();\n  resizeSubscription?.unsubscribe();\n  tapSubscription?.unsubscribe();\n  drawContext?.destroy();\n});\n\n// 不推荐使用\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      props.display == 'empty' ? {} :\n      Object.assign(\n        props.display == 'shrink' ? {\n          display:'inline-block',\n          width: 'auto',\n          height: 'auto'\n        } :\n        props.display == 'full' ? {\n          display:  'block',\n          width:  '100%',\n          height: '100%',\n        } :\n        {},\n        {\n          position: 'relative',\n          boxSizing: 'border-box',\n          userSelect: 'auto',\n          /* overflow: 'hidden', */\n          /* pointer-events: 'none', */\n          /* cursor: 'pointer' */\n        }\n      ) as StyleValue\n    \"\n    @click=\"throttledClick\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, reactive, StyleValue, watchEffect, watch } from \"vue\";\nimport { Timeline, Easing, hasClass } from \"@zyzgroup/core-web\";\nimport Overlay from \"./Overlay.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Overlay, Box },\n  inheritAttrs: true\n});\n\n// 需传入 key 使子元素重新创建，从而使浏览器计算 contentStyle inset 正确\nconst props = withDefaults(\n  defineProps<{\n    closeWhenClickOverlay?: boolean;\n    directionFrom?:\n      | \"bottom\"\n      | \"top\"\n      | \"left\"\n      | \"right\"\n      | \"center\"\n      | \"full\"\n      | { left: string; top: string }; // absolute，例如 {left: '0%', top: '0%'}\n    dur?: number;\n    global?: boolean;\n    contentBgColor?: string;\n    fixed?: number; // 单位px, 强制设置弹起高度或宽度, 如果不传，默认为 slot-width or slot-height\n  }>(),\n  {\n    closeWhenClickOverlay: true,\n    directionFrom: \"bottom\",\n    dur: 200,\n    global: true,\n    contentBgColor: \"rgba(255,255,255,0)\"\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 overlayRef = ref();\nconst contentRef = ref();\nconst contentStyle = reactive<{\n  // 特性属性\n  width?: string;\n  height?: string;\n  top?: string;\n  bottom?: string;\n  left?: string;\n  right?: string;\n  transform?: string;\n  // 通用属性\n  display: string;\n  position: string;\n  opacity?: String;\n  transformOrigin?: string;\n  willChange?: string; // 优化动画性能, 让浏览器提前为动画做准备，避免抖动或延迟\n  backgroundColor?: string;\n  inset?: string; // top right bottom left\n}>({\n  display: \"block\",\n  position: \"absolute\",\n  opacity: \"1\",\n  transformOrigin: \"center\",\n  willChange: \"transform\",\n  backgroundColor: props.contentBgColor\n});\n\nlet status: \"open\" | \"close\" = \"close\";\nlet isAnimating = false;\n\n// Overlay.open() Overlay.close() 会触发 Box@resize()\n// 有时子元素初始化为空时，即 box.rect.width = 0 && box.rect.height = 0，也要触发一下\nlet boxWidth = -1;\nlet boxHeight = -1;\nconst boxResize = (box) => {\n  // box.rect.x 或 box.rect.y 变化时不触发，即：运动过程中不触发\n  if (boxWidth != box.rect.width || boxHeight != box.rect.height) {\n    boxWidth = box.rect.width;\n    boxHeight = box.rect.height;\n    executeAnimate();\n    emits(\"resize\", box);\n  }\n};\n\nconst boxStyle = reactive<{\n  width?: string;\n  height?: string;\n}>({});\nwatchEffect(() => {\n  switch (props.directionFrom) {\n    case \"left\":\n    case \"right\":\n      delete boxStyle.width;\n      boxStyle.height = \"100%\";\n      break;\n    case \"top\":\n    case \"bottom\":\n      boxStyle.width = \"100%\";\n      delete boxStyle.height;\n      break;\n    case \"full\":\n      boxStyle.width = \"100%\";\n      boxStyle.height = \"100%\";\n      break;\n    case \"center\":\n    default:\n      delete boxStyle.width;\n      delete boxStyle.height;\n      break;\n  }\n  // 实时更新：子元素自己计算的位置\n  if (typeof props.directionFrom == \"object\") {\n    contentStyle.left = props.directionFrom.left;\n    contentStyle.top = props.directionFrom.top;\n  }\n});\n\nfunction isDirectionFromSupportAnimate(): boolean {\n  switch (props.directionFrom) {\n    case \"bottom\":\n    case \"top\":\n    case \"left\":\n    case \"right\":\n    case \"center\":\n      return true;\n    case \"full\":\n    default: // absolute\n      return false;\n  }\n}\n\nconst tl = new Timeline({ frameDuration: props.dur });\nconst executeAnimate = () => {\n  tl.clear();\n\n  switch (props.directionFrom) {\n    case \"left\":\n      delete contentStyle.width;\n      if (props.fixed) {\n        contentStyle.width = props.fixed + \"px\";\n      }\n      contentStyle.height = \"100%\";\n      contentStyle.left = isAnimating ? \"-100%\" : \"0%\";\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.top = \"0%\";\n      if (isAnimating) {\n        tl.addTween(\n          {\n            left: 100\n          },\n          { left: 0 },\n          {\n            easeFunction: Easing.Quadratic.Out,\n            onUpdate(data) {\n              contentStyle.left = `-${data.left}%`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"right\":\n      delete contentStyle.width;\n      if (props.fixed) {\n        contentStyle.width = props.fixed + \"px\";\n      }\n      contentStyle.height = \"100%\";\n      delete contentStyle.left;\n      contentStyle.right = isAnimating ? \"-100%\" : \"0%\";\n      delete contentStyle.bottom;\n      contentStyle.top = \"0%\";\n      if (isAnimating) {\n        tl.addTween(\n          {\n            right: 100\n          },\n          { right: 0 },\n          {\n            easeFunction: Easing.Quadratic.Out,\n            onUpdate(data) {\n              contentStyle.right = `-${data.right}%`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"top\":\n      contentStyle.width = \"100%\";\n      delete contentStyle.height;\n      if (props.fixed) {\n        contentStyle.height = props.fixed + \"px\";\n      }\n      contentStyle.left = \"0%\";\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.top = isAnimating ? \"-100%\" : \"0%\";\n      if (isAnimating) {\n        tl.addTween(\n          {\n            top: 100\n          },\n          { top: 0 },\n          {\n            easeFunction: Easing.Quadratic.Out,\n            onUpdate(data) {\n              contentStyle.top = `-${data.top}%`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"bottom\":\n      contentStyle.width = \"100%\";\n      delete contentStyle.height;\n      if (props.fixed) {\n        contentStyle.height = props.fixed + \"px\";\n      }\n      contentStyle.left = \"0%\";\n      delete contentStyle.right;\n      contentStyle.bottom = isAnimating ? \"-100%\" : \"0%\";\n      delete contentStyle.top;\n      if (isAnimating) {\n        tl.addTween(\n          {\n            bottom: 100\n          },\n          { bottom: 0 },\n          {\n            easeFunction: Easing.Quadratic.Out,\n            onUpdate(data) {\n              contentStyle.bottom = `-${data.bottom}%`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"center\":\n      delete contentStyle.width;\n      delete contentStyle.height;\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.left = \"50%\";\n      contentStyle.top = \"50%\";\n      contentStyle.transform = isAnimating\n        ? `translate(-50%, -50%) scale(${0.8})`\n        : `translate(-50%, -50%) scale(${1})`;\n      contentStyle.opacity = isAnimating ? \"0\" : \"1\";\n      if (isAnimating) {\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              contentStyle.transform = `translate(-50%, -50%) scale(${data.scale})`;\n              contentStyle.opacity = `${data.opacity}`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"full\":\n      contentStyle.width = \"100%\";\n      contentStyle.height = \"100%\";\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.left = \"0%\";\n      contentStyle.top = \"0%\";\n      if (isAnimating) {\n        onAnimateComplete();\n      }\n      break;\n    default: // absolute\n      delete contentStyle.width;\n      delete contentStyle.height;\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.left = props.directionFrom.left;\n      contentStyle.top = props.directionFrom.top;\n      if (isAnimating) {\n        onAnimateComplete();\n      }\n      break;\n  }\n\n  // transform + opacity\n  switch (props.directionFrom) {\n    case \"center\":\n      break;\n    default:\n      delete contentStyle.transform;\n      contentStyle.opacity = \"1\";\n      break;\n  }\n\n  if (isAnimating && isDirectionFromSupportAnimate()) {\n    if (status == \"open\") {\n      tl.play();\n    } else {\n      tl.reverse();\n    }\n  }\n};\n\nconst popOpen = () => {\n  // do nothing\n};\n\nconst popClose = () => {\n  boxWidth = -1;\n  boxHeight = -1;\n  emits(\"close\");\n};\n\nfunction onAnimateComplete() {\n  isAnimating = false;\n  switch (status) {\n    case \"open\":\n      emits(\"open\");\n      break;\n    case \"close\":\n      overlayRef.value?.close();\n      break;\n  }\n}\n\nfunction open() {\n  status = \"open\";\n  isAnimating = true;\n  overlayRef.value?.open();\n  // 等待 Box@resize\n}\n\nfunction close() {\n  status = \"close\";\n  isAnimating = true;\n  if (isDirectionFromSupportAnimate()) {\n    executeAnimate();\n  } else {\n    onAnimateComplete();\n  }\n}\n\nfunction clickOverlay(e: Event) {\n  // console.log(e.target);\n  // console.log(popRef.value.contains(e.target));\n  const className =\n    props.directionFrom == \"full\"\n      ? // ||\n        // (typeof props.directionFrom == \"object\" &&\n        //   props.directionFrom.left == \"0%\" &&\n        //   props.directionFrom.top == \"0%\") // 默认 boxWidth==100% boxHeight==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    ref=\"overlayRef\"\n    class=\"pop\"\n    :global=\"props.global\"\n    @open=\"popOpen\"\n    @close=\"popClose\"\n    @click=\"clickOverlay\"\n  >\n    <div\n      ref=\"contentRef\"\n      class=\"pop-content\"\n      :class=\"\n        typeof props.directionFrom == 'string'\n          ? props.directionFrom\n          : 'absolute'\n      \"\n      :style=\"contentStyle as StyleValue\"\n    >\n      <Box\n        display=\"shrink\"\n        :style=\"boxStyle\"\n        @resize=\"boxResize\"\n      >\n        <slot></slot>\n      </Box>\n    </div>\n  </Overlay>\n</template>\n","import {\n  Action,\n  Enum,\n  PlainObject,\n  State,\n  Time,\n  formatDistance,\n  parseTimeFromArray\n} from \"@zyzgroup/core-common\";\n\n// 车场位置类型\nexport const XgParkLocationTypeEnum = new Enum({\n  OUT_ROAD: { serverValue: \"G\", serverDescription: \"路外\" },\n  IN_ROAD: { serverValue: \"L\", serverDescription: \"路内\" }\n});\n\n// 车场模式类型\nexport const XgParkModeTypeEnum = new Enum({\n  ROBOT: { serverValue: \"robot\", serverDescription: \"泊位机器人\" },\n  MANUAL: { serverValue: \"manual\", serverDescription: \"人工\" },\n  ELF: { serverValue: \"elf\", serverDescription: \"泊位精灵\" }\n});\n\n// 车场配置模块类型\nexport const XgParkModuleTypeEnum = new Enum({\n  XNY: { serverValue: \"XNY\", serverDescription: \"新能源车缴费\" },\n  CJR: { serverValue: \"CJR\", serverDescription: \"残疾人缴费\" },\n  DIS: { serverValue: \"DIS\", serverDescription: \"车辆优惠券缴费\" },\n  WALLET: { serverValue: \"WALLET\", serverDescription: \"小福泊车卡缴费\" },\n  RP: { serverValue: \"RP\", serverDescription: \"用户上报车牌\" },\n  MONTH: { serverValue: \"R\", serverDescription: \"路内包月\" },\n  INVOICE: { serverValue: \"J\", serverDescription: \"开发票\" }\n});\n\nfunction reduce(state: State, payload: PlainObject): State {\n  state.tag = payload.tag ? String(payload.tag) : \"\"; // payload.tag 数据库中为 number\n  // 车场模式类型\n  state.taitype = payload.aitype || \"\";\n  state.locationType = payload.ctype || \"\";\n  // 名称\n  state.name = payload.cname || \"\";\n  // 地址\n  state.addr = payload.addr || \"\";\n  // 车场配置模块类型\n  state.modules = payload.modules || [];\n  // 客服电话\n  state.phone = payload.phone || \"\";\n  // 总车位数\n  state.totallot = typeof payload.totallot == \"number\" ? payload.totallot : -1;\n  // 空车位数\n  state.freelot = typeof payload.freelot == \"number\" ? payload.freelot : -1;\n  // 收费标准 图片链接\n  state.feebookurl = payload.feebookurl || \"\";\n  // 包月车位 图片链接\n  state.monthlyscopeurl = payload.monthlyscopeurl || \"\";\n  // 包月须知 html链接\n  // 包月协议 html链接\n  // 充电价格详情\n  state.chargeFeeStandard = (payload.feedef || []).map((fd) => {\n    return {\n      startTime: parseTimeFromArray(fd[0]) as Time, // 24小时制-开始时间\n      endTime: parseTimeFromArray(fd[1]) as Time, // 24小时制-结束时间\n      chargeFee: fd[2], // 电费(单位分)\n      serviceFee: fd[3] // 服务费(单位分)\n    };\n  });\n  // 经度\n  state.longitude =\n    typeof payload.longitude == \"number\" ? payload.longitude : -1;\n  // 纬度\n  state.latitude = typeof payload.latitude == \"number\" ? payload.latitude : -1;\n  state.distance = typeof payload.distance == \"number\" ? payload.distance : -1;\n  state.thirdno = payload.thirdno || \"\";\n  // 是否是机器人停车场\n  state.isROBOT = state.aitype == XgParkModeTypeEnum.ROBOT;\n  // 是否是人工停车场\n  state.isMANUAL = state.aitype == XgParkModeTypeEnum.MANUAL;\n  // 车场位置类型\n  state.locationTypeFormatted = XgParkLocationTypeEnum.getName(\n    state.locationType\n  );\n  // 当前距离\n  state.distanceFormatted = state.distance\n    ? formatDistance(state.distance)\n    : \"\";\n  // 查看包月车位：旧图片样式\n  state.isShowMonthLotsPic = !!state.monthlyscopeurl;\n  // UNDO: 查看包月车位：已采集车位GPS的地图样式\n  state.isShowMonthLotsGPS = false;\n  // 是否显示：查看包月车位\n  // 如果配置为 `不显示` 或 `旧图片样式`：「办理包月详情页面顶部」显示地图，标注车场定位\n  state.isShowMonthLots = state.isShowMonthLotsPic || state.isShowMonthLotsGPS;\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    switch (action.type) {\n      case \"SET_PARK\":\n      case \"INIT\":\n        // 初始化\n        reduce(nextState, payload);\n        break;\n    }\n    return nextState;\n  };\n","import { Action, PlainObject, State } from \"@zyzgroup/core-common\";\n\nfunction reduce(state: State, payload: PlainObject): State {\n  state.tag = payload.tag ? String(payload.tag) : \"\"; // payload.tag 数据库中为 number\n  state.no = payload.no || \"\";\n  state.thirdno = payload.thirdno || \"\";\n  // 经度\n  state.longitude =\n    typeof payload.longitude == \"number\" ? payload.longitude : -1;\n  // 纬度\n  state.latitude = typeof payload.latitude == \"number\" ? payload.latitude : -1;\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    switch (action.type) {\n      case \"SET_LOT\":\n      case \"INIT\":\n        // 初始化\n        reduce(nextState, payload);\n        break;\n    }\n    return nextState;\n  };\n","import {\n  Action,\n  Enum,\n  PlainObject,\n  State,\n  formatDateTime,\n  formatMoney,\n  parseDate\n} from \"@zyzgroup/core-common\";\n\n// 支付方式-枚举\nexport const XgBillTypeEnum = new Enum({\n  WX_MINI: { serverValue: \"Y\", serverDescription: \"微信小程序\" },\n  ALI_MINI: { serverValue: \"B\", serverDescription: \"支付宝小程序\" },\n  THIRD: { serverValue: \"T\", serverDescription: \"第三方系统支付\" },\n  CASH: { serverValue: \"C\", serverDescription: \"现金\" },\n  COUPON_HOUR: { serverValue: \"P\", serverDescription: \"小时券\" },\n  SEAMLESS: { serverValue: \"N\", serverDescription: \"无感支付\" },\n  WX_CREDIT: { serverValue: \"?\", serverDescription: \"微信支付分\" },\n  ALI_CREDIT: { serverValue: \"??\", serverDescription: \"支付宝芝麻先享\" }\n});\n\nfunction reduce(state: State, payload: PlainObject): State {\n  state.sn = payload.sn ? String(payload.sn) : \"\"; // state.sn 数据库中为 number\n  state.fee = payload.fee || 0;\n  state.type = payload.ctype || \"\";\n  state.time = parseDate(payload.time);\n  state.merchsn =\n    payload.merchs && payload.merchs[0] ? payload.merchs[0].sn : \"\";\n  // 支付金额\n  switch (state.type) {\n    case XgBillTypeEnum.COUPON_HOUR:\n      // 时长优惠券分钟数\n      if (state.fee >= 60) {\n        let count = Math.floor(state.fee / 60);\n        if (state.fee % 60 !== 0) {\n          count += Math.floor(((state.fee % 60) * 100) / 60) / 100;\n        }\n        state.feeFormatted = count + \"小时\";\n      } else {\n        state.feeFormatted = state.fee + \"分钟\";\n      }\n      break;\n    default:\n      // 默认：支付金额\n      state.feeFormatted = formatMoney(state.fee, 2);\n      break;\n  }\n  // 支付方式\n  state.typeFormatted = XgBillTypeEnum.getName(state.type);\n  // 支付时间\n  state.timeFormatted = payload.time ? formatDateTime(state.time) : \"\";\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    switch (action.type) {\n      case \"SET_BILL\":\n      case \"INIT\":\n        // 初始化\n        reduce(nextState, payload);\n        break;\n    }\n    return nextState;\n  };\n","import {\n  Action,\n  Enum,\n  PlainObject,\n  State,\n  formatDateTime,\n  formatMoney,\n  formatTimeOverflowChinese,\n  parseDate,\n  parseTimeFromDateDiff\n} from \"@zyzgroup/core-common\";\n\n// 订单类型\nexport const XgOrderTypeEnum = new Enum({\n  ROAD: { serverValue: \"L\", serverDescription: \"路边停车订单\" },\n  GATE: { serverValue: \"B\", serverDescription: \"道闸停车订单\" },\n  MONTH: { serverValue: \"R\", serverDescription: \"停车场包月订单\" }\n});\n\n// 订单状态\nexport const XgOrderStatusEnum = new Enum({\n  BEGIN: { serverValue: \"B\", serverDescription: \"开始（进行中）\" },\n  END: { serverValue: \"E\", serverDescription: \"结束\" },\n  CANCEL: { serverValue: \"F\", serverDescription: \"取消\" },\n  INIT: { serverValue: \"I\", serverDescription: \"预缴 或 初始化\" },\n  OVERDUE: { serverValue: \"C\", serverDescription: \"欠费\" }\n});\n\nfunction reduce(state: State, payload: PlainObject): State {\n  state.sn = payload.sn ? String(payload.sn) : \"\"; // data.sn 数据库中为 number\n  state.fee = payload.fee || 0;\n  state.type = payload.ctype || \"\";\n  state.status = payload.status || \"\";\n  state.starttime = parseDate(payload.starttime);\n  state.endtime = parseDate(payload.endtime);\n  // 现场照片\n  state.pics = (payload.pics || []).map((p) =>\n    typeof p == \"string\" ? p : p.url || \"\"\n  );\n  // 已付金额\n  state.feeFormatted = formatMoney(state.fee, 2);\n  // 订单状态\n  state.statusFormatted = XgOrderStatusEnum.getName(state.status);\n  // 开始时间\n  state.starttimeFormatted = payload.starttime\n    ? formatDateTime(state.starttime)\n    : \"\";\n  // 结束时间\n  state.endtimeFormatted = payload.endtime ? formatDateTime(state.endtime) : \"\";\n  // 停车时长\n  state.duringtimeFormatted = payload.starttime\n    ? formatTimeOverflowChinese(\n        parseTimeFromDateDiff(state.starttime, new Date(), true),\n        3\n      )\n    : \"\";\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    switch (action.type) {\n      case \"SET_ORDER\":\n      case \"INIT\":\n        // 初始化\n        reduce(nextState, payload);\n        break;\n    }\n    return nextState;\n  };\n","import { Action, Enum, PlainObject, State } from \"@zyzgroup/core-common\";\n\n// 车牌颜色\nexport const XgPlateColorEnum = new Enum({\n  BLUE: { serverValue: \"b\", serverDescription: \"蓝牌\" },\n  GREEN: { serverValue: \"g\", serverDescription: \"绿牌\" },\n  YELLOW: { serverValue: \"y\", serverDescription: \"黄牌\" },\n  YELLOW_GREEM: { serverValue: \"q\", serverDescription: \"黄绿\" },\n  BLACK: { serverValue: \"d\", serverDescription: \"黑牌\" },\n  WHITE: { serverValue: \"w\", serverDescription: \"白牌\" },\n  UNKNOWN: { serverValue: \"\", serverDescription: \"未知\" }\n});\n\n// 车牌认证类型\nexport const XgPlateCertifyTypeEnum = new Enum({\n  NORMAL: { serverValue: \"c\", serverDescription: \"普通车\" },\n  DISABLED: { serverValue: \"d\", serverDescription: \"残疾人车\" }\n});\n\n// 车牌认证状态\nexport const XgPlateCertifyStatusEnum = new Enum({\n  // 已绑定\n  REVIEW: { serverValue: \"waitting\", serverDescription: \"审核中\" },\n  ACCEPT: { serverValue: \"passed\", serverDescription: \"已认证\" },\n  REJECT: { serverValue: \"unpassed\", serverDescription: \"认证失败\" }\n});\n\nfunction reduce(state: State, payload: PlainObject): State {\n  // 车牌颜色\n  state.color = payload.color || \"\";\n  // 车牌号\n  state.plate = payload.plate || \"\";\n  state.colorFormatted = XgPlateColorEnum.getName(state.color);\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    switch (action.type) {\n      case \"SET_PLATE\":\n      case \"INIT\":\n        // 初始化\n        reduce(nextState, payload);\n        break;\n    }\n    return nextState;\n  };\n","import { Action, PlainObject, State } from \"@zyzgroup/core-common\";\n\nfunction reduce(state: State, payload: PlainObject): State {\n  state.id = payload.id ? String(payload.id) : \"\"; // payload.id 数据库中为 number\n  // 名称\n  state.name = payload.name || \"\";\n  // 简称\n  state.title = payload.apptitle || \"\";\n  // 「车位缴费页」 是否支持「填写通用非税票据信息」\n  state.nontax = typeof payload.nontax == \"boolean\" ? payload.nontax : false;\n  // 小程序内预定义样式名称\n  state.miniClassName = payload.minicss?.classname || \"\";\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    switch (action.type) {\n      case \"SET_GROUP\":\n      case \"INIT\":\n        // 初始化\n        reduce(nextState, payload);\n        break;\n    }\n    return nextState;\n  };\n","import { Action, PlainObject, State } from \"@zyzgroup/core-common\";\n\nfunction reduce(state: State, payload: PlainObject): State {\n  state.openid = payload.openid || \"\";\n  state.token = payload.token || \"\";\n  state.mobile = payload.mobile || \"\";\n  // 经度\n  state.longitude =\n    typeof payload.longitude == \"number\" ? payload.longitude : -1;\n  // 纬度\n  state.latitude = typeof payload.latitude == \"number\" ? payload.latitude : -1;\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    switch (action.type) {\n      case \"SET_USER\":\n      case \"INIT\":\n        // 初始化\n        reduce(nextState, payload);\n        break;\n    }\n    return nextState;\n  };\n","import { Action, PlainObject, State } from \"@zyzgroup/core-common\";\n\nfunction reduce(state: State, payload: PlainObject): State {\n  state.status = payload.status || \"\";\n  state.title = payload.title || \"\";\n  state.subtitle = payload.subtitle || \"\";\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    switch (action.type) {\n      case \"SET_RESULT\":\n      case \"INIT\":\n        // 初始化\n        reduce(nextState, payload);\n        break;\n    }\n    return nextState;\n  };\n","import { Action, PlainObject, State } from \"@zyzgroup/core-common\";\n\nfunction reduce(state: State, payload: PlainObject): State {\n  state.theme = payload?.theme || state?.theme || \"light\";\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    switch (action.type) {\n      case \"SET_THEME\":\n      case \"INIT\":\n        // 初始化\n        reduce(nextState, payload);\n        break;\n    }\n    return nextState;\n  };\n","import { Action, State } from \"@zyzgroup/core-common\";\nimport { ColorPattern, getCSSVar } from \"@zyzgroup/core-web\";\n\nexport function getColors(colorPattern: ColorPattern) {\n  return {\n    // 组件：颜色反向\n    foregroundReverse: getCSSVar(`--yz-foreground-reverse`, \"#ffffff\"),\n    foregroundBorderReverse: getCSSVar(\n      `--yz-foreground-border-reverse`,\n      \"#e6e6e6\"\n    ),\n    panelReverse: getCSSVar(`--yz-panel-reverse`, \"#f5f5f5\"),\n    panelBorderReverse: getCSSVar(`--yz-panel-border-reverse`, \"#b3b3b3\"),\n    gapReverse: getCSSVar(`--yz-gap-reverse`, \"#cccccc\"),\n    placeholderReverse: getCSSVar(`--yz-placeholder-reverse`, \"#8f8f8f\"),\n    fontReverse: getCSSVar(`--yz-font-reverse`, \"#333333\"),\n    fontSecondaryReverse: getCSSVar(`--yz-font-secondary-reverse`, \"#666666\"),\n    fontTertiaryReverse: getCSSVar(`--yz-font-tertiary-reverse`, \"#999999\"),\n\n    // 组件：颜色加深\n    foregroundCommon: getCSSVar(`--yz-foreground-common`, \"#ffffff\"),\n    foregroundBorderCommon: getCSSVar(\n      `--yz-foreground-border-common`,\n      \"#e6e6e6\"\n    ),\n    panelCommon: getCSSVar(`--yz-panel-common`, \"#f5f5f5\"),\n    panelBorderCommon: getCSSVar(`--yz-panel-border-common`, \"#b3b3b3\"),\n    gapCommon: getCSSVar(`--yz-gap-common`, \"#cccccc\"),\n    placeholderCommon: getCSSVar(`--yz-placeholder-common`, \"#8f8f8f\"),\n    fontCommon: getCSSVar(`--yz-font-common`, \"#333333\"),\n    fontSecondaryCommon: getCSSVar(`--yz-font-secondary-common`, \"#666666\"),\n    fontTertiaryCommon: getCSSVar(`--yz-font-tertiary-common`, \"#999999\"),\n\n    greenCommon: getCSSVar(\"--yz-xg-green\", \"#00be5a\"),\n    redCommon: getCSSVar(\"--yz-xg-red\", \"#fa503c\"),\n    redSecondaryCommon: getCSSVar(\"--yz-xg-red-secondary\", \"#fff5f5\"),\n    redSecondaryBorderCommon: getCSSVar(\n      \"--yz-xg-red-secondary-border\",\n      \"#fac8c8\"\n    ),\n    redGradientCommon: getCSSVar(\"--yz-xg-red-gradient\", \"#fa8c78\"),\n    yellowCommon: getCSSVar(\"--yz-xg-yellow\", \"#fa8c00\"),\n\n    // pattern 加深\n    primaryPattern: getCSSVar(\n      `--yz-pattern-${colorPattern}-primary`,\n      \"#5a82f0\"\n    ),\n    secondaryPattern: getCSSVar(\n      `--yz-pattern-${colorPattern}-secondary`,\n      \"#e6f0ff\"\n    ),\n    secondaryBorderCommon: getCSSVar(\n      `--yz-pattern-${colorPattern}-secondary-border`,\n      \"#a0b4f0\"\n    ),\n    gradientPattern: getCSSVar(\n      `--yz-pattern-${colorPattern}-gradient`,\n      \"#66b3ff\"\n    ),\n    foregroundPattern: getCSSVar(\n      `--yz-pattern-${colorPattern}-foreground`,\n      \"#ffffff\"\n    ),\n    foregroundBorderPattern: getCSSVar(\n      `--yz-pattern-${colorPattern}-foreground-border`,\n      \"#e6e6e6\"\n    ),\n    panelPattern: getCSSVar(`--yz-pattern-${colorPattern}-panel`, \"#f5f5f5\"),\n    panelBorderPattern: getCSSVar(\n      `--yz-pattern-${colorPattern}-panel-border`,\n      \"#b3b3b3\"\n    ),\n    gapPattern: getCSSVar(`--yz-pattern-${colorPattern}-gap`, \"#cccccc\"),\n    placeholderPattern: getCSSVar(\n      `--yz-pattern-${colorPattern}-placeholder`,\n      \"#8f8f8f\"\n    ),\n    fontPattern: getCSSVar(`--yz-pattern-${colorPattern}-font`, \"#333333\"),\n    fontSecondaryPattern: getCSSVar(\n      `--yz-pattern-${colorPattern}-font-secondary`,\n      \"#666666\"\n    ),\n    fontTertiaryPattern: getCSSVar(\n      `--yz-pattern-${colorPattern}-font-tertiary`,\n      \"#999999\"\n    )\n  };\n}\n\nfunction reduce(state: State, colorPattern: ColorPattern): State {\n  state.colorPattern = colorPattern;\n  const colors = getColors(colorPattern);\n  for (const k in colors) {\n    state[k] = colors[k];\n  }\n  return state;\n}\n\nexport default (immutable = true) =>\n  (state: State, action: Action) => {\n    const nextState: State = immutable ? { ...state } : state;\n    const payload = action.payload || {};\n    const colorPattern: ColorPattern =\n      payload?.colorPattern || nextState?.colorPattern || \"xg-blue\";\n    switch (action.type) {\n      case \"SET_COLOR\":\n      case \"INIT\":\n      default:\n        reduce(nextState, colorPattern);\n        break;\n    }\n    return nextState;\n  };\n","import {\n  computed,\n  provide,\n  inject,\n  ComputedRef,\n  ref,\n  reactive,\n  onMounted,\n  onUnmounted\n} from \"vue\";\nimport {\n  watchEffect,\n  EventBusListeners,\n  State,\n  applyMiddleware,\n  combineReducers,\n  exceptionLoggerMiddleware,\n  executeTimeLoggerMiddleware,\n  getNestedValue,\n  setNestedValue,\n  stateLoggerMiddleware,\n  mergeObjectDeep,\n  isJustObject\n} from \"@zyzgroup/core-common\";\nimport {\n  Context,\n  closeLog,\n  openLog,\n  ColorPattern,\n  getTheme$,\n  useLocalStorage,\n  WebMonitor\n} from \"@zyzgroup/core-web\";\nimport parkReducer from \"./store/reducers/parkReducer\";\nimport lotReducer from \"./store/reducers/lotReducer\";\nimport billReducer from \"./store/reducers/billReducer\";\nimport orderReducer from \"./store/reducers/orderReducer\";\nimport plateReducer from \"./store/reducers/plateReducer\";\nimport groupReducer from \"./store/reducers/groupReducer\";\nimport userReducer from \"./store/reducers/userReducer\";\nimport resultReducer from \"./store/reducers/resultReducer\";\nimport themeReducer from \"./store/reducers/themeReducer\";\nimport colorReducer from \"./store/reducers/colorReducer\";\nexport { getColors } from \"./store/reducers/colorReducer\";\n\nexport { Context } from \"@zyzgroup/core-web\";\n\nexport interface ContextEventBusListeners extends EventBusListeners {\n  globalResize: (width: number, height: number) => void;\n}\n\n// closeLog();\nopenLog();\n\nconst wm = new WebMonitor({ appId: \"xg\", checkWhiteScreen: true });\n\nconst immutable = true; // 不可变的\n// const immutable = false; // 可变的\n\nconst INIT_STATE = {\n  theme: {\n    theme: \"light\"\n  },\n  color: {\n    colorPattern: \"xg-blue\"\n  }\n};\n\n// 全局 Context\nexport const context = new Context<ContextEventBusListeners>({\n  store: {\n    state: INIT_STATE,\n    reducer: combineReducers(\n      {\n        park: parkReducer(immutable),\n        lot: lotReducer(immutable),\n        bill: billReducer(immutable),\n        order: orderReducer(immutable),\n        plate: plateReducer(immutable),\n        group: groupReducer(immutable),\n        user: userReducer(immutable),\n        result: resultReducer(immutable),\n        theme: themeReducer(immutable),\n        color: colorReducer(immutable)\n      },\n      immutable\n    ),\n    enhancer: applyMiddleware(\n      // stateLoggerMiddleware,\n      exceptionLoggerMiddleware,\n      executeTimeLoggerMiddleware\n    ),\n    immutable\n  },\n  axios: {\n    baseURL: \"https://test.xinge.me\",\n    // baseURL: \"https://xinge.ruolin-link.com\",\n    headers: {\n      \"Content-Type\": \"application/json;charset=UTF-8\"\n    }\n  },\n  static: {\n    token: useLocalStorage(\"xg-token\"),\n    hotline: \"400-158-8363\"\n  }\n});\n\n// provide<Context<ContextEventBusListeners>>(\"context\", context);\n// const context = inject<Context<ContextEventBusListeners>>(\"context\");\n// const context = inject<Context>(\"context\");\n\nconsole.log(context.store.getState());\nconst stateReactive: ReturnType<typeof reactive<State>> = reactive(\n  context.store.getState()\n);\n\ncontext.store.subscribe((change) => {\n  if (immutable) {\n    console.log(\"subscribe immutable\", change);\n    setNestedValue(stateReactive, change.path, change.newValue);\n  } else {\n    // console.log(\"subscribe mutable\", change);\n    if (isJustObject(change.newValue)) {\n      // state 特性：值不可能为对象\n      return;\n    }\n    console.log(\"subscribe mutable\", change);\n    // const newState = context.store.getState();\n    // mergeObjectDeep(stateReactive, newState);\n    setNestedValue(stateReactive, change.path, change.newValue);\n  }\n});\n\nexport function mapState(keys: string[]) {\n  const mappedState: Record<string, ComputedRef<any>> = {};\n  keys.forEach((key: string) => {\n    mappedState[key] = computed(() => getNestedValue(stateReactive, key));\n  });\n  return mappedState;\n}\n\nexport type Status = \"success\" | \"error\" | \"info\" | \"waiting\";\n\n// 监听 theme 切换\ngetTheme$().subscribe((theme) => {\n  // console.log(\"theme:\", theme);\n  context.store.dispatch({ type: \"SET_THEME\", payload: { theme } });\n  context.store.dispatch({\n    type: \"SET_COLOR\",\n    payload: { colorPattern: context.store.getState().color.colorPattern }\n  });\n});\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 { ref, watchEffect } from \"vue\";\nimport { Icon } from \"@iconify/vue\";\nimport { mapState } from \"../../context/context\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    icon?: string;\n    color?: string;\n  }>(),\n  { icon: \"mdi-light:home\" }\n);\n\nconst mappedState = mapState([\"color.primaryPattern\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.primaryPattern\"].value;\n});\n</script>\n\n<template>\n  <span\n    class=\"icon\"\n    :style=\"[\n      'display: inline-flex',\n      'justify-content: center',\n      'align-items: center',\n      'cursor: pointer',\n      'font-size: 1em',\n      'color: ' + color\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=\"ts\">\nimport { ref, watch, watchEffect } from \"vue\";\nimport { parseNumber, throttle } from \"@zyzgroup/core-common\";\nimport { __color, getCSSVar, ColorPattern } from \"@zyzgroup/core-web\";\nimport { context, getColors, mapState } from \"../../context/context\";\nimport Icon from \"./Icon.vue\";\nimport Loading11 from \"../loading/Loading11.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Icon },\n  inheritAttrs: true\n});\n\nexport type ButtonModePattern =\n  | \"primary\"\n  | \"secondary\"\n  | \"normal\"\n  | \"normal-reverse\"\n  | \"normal-transparent\"\n  | \"outline\"\n  | \"transparent\"\n  | \"gradient\"\n  | \"empty\";\n\nconst props = withDefaults(\n  defineProps<{\n    mode?: ButtonModePattern;\n    colorPattern?: ColorPattern;\n    size?: \"primary\" | \"secondary\" | \"tertiary\";\n    disabled?: boolean;\n    capsule?: boolean; // 按钮的两端为半圆形，整体形状接近一个椭圆或者圆形的胶囊\n\n    // 覆盖性 设置\n    backgroundColor?: string;\n\n    // 特异性 设置\n    icon?: string;\n    iconPosition?: \"left\" | \"right\";\n    width?: string;\n    height?: string;\n    fontSize?: string;\n    padding?: string;\n    borderRadius?: string; // border-radius:x/y\n    fontWeight?: string;\n  }>(),\n  {\n    mode: \"primary\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n    size: \"primary\",\n    disabled: false,\n    capsule: false,\n\n    // 特异性 设置\n    iconPosition: \"left\",\n    width: \"auto\",\n    fontWeight: \"normal\" // normal bold\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"click\", e: Event): void;\n  (event: \"throttledClick\", e: Event): void; // for ce element\n}>();\n\nlet height = props.height;\nlet fontSize = props.fontSize;\nlet padding = props.padding;\nlet borderRadius = props.borderRadius;\nif (props.size == \"primary\") {\n  height = height || getCSSVar(\"--yz-button-height\", \"44px\");\n  fontSize = fontSize || getCSSVar(\"--yz-font-size\", \"16px\");\n  padding = padding || getCSSVar(\"--yz-button-padding-horizontal\", \"20px\");\n  borderRadius = borderRadius || getCSSVar(\"--yz-button-border-radius\", \"4px\");\n} else if (props.size == \"secondary\") {\n  height = height || getCSSVar(\"--yz-button-height-secondary\", \"32px\");\n  fontSize = fontSize || getCSSVar(\"--yz-font-size-secondary\", \"14px\");\n  padding =\n    padding || getCSSVar(\"--yz-button-padding-horizontal-secondary\", \"16px\");\n  borderRadius =\n    borderRadius || getCSSVar(\"--yz-button-border-radius-secondary\", \"4px\");\n} else if (props.size == \"tertiary\") {\n  height = height || getCSSVar(\"--yz-button-height-tertiary\", \"24px\");\n  fontSize = fontSize || getCSSVar(\"--yz-font-size-secondary\", \"14px\");\n  padding =\n    padding || getCSSVar(\"--yz-button-padding-horizontal-tertiary\", \"8px\");\n  borderRadius =\n    borderRadius || getCSSVar(\"--yz-button-border-radius-tertiary\", \"4px\");\n}\n\nconst el = ref<HTMLElement>();\n\nconst opacity = ref(\"1\");\nwatch(\n  () => props.disabled,\n  () => {\n    opacity.value = props.disabled\n      ? `${1 - parseNumber(getCSSVar(\"--yz-disabled-alpha\"), 0.4)}`\n      : \"1\";\n  },\n  { immediate: true }\n);\n\n// 由 <更改颜色> 变为 <添加遮罩>\n// const darkenOver = 0.03;\n// const darkenClick = 0.06;\n// let baseBackgroundColor = backgroundColor.value;\n\nconst transparentColor = \"rgba(0,0,0,0)\";\n// 移动: 添加遮罩\nlet moveCoverColor = \"rgba(0,0,0,0.05)\";\n// 点击: 添加遮罩\nlet clickedCoverColor = \"rgba(0,0,0,0.1)\";\n\nconst showCover = ref(false);\nconst coverColor = ref(transparentColor);\n\nconst backgroundColor = ref(transparentColor);\nconst outlineColor = ref(transparentColor);\nconst contentColor = ref(transparentColor);\n\nfunction changeColor() {\n  if (isThemeDark) {\n    moveCoverColor = \"rgba(255,255,255,0.05)\";\n    clickedCoverColor = \"rgba(255,255,255,0.1)\";\n  } else {\n    moveCoverColor = \"rgba(0,0,0,0.05)\";\n    clickedCoverColor = \"rgba(0,0,0,0.1)\";\n  }\n\n  const {\n    panelReverse,\n    panelCommon,\n    gapReverse,\n    gapCommon,\n    fontReverse,\n    fontCommon,\n    primaryPattern,\n    secondaryPattern,\n    gradientPattern,\n    foregroundPattern\n  } = getColors(props.colorPattern);\n\n  switch (props.mode) {\n    case \"primary\":\n      backgroundColor.value = primaryPattern;\n      outlineColor.value = primaryPattern;\n      contentColor.value = foregroundPattern;\n      break;\n    case \"secondary\":\n      backgroundColor.value = secondaryPattern;\n      outlineColor.value = primaryPattern;\n      contentColor.value = isThemeDark ? foregroundPattern : primaryPattern;\n      break;\n    case \"normal\":\n      backgroundColor.value = panelCommon;\n      outlineColor.value = gapCommon;\n      contentColor.value = fontCommon;\n      break;\n    case \"normal-reverse\":\n      backgroundColor.value = panelReverse;\n      outlineColor.value = gapReverse;\n      contentColor.value = fontReverse;\n      break;\n    case \"normal-transparent\":\n      backgroundColor.value = transparentColor;\n      outlineColor.value = transparentColor;\n      contentColor.value = fontReverse;\n      break;\n    case \"outline\":\n      backgroundColor.value = transparentColor;\n      outlineColor.value = primaryPattern;\n      contentColor.value = primaryPattern;\n      break;\n    case \"transparent\":\n      backgroundColor.value = transparentColor;\n      outlineColor.value = transparentColor;\n      contentColor.value = primaryPattern;\n      break;\n    case \"gradient\":\n      backgroundColor.value = `linear-gradient(180deg, ${primaryPattern} 0%, ${gradientPattern} 100%)`;\n      outlineColor.value = transparentColor;\n      contentColor.value = foregroundPattern;\n      break;\n  }\n  // 覆盖性 设置\n  if (props.backgroundColor) {\n    backgroundColor.value = props.backgroundColor;\n  }\n  // baseBackgroundColor = backgroundColor.value;\n}\n\nconst mappedState = mapState([\"theme.theme\"]);\nlet currentTheme;\nlet isThemeDark;\nwatchEffect(() => {\n  const nextTheme = mappedState[\"theme.theme\"].value;\n  if (currentTheme == nextTheme) {\n    return;\n  }\n  currentTheme = nextTheme;\n  isThemeDark = currentTheme == \"dark\";\n  changeColor();\n});\n\nwatch(\n  () => props.mode,\n  () => {\n    changeColor();\n  },\n  {\n    // immediate: true\n  }\n);\n\nlet isMouseOver = false;\nconst mouseover = () => {\n  isMouseOver = true;\n  if (props.disabled) {\n    return;\n  }\n  showCover.value = true;\n  coverColor.value = moveCoverColor;\n  // switch (props.mode) {\n  //   case \"gradient\":\n  //     if (isThemeDark) {\n  //       backgroundColor.value = `linear-gradient(180deg, ${__color\n  //         .set(primaryPattern)\n  //         .lighten(darkenOver)\n  //         .toString()} 0%, ${__color\n  //         .set(gradientPattern)\n  //         .lighten(darkenOver)\n  //         .toString()} 100%)`;\n  //     } else {\n  //       backgroundColor.value = `linear-gradient(180deg, ${__color\n  //         .set(primaryPattern)\n  //         .darken(darkenOver)\n  //         .toString()} 0%, ${__color\n  //         .set(gradientPattern)\n  //         .darken(darkenOver)\n  //         .toString()} 100%)`;\n  //     }\n  //     break;\n  //   default:\n  //     if (isThemeDark) {\n  //       backgroundColor.value = __color\n  //         .set(baseBackgroundColor)\n  //         .lighten(darkenOver)\n  //         .toString();\n  //     } else {\n  //       backgroundColor.value = __color\n  //         .set(baseBackgroundColor)\n  //         .darken(darkenOver)\n  //         .toString();\n  //     }\n  //     break;\n  // }\n};\n\nconst mouseleave = () => {\n  isMouseOver = false;\n  showCover.value = false;\n  coverColor.value = transparentColor;\n  // backgroundColor.value = baseBackgroundColor;\n};\n\nconst throttledClick = throttle((e: Event) => {\n  if (props.disabled) {\n    return;\n  }\n  showCover.value = true;\n  coverColor.value = clickedCoverColor;\n  // switch (props.mode) {\n  //   case \"gradient\":\n  //     if (isThemeDark) {\n  //       backgroundColor.value = `linear-gradient(180deg, ${__color\n  //         .set(primaryPattern)\n  //         .lighten(darkenClick)\n  //         .toString()} 0%, ${__color\n  //         .set(gradientPattern)\n  //         .lighten(darkenClick)\n  //         .toString()} 100%)`;\n  //     } else {\n  //       backgroundColor.value = `linear-gradient(180deg, ${__color\n  //         .set(primaryPattern)\n  //         .darken(darkenClick)\n  //         .toString()} 0%, ${__color\n  //         .set(gradientPattern)\n  //         .darken(darkenClick)\n  //         .toString()} 100%)`;\n  //     }\n  //     break;\n  //   default:\n  //     if (isThemeDark) {\n  //       backgroundColor.value = __color\n  //         .set(baseBackgroundColor)\n  //         .lighten(darkenClick)\n  //         .toString();\n  //     } else {\n  //       backgroundColor.value = __color\n  //         .set(baseBackgroundColor)\n  //         .darken(darkenClick)\n  //         .toString();\n  //     }\n  //     break;\n  // }\n  setTimeout(() => {\n    mouseleave();\n  }, 150);\n  emits(\"click\", e);\n  emits(\"throttledClick\", e);\n}, 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      props.mode == 'empty'\n        ? {\n            position: 'relative',\n            overflow: 'hidden',\n            userSelect: 'none',\n            boxSizing: 'border-box',\n            display: 'inline-block',\n            opacity: opacity,\n            cursor: `${props.disabled ? 'not-allowed' : 'pointer'}`\n          }\n        : {\n            position: 'relative',\n            overflow: 'hidden',\n            background: `${backgroundColor}`,\n            border: `1px solid ${outlineColor}`,\n            color: contentColor,\n            opacity: opacity,\n            borderRadius: `${props.capsule ? '9999px' : borderRadius}`,\n            width: props.width,\n            height: height,\n            lineHeight: height,\n            fontSize: fontSize,\n            cursor: `${props.disabled ? 'not-allowed' : 'pointer'}`,\n            /* `pointer-events: ${props.disabled ? 'none' : 'auto'}`, */\n            userSelect: 'none',\n            boxSizing: 'border-box',\n            display: 'inline-flex',\n            justifyContent: 'center',\n            alignItems: 'center',\n            zIndex: '0'\n          }\n    \"\n    @mouseover=\"mouseover\"\n    @mouseleave=\"mouseleave\"\n    @click=\"throttledClick\"\n  >\n    <div\n      class=\"truncate\"\n      :style=\"\n        props.mode == 'empty'\n          ? {\n              display: 'flex',\n              justifyContent: 'center',\n              alignItems: 'center'\n            }\n          : {\n              padding: '0 ' + padding,\n              display: 'flex',\n              justifyContent: 'center',\n              alignItems: 'center',\n              fontWeight: props.fontWeight\n            }\n      \"\n    >\n      <!-- <div\n        class=\"loading\"\n        style=\"margin-right: 6px\"\n      >\n        <Loading11 :color=\"contentColor\"></Loading11>\n      </div> -->\n      <Icon\n        v-if=\"icon && iconPosition === 'left'\"\n        :icon=\"icon\"\n        :color=\"contentColor\"\n        :style=\"{\n          marginRight: '4px'\n        }\"\n      ></Icon>\n      <slot>\n        <!-- default none text -->\n      </slot>\n      <Icon\n        v-if=\"icon && iconPosition === 'right'\"\n        :icon=\"icon\"\n        :color=\"contentColor\"\n        :style=\"{\n          marginLeft: '4px'\n        }\"\n      ></Icon>\n    </div>\n    <div\n      :style=\"[\n        `display: ${showCover ? 'block' : 'none'}`,\n        `position: absolute`,\n        `top: 0`,\n        `left: 0`,\n        `width: 100%`,\n        `height: 100%`,\n        `background: ${coverColor}`,\n        `z-index: 1`\n      ]\"\n    ></div>\n  </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.gapReverse\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.gapReverse\"].value;\n});\n</script>\n\n<template>\n  <!-- 不设置 width height , 自适应父元素 -->\n  <!-- origin viewBox : x y width height, 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 24 24\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    preserveAspectRatio=\"none\"\n    fill=\"none\"\n    :style=\"{\n      display: 'block',\n      transformOrigin: 'center'\n    }\"\n  >\n    <path\n      d=\"M9.71952 17.7046C9.32618 18.0985 8.68844 18.0985 8.2951 17.7046C7.90176 17.3108 7.90176 16.6723 8.2951 16.2785L14.2806 11.2869C14.6739 10.8931 15.3116 10.8931 15.705 11.2869C16.0983 11.6807 16.0983 12.3193 15.705 12.7131L9.71952 17.7046Z\"\n      :fill=\"color\"\n    />\n    <path\n      d=\"M8.29501 7.72152C7.90166 7.3277 7.90166 6.68919 8.29501 6.29537C8.68835 5.90154 9.32609 5.90154 9.71943 6.29537L15.705 11.2869C16.0983 11.6807 16.0983 12.3193 15.705 12.7131C15.3116 13.1069 14.6738 13.1069 14.2805 12.7131L8.29501 7.72152Z\"\n      :fill=\"color\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport {\n  getCalendarPageItems,\n  parseDate,\n  type DateDetail,\n  getDateDetail,\n  getNthMonth,\n  flattenArray,\n  getNthDay\n} from \"@zyzgroup/core-common\";\nimport { __color, ColorPattern } from \"@zyzgroup/core-web\";\nimport { context, getColors } from \"../../context/context\";\nimport Button from \"./Button.vue\";\nimport IconArrowRight from \"../icon/IconArrowRight.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Button, IconArrowRight },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    colorPattern?: ColorPattern;\n    title?: string; // 标题\n    initDay?: string; // 当前日期\n    startDay?: string; // 可选范围：开始日期\n    endDay?: string; // 可选范围：结束日期\n    excludeDays?: string[]; // 排除日期范围，要求已按日历排序\n    selectedDays?: string[]; // 已选择日期范围，要求已按日历排序\n  }>(),\n  {\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n    title: \"\",\n    excludeDays: () => [],\n    selectedDays: () => []\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"cancel\"): void;\n  (event: \"confirm\", date: Date): void;\n}>();\n\n// 样式\nconst {\n  foregroundPattern,\n  panelPattern,\n  primaryPattern,\n  secondaryPattern,\n  fontPattern,\n  fontTertiaryPattern\n} = getColors(props.colorPattern);\nconst panelPatternLighter = __color\n  .setColor(panelPattern)\n  .lighten(0.5)\n  .toString();\n\nconst startDateDetail = props.startDay\n  ? getDateDetail(parseDate(props.startDay))\n  : null;\nconst endDateDetail = props.endDay\n  ? getDateDetail(parseDate(props.endDay))\n  : null;\nconst excludeDateDetails = props.excludeDays.map((d) =>\n  getDateDetail(parseDate(d))\n);\nconst initSelectedDateDetails = props.selectedDays.map((d) =>\n  getDateDetail(parseDate(d))\n);\n// 初始化\nconst initDateDetail = getDateDetail(\n  props.initDay ? parseDate(props.initDay) : new Date()\n);\nconst selectDateDetail = ref(getInitAvailableDateDetailInRange(initDateDetail));\nlet showDateDetail = initDateDetail;\nconst showYear = ref(showDateDetail.year);\nconst showMonth = ref(showDateDetail.month);\nconst showDateDetails = ref(\n  expandDateDetails(getCalendarPageItems(showDateDetail.date))\n);\nsetCalendarStyle();\n\nfunction getInitAvailableDateDetailInRange(\n  initDateDetail: DateDetail\n): DateDetail | null {\n  let currentDateDetail = initDateDetail;\n  if (\n    startDateDetail &&\n    currentDateDetail.date.getTime() < startDateDetail.date.getTime()\n  ) {\n    currentDateDetail = getDateDetail(startDateDetail.date);\n  }\n\n  function available(): boolean {\n    for (let i = 0, c = initSelectedDateDetails.length; i < c; i++) {\n      const item = initSelectedDateDetails[i];\n      if (\n        currentDateDetail.year == item.year &&\n        currentDateDetail.month == item.month &&\n        currentDateDetail.day == item.day\n      ) {\n        return false;\n      }\n    }\n    for (let i = 0, c = excludeDateDetails.length; i < c; i++) {\n      const item = excludeDateDetails[i];\n      if (\n        currentDateDetail.year == item.year &&\n        currentDateDetail.month == item.month &&\n        currentDateDetail.day == item.day\n      ) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  while (!available()) {\n    currentDateDetail = getDateDetail(getNthDay(currentDateDetail.date, 1));\n    if (\n      endDateDetail &&\n      currentDateDetail.date.getTime() > endDateDetail.date.getTime()\n    ) {\n      return null;\n    }\n  }\n\n  return currentDateDetail;\n}\n\ntype ExpandedDateDetail = DateDetail & {\n  isShowMonth: boolean; // 是否是显示月份\n  isInitSelected: boolean; // 初始化时是否已被选择；如果是，则不可再选；\n  isDisabled: boolean; // 是否不可选择\n  isSelected: boolean; // 是否已被选择\n  // 样式\n  bgColor: string;\n  fontColor: string;\n};\n\nfunction expandDateDetails(pageItems: DateDetail[][]): ExpandedDateDetail[][] {\n  const expandedPagesItems: ExpandedDateDetail[][] = [];\n  for (let i = 0, rows = pageItems.length; i < rows; i++) {\n    const row: ExpandedDateDetail[] = [];\n    for (let j = 0; j < 7; j++) {\n      const item = pageItems[i][j];\n      // 是否已预选\n      let isInitSelected = false;\n      initSelectedDateDetails.forEach((d) => {\n        if (!isInitSelected) {\n          isInitSelected =\n            item.year == d.year && item.month == d.month && item.day == d.day;\n        }\n      });\n      // 是否不可选\n      let isDisabled = isInitSelected;\n      if (!isDisabled && startDateDetail) {\n        isDisabled = item.date.getTime() < startDateDetail.date.getTime();\n      }\n      if (!isDisabled && endDateDetail) {\n        isDisabled = item.date.getTime() > endDateDetail.date.getTime();\n      }\n      excludeDateDetails.forEach((d) => {\n        if (!isDisabled) {\n          isDisabled =\n            item.year == d.year && item.month == d.month && item.day == d.day;\n        }\n      });\n      row.push({\n        ...item,\n        isShowMonth:\n          item.year == showYear.value && item.month == showMonth.value,\n        isInitSelected,\n        isDisabled,\n        isSelected:\n          !isDisabled &&\n          selectDateDetail.value &&\n          item.year == selectDateDetail.value.year &&\n          item.month == selectDateDetail.value.month &&\n          item.day == selectDateDetail.value.day,\n        // 样式\n        bgColor: \"\",\n        fontColor: \"\"\n      });\n    }\n    expandedPagesItems.push(row);\n  }\n  return expandedPagesItems;\n}\n\nfunction setCalendarStyle() {\n  flattenArray(showDateDetails.value).forEach((i) => {\n    i.bgColor = i.isInitSelected\n      ? secondaryPattern\n      : i.isSelected\n      ? primaryPattern\n      : i.isShowMonth\n      ? i.isDisabled\n        ? panelPatternLighter\n        : panelPattern\n      : \"transparent\";\n    i.fontColor = i.isInitSelected\n      ? fontPattern\n      : i.isSelected\n      ? foregroundPattern\n      : !i.isShowMonth || i.isDisabled\n      ? fontTertiaryPattern\n      : fontPattern;\n  });\n  showDateDetails.value = [...showDateDetails.value];\n}\n\n// 上一个月\nfunction prevMonth() {\n  showDateDetail = getDateDetail(getNthMonth(showDateDetail.date, -1, true));\n  showYear.value = showDateDetail.year;\n  showMonth.value = showDateDetail.month;\n  showDateDetails.value = expandDateDetails(\n    getCalendarPageItems(showDateDetail.date)\n  );\n  setCalendarStyle();\n}\n\n// 下一个月\nfunction nextMonth() {\n  showDateDetail = getDateDetail(getNthMonth(showDateDetail.date, 1, true));\n  showYear.value = showDateDetail.year;\n  showMonth.value = showDateDetail.month;\n  showDateDetails.value = expandDateDetails(\n    getCalendarPageItems(showDateDetail.date)\n  );\n  setCalendarStyle();\n}\n\n// 取消\nconst cancel = () => {\n  emits(\"cancel\");\n};\n\n// 确定\nconst confirm = () => {\n  if (!selectDateDetail.value) {\n    // 无响应\n    return;\n  }\n  emits(\"confirm\", selectDateDetail.value.date);\n};\n\n// 选择日期\nconst select = (\n  year: number,\n  month: number,\n  day: number,\n  isDisabled: boolean\n) => {\n  if (isDisabled) {\n    // 无响应\n    return;\n  }\n  selectDateDetail.value = null;\n  let direction = \"\";\n  flattenArray(showDateDetails.value).forEach((i) => {\n    const shouldSelected = i.year == year && i.month == month && i.day == day;\n    // 可取消选择\n    i.isSelected = i.isSelected && shouldSelected ? false : shouldSelected;\n    if (i.isSelected) {\n      selectDateDetail.value = i;\n      // 选择了非显示月日，自动跳转\n      if (year != showDateDetail.year || month != showDateDetail.month) {\n        direction =\n          i.date.getTime() > showDateDetail.date.getTime()\n            ? \"forward\"\n            : \"backward\";\n      }\n    }\n  });\n  if (direction == \"forward\") {\n    nextMonth();\n  } else if (direction == \"backward\") {\n    prevMonth();\n  } else {\n    setCalendarStyle();\n  }\n};\n\ndefineExpose({\n  //\n});\n</script>\n\n<template>\n  <div\n    class=\"calendar\"\n    :style=\"{ backgroundColor: foregroundPattern, color: fontPattern }\"\n  >\n    <div\n      class=\"calendar-title\"\n      :style=\"{ borderBottom: `2px solid ${panelPattern}` }\"\n    >\n      <Button\n        mode=\"empty\"\n        @throttledClick=\"cancel\"\n      >\n        取消\n      </Button>\n      <div>{{ props.title }}</div>\n      <Button\n        :style=\"{\n          color: primaryPattern\n        }\"\n        mode=\"empty\"\n        :disabled=\"!selectDateDetail\"\n        @throttledClick=\"confirm\"\n      >\n        确定\n      </Button>\n    </div>\n    <div class=\"calendar-year-month\">\n      <Button\n        class=\"icon-prev-month\"\n        :style=\"{\n          backgroundColor: panelPattern\n        }\"\n        mode=\"empty\"\n        @throttledClick=\"prevMonth\"\n      >\n        <IconArrowRight :color=\"fontPattern\"></IconArrowRight>\n      </Button>\n      <div>{{ showYear }} 年 {{ showMonth }} 月</div>\n      <Button\n        class=\"icon-next-month\"\n        :style=\"{\n          backgroundColor: panelPattern\n        }\"\n        mode=\"empty\"\n        @throttledClick=\"nextMonth\"\n      >\n        <IconArrowRight :color=\"fontPattern\"></IconArrowRight>\n      </Button>\n    </div>\n    <div class=\"calendar-items\">\n      <div\n        class=\"calendar-items-row calendar-items-row-week\"\n        :style=\"{ color: fontTertiaryPattern }\"\n      >\n        <div>一</div>\n        <div>二</div>\n        <div>三</div>\n        <div>四</div>\n        <div>五</div>\n        <div>六</div>\n        <div>日</div>\n      </div>\n      <div\n        v-for=\"row in showDateDetails\"\n        class=\"calendar-items-row\"\n      >\n        <Button\n          v-for=\"item in row\"\n          class=\"calendar-item\"\n          :style=\"{\n            backgroundColor: item.bgColor,\n            color: item.fontColor\n          }\"\n          mode=\"empty\"\n          :disabled=\"item.isDisabled\"\n          @throttledClick=\"\n            select(item.year, item.month, item.day, item.isDisabled)\n          \"\n        >\n          {{ item.day }}\n        </Button>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.calendar {\n  width: 100%;\n  box-sizing: border-box;\n  font-size: 1em;\n  line-height: 1;\n}\n.calendar > div {\n  padding: 0.8em 1em;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n.calendar > .calendar-title {\n  font-size: 0.8em;\n}\n.calendar > .calendar-title > div:not(:nth-child(2)) {\n  padding: 0.3em 0.6em;\n}\n.calendar > .calendar-title > div:nth-child(2) {\n  font-weight: bold;\n  font-size: 1em;\n}\n.calendar > .calendar-year-month {\n  font-size: 0.8em;\n}\n.calendar > .calendar-year-month > div:nth-child(2) {\n  font-weight: bold;\n  font-size: 1em;\n}\n.icon-prev-month,\n.icon-next-month {\n  width: 1.8em;\n  border-radius: 1.8em;\n  overflow: hidden;\n  padding: 0.2em;\n}\n.icon-prev-month {\n  transform: rotate(180deg);\n}\n.calendar > .calendar-items {\n  flex-direction: column;\n  padding-top: 0.5em;\n}\n.calendar-items-row {\n  width: 100%;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  text-align: center;\n  font-size: 0.8em;\n}\n.calendar-items-row-week {\n  padding-bottom: 0.5em;\n  font-size: 0.7em;\n}\n.calendar-items-row-week > div {\n  flex: 1;\n}\n.calendar-item {\n  flex: 1;\n  margin-bottom: 0.3em;\n  padding: 0.6em 0;\n  border-radius: 0.4em;\n  font-weight: bold;\n}\n.calendar-item + .calendar-item {\n  margin-left: 0.3em;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, onUnmounted, watchEffect, CSSProperties } from \"vue\";\nimport { CSSAnimationName } from \"@zyzgroup/core-common\";\nimport {\n  SupportedEaseNameToCubicBezier,\n  animationEnd$,\n  animationStart$\n} from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nexport type CSSAnimationOptions = {\n  name?: CSSAnimationName;\n  timingFunction?: SupportedEaseNameToCubicBezier;\n  duration?: number;\n  delay?: number;\n};\n\nconst props = withDefaults(\n  defineProps<{\n    name?: CSSAnimationName;\n    timingFunction?: SupportedEaseNameToCubicBezier;\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(0.25, 0.1, 0.25, 1)\n    // steps()\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    name: \"jelly\",\n    delay: 0,\n    fillMode: \"both\",\n    playState: \"running\",\n    perspective: \"1200px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"cssanimationstart\", e: AnimationEvent): void;\n  (event: \"cssanimationend\", e: AnimationEvent): void;\n}>();\n\nconst r = ref();\n\nlet s1;\nlet s2;\nwatchEffect(() => {\n  if (!r.value || s1 || s2) {\n    return;\n  }\n  s1 = animationStart$(r.value).subscribe((e) => {\n    emits(\"cssanimationstart\", e);\n  });\n  s2 = animationEnd$(r.value).subscribe((e) => {\n    emits(\"cssanimationend\", e);\n  });\n});\n\n// 设置预定义变化\nfunction getPredefinedStyle(options?: CSSAnimationOptions) {\n  let defaultStyle: {\n    duration?: number;\n    timingFunction?: SupportedEaseNameToCubicBezier;\n    repeat?: number | \"infinite\";\n    direction?: \"normal\" | \"reverse\" | \"alternate\" | \"alternate-reverse\";\n    transformOrigin?: string;\n    parentOverflow?: string;\n    backfaceVisibility?: \"visible\" | \"hidden\";\n  } = {};\n  switch (options?.name || props.name) {\n    case \"bounce\":\n      defaultStyle = {\n        transformOrigin: \"center bottom\", // \"50% 100%\"\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"bounceIn\":\n      defaultStyle = {\n        duration: 750,\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"bounceOut\":\n      defaultStyle = {\n        duration: 750\n      };\n      break;\n    case \"fade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"fadeIn\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"fadeOut\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flip\":\n      defaultStyle = {\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flash\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flipInLeft\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"flipInRight\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"flipInBottom\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"flipInTop\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"flipInX\":\n      defaultStyle = {\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flipInY\":\n      defaultStyle = {\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flipOutBottom\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"flipOutLeft\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"flipOutRight\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"flipOutTop\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"flipOutX\":\n      defaultStyle = {\n        duration: 750,\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flipOutY\":\n      defaultStyle = {\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"headShake\":\n      defaultStyle = {\n        timingFunction: \"ease-in-out\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"heartBeat\":\n      defaultStyle = {\n        duration: 1300,\n        timingFunction: \"ease-in-out\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"hinge\":\n      defaultStyle = {\n        duration: 750,\n        transformOrigin: \"left top\", // \"0% 0%\"\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"jackInTheBox\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"jello\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"jelly\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"lightSpeedInLeft\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"lightSpeedInRight\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"lightSpeedOutLeft\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"lightSpeedOutRight\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"moveFromLeftFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveToLeftFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveFromRightFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveToRightFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveFromTopFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveToTopFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveFromBottomFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveToBottomFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveFromLeft\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveToLeft\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveFromRight\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveToRight\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveFromTop\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveToTop\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveFromBottom\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveToBottom\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"pulse\":\n      defaultStyle = {\n        timingFunction: \"ease-in-out\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"rotateFall\":\n      defaultStyle = {\n        duration: 1000,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"left top\" // \"0% 0%\"\n      };\n      break;\n    case \"rotateSlideOut\":\n      defaultStyle = {\n        duration: 1000\n      };\n      break;\n    case \"rotateSlideIn\":\n      defaultStyle = {\n        duration: 1000\n      };\n      break;\n    case \"rotateRightSideFirst\":\n      defaultStyle = {\n        duration: 800,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateLeftSideFirst\":\n      defaultStyle = {\n        duration: 800,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateTopSideFirst\":\n      defaultStyle = {\n        duration: 800,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateBottomSideFirst\":\n      defaultStyle = {\n        duration: 800,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotatePushLeft\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotatePullBottom\":\n      defaultStyle = {\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotatePullLeft\":\n      defaultStyle = {\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotatePullRight\":\n      defaultStyle = {\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotatePullTop\":\n      defaultStyle = {\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotatePushRight\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotatePushTop\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotatePushBottom\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateRoomLeftOut\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateRoomLeftIn\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateRoomRightOut\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateRoomRightIn\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateRoomTopOut\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateRoomTopIn\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateRoomBottomOut\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateRoomBottomIn\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateCarouselLeftOut\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselLeftIn\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselRightOut\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselRightIn\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselTopOut\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselTopIn\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselBottomOut\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselBottomIn\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateFoldRight\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateFoldLeft\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateFoldTop\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateFoldBottom\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateUnfoldLeft\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateUnfoldRight\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateUnfoldTop\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateUnfoldBottom\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateCubeLeftOut\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateCubeLeftIn\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateCubeRightOut\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateCubeRightIn\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateCubeTopOut\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateCubeTopIn\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateCubeBottomOut\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateCubeBottomIn\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateInNewspaper\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"rotateOutNewspaper\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"rotateInUpLeft\":\n      defaultStyle = {\n        transformOrigin: \"left bottom\" // \"0% 100%\"\n      };\n      break;\n    case \"rotateInUpRight\":\n      defaultStyle = {\n        transformOrigin: \"right bottom\" // \"100% 100%\"\n      };\n      break;\n    case \"rotateInDownLeft\":\n      defaultStyle = {\n        transformOrigin: \"left bottom\" // \"0% 100%\"\n      };\n      break;\n    case \"rotateInDownRight\":\n      defaultStyle = {\n        transformOrigin: \"right bottom\" // \"100% 100%\"\n      };\n      break;\n    case \"rotateOutUpLeft\":\n      defaultStyle = {\n        transformOrigin: \"left bottom\" // \"0% 100%\"\n      };\n      break;\n    case \"rotateOutUpRight\":\n      defaultStyle = {\n        transformOrigin: \"right bottom\" // \"100% 100%\"\n      };\n      break;\n    case \"rotateOutDownLeft\":\n      defaultStyle = {\n        transformOrigin: \"left bottom\" // \"0% 100%\"\n      };\n      break;\n    case \"rotateOutDownRight\":\n      defaultStyle = {\n        transformOrigin: \"right bottom\" // \"100% 100%\"\n      };\n      break;\n    case \"rotateSidesIn\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"rotateSidesOut\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"rubberBand\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"shakeX\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"shakeY\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"statusProcessing\":\n      defaultStyle = {\n        duration: 1200,\n        timingFunction: \"ease-in-out\",\n        repeat: \"infinite\"\n      };\n      break;\n    case \"superRainbow\":\n      defaultStyle = {\n        timingFunction: \"linear\",\n        duration: 15000,\n        repeat: \"infinite\",\n        direction: \"alternate\"\n      };\n      break;\n    case \"swing\":\n      defaultStyle = {\n        transformOrigin: \"center top\", // \"50% 0%\"\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"tada\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"wobble\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"zoomOutRight\":\n      defaultStyle = {\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"zoomOutDown\":\n      defaultStyle = {\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"zoomOutLeft\":\n      defaultStyle = {\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"zoomOutUp\":\n      defaultStyle = {\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n  }\n  return {\n    duration:\n      options?.duration ?? props.duration ?? defaultStyle.duration ?? 500,\n    timingFunction:\n      options?.timingFunction ??\n      props.timingFunction ??\n      defaultStyle.timingFunction ??\n      \"ease\",\n    repeat: props.repeat ?? defaultStyle.repeat ?? 1,\n    direction: props.direction ?? defaultStyle.direction ?? \"normal\",\n    transformOrigin: defaultStyle.transformOrigin ?? \"50% 50%\", // [x-offset y-offset] \"center\" or \"50% 50%\"\n    backfaceVisibility: defaultStyle.backfaceVisibility ?? \"hidden\", // visible hidden\n    parentOverflow: defaultStyle.parentOverflow ?? \"hidden\"\n  };\n}\n\nfunction getBasicStyle(options?: CSSAnimationOptions) {\n  return {\n    transformStyle: \"preserve-3d\"\n    // transform: \"translate3d(0, 0, 0)\", // Chrome Layerize 花费时间长\n    // perspective: props.perspective\n    // willChange: \"box-shadow, transform\",\n  } as CSSProperties;\n}\n\nconst style = ref<CSSProperties>({});\n\n// 清除\nconst clear = (options?: CSSAnimationOptions) => {\n  style.value = {\n    ...getBasicStyle(options),\n    animation: \"none\"\n  };\n  if (r.value) {\n    // restart css animation\n    r.value.style.animation = \"none\";\n    r.value.offsetHeight; // trigger reflow\n    r.value.style.animation = null;\n  }\n};\n// 初始化执行\nclear();\n\nfunction set(\n  options?: CSSAnimationOptions,\n  forceDirection?: \"normal\" | \"reverse\" | \"alternate\" | \"alternate-reverse\"\n) {\n  const predefinedStyle = getPredefinedStyle(options);\n  const duration = predefinedStyle.duration;\n  const timingFunction = predefinedStyle.timingFunction;\n  const repeat = predefinedStyle.repeat;\n  let direction = predefinedStyle.direction;\n  if (forceDirection) {\n    direction = forceDirection;\n  }\n  const delay =\n    typeof options?.delay == \"number\" ? options?.delay : props.delay;\n  const transformOrigin = predefinedStyle.transformOrigin;\n  const backfaceVisibility = predefinedStyle.backfaceVisibility;\n  const parentOverflow = predefinedStyle.parentOverflow;\n  if (r.value && r.value.parentElement) {\n    r.value.parentElement.style.overflow = parentOverflow;\n  }\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\n  style.value = {\n    ...getBasicStyle(options),\n    // animation: `${animationName} ${duration}ms ${timingFunction} ${delay}ms ${repeat} ${direction} ${props.fillMode} ${props.playState}`,\n    animationName: options?.name || props.name,\n    animationDuration: `${duration}ms`,\n    animationDelay: `${delay}ms`,\n    animationIterationCount: repeat,\n    animationFillMode: props.fillMode,\n    animationTimingFunction: timingFunction,\n    animationDirection: direction,\n    animationPlayState: props.playState,\n    transformOrigin,\n    backfaceVisibility\n  };\n}\n\n// css animation 与 js animation 有时间差\n// 统一用 css animation ，抹平与 js animation 的差异\nfunction trigger(options?: CSSAnimationOptions) {\n  clear(options);\n  set(options, \"normal\");\n}\n\nfunction triggerReverse(options?: CSSAnimationOptions) {\n  clear(options);\n  set(options, \"reverse\");\n}\n\nonUnmounted(() => {\n  s1?.unsubscribe();\n  s2?.unsubscribe();\n});\n\ndefineExpose({ trigger, triggerReverse, clear });\n</script>\n\n<template>\n  <div\n    ref=\"r\"\n    class=\"css-animation\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n\n<!-- 放在顶层 main.ts 中以节省空间 -->\n<!-- <style>\n@import \"../../../../../css/animate_ce.css\";\n</style> -->\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref, watchEffect } from \"vue\";\nimport { CSSAnimationName } from \"@zyzgroup/core-common\";\nimport {\n  useSafeArea$,\n  SupportedEaseNameToCubicBezier\n} from \"@zyzgroup/core-web\";\nimport CSSAnimation, { type CSSAnimationOptions } from \"./CSSAnimation.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { CSSAnimation },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    action?: \"open\" | \"close\" | \"static\";\n    name?: CSSAnimationName;\n    timingFunction?: SupportedEaseNameToCubicBezier;\n    duration?: number;\n    delay?: number;\n  }>(),\n  {\n    action: \"static\", // 默认：已 open\n    name: \"moveFromRight\",\n    timingFunction: \"ease\",\n    duration: 300,\n    delay: 0\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"pageOpenStart\"): void;\n  (event: \"pageOpenEnd\"): void;\n  (event: \"pageCloseStart\"): void;\n  (event: \"pageCloseEnd\"): void;\n}>();\n\nconst r = ref();\n\nconst safeAreaBottom = ref(\"0px\");\nlet safeArea$;\nonMounted(() => {\n  safeArea$ = useSafeArea$().subscribe((s) => {\n    safeAreaBottom.value = s.bottom;\n  });\n});\nonUnmounted(() => {\n  safeArea$?.unsubscribe();\n});\n\nlet action = \"static\";\n\nconst cssanimationstart = () => {\n  switch (action) {\n    case \"open\":\n      emits(\"pageOpenStart\");\n      break;\n    case \"close\":\n      emits(\"pageCloseStart\");\n      break;\n    default:\n      // 忽略：其他组件触发的 cssanimationstart\n      break;\n  }\n};\n\nconst cssanimationend = () => {\n  switch (action) {\n    case \"open\":\n      emits(\"pageOpenEnd\");\n      break;\n    case \"close\":\n      emits(\"pageCloseEnd\");\n      break;\n    default:\n      // 忽略：其他组件触发的 cssanimationend\n      break;\n  }\n  action = \"static\";\n};\n\nconst open = (options?: CSSAnimationOptions) => {\n  action = \"open\";\n  r.value?.trigger(options);\n};\n\nconst close = (options?: CSSAnimationOptions) => {\n  action = \"close\";\n  r.value?.triggerReverse(options);\n};\n\nwatchEffect(() => {\n  switch (props.action) {\n    case \"open\":\n      open();\n      break;\n    case \"close\":\n      close();\n      break;\n    case \"static\":\n    default:\n      break;\n  }\n});\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <CSSAnimation\n    ref=\"r\"\n    class=\"page\"\n    :class=\"props.name\"\n    :name=\"props.name\"\n    :timingFunction=\"props.timingFunction\"\n    :duration=\"props.duration\"\n    :delay=\"props.delay\"\n    @cssanimationstart=\"cssanimationstart\"\n    @cssanimationend=\"cssanimationend\"\n  >\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\n      class=\"page-footer\"\n      :style=\"{ paddingBottom: safeAreaBottom }\"\n    >\n      <slot name=\"footer\"></slot>\n    </div>\n\n    <div class=\"page-global\">\n      <slot name=\"global\"></slot>\n    </div>\n  </CSSAnimation>\n</template>\n\n<style scoped>\n.page {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  box-sizing: border-box;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n}\n.page-header {\n  z-index: 2;\n  flex: 0 0 auto;\n  width: 100%;\n  box-sizing: border-box;\n  position: relative;\n}\n.page-main {\n  z-index: 1;\n  flex: 1 1 auto;\n  width: 100%;\n  box-sizing: border-box;\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n}\n.page-main-scroll {\n  flex: 1 1 auto;\n  width: 100%;\n  box-sizing: border-box;\n  position: relative;\n  overflow-y: scroll;\n}\n.page-footer {\n  z-index: 2;\n  flex: 0 0 auto;\n  width: 100%;\n  box-sizing: border-box;\n  position: relative;\n}\n/*\n.page-main-scroll > :nth-child(1) {\n  min-height: 100%;\n}\n*/\n</style>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n    colorEnd?: string;\n    isGradient?: boolean;\n  }>(),\n  {\n    isGradient: false\n  }\n);\n\nconst mappedState = mapState([\"color.redCommon\", \"color.redGradientCommon\"]);\n\nconst color = ref();\nconst colorEnd = ref();\nconst oppositeColor = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.redCommon\"].value;\n  colorEnd.value =\n    props.colorEnd ||\n    (props.isGradient\n      ? mappedState[\"color.redGradientCommon\"].value\n      : color.value);\n  oppositeColor.value = __color.set(color.value).opposite(true).toString();\n});\n</script>\n\n<template>\n  <!-- 不设置 width height , 自适应父元素 -->\n  <!-- origin viewBox : x y width height : 0 0 24 24 , 目前 viewBox 是为了切除四周多余空白 -->\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=\"`icon_warn_${color}_${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=\"color\"\n        />\n        <stop\n          offset=\"1\"\n          :stop-color=\"colorEnd\"\n        />\n      </linearGradient>\n    </defs>\n    <!-- 背景圆 -->\n    <circle\n      cx=\"12\"\n      cy=\"12\"\n      r=\"8\"\n      :fill=\"`url(#icon_warn_${color}_${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=\"oppositeColor\"\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=\"oppositeColor\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"ts\">\nimport { mapState } from \"../../context/context\";\nimport IconWarn from \"../icon/IconWarn.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { IconWarn },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"none\" | \"warn\";\n    text?: string;\n    color?: string;\n  }>(),\n  {\n    type: \"none\",\n    text: \"\"\n  }\n);\n\nconst mappedState = mapState([\"color.fontPattern\"]);\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"text\"\n    :style=\"{\n      color: props.color || mappedState['color.fontPattern'].value\n    }\"\n  >\n    <div class=\"text-icon\">\n      <slot name=\"icon\">\n        <IconWarn v-if=\"props.type == 'warn'\"></IconWarn>\n      </slot>\n    </div>\n    <div\n      class=\"ellipsis\"\n      :style=\"{ marginLeft: props.type == 'none' ? '0' : '0.35em' }\"\n    >\n      <slot>{{ props.text }}</slot>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.text {\n  display: flex;\n  justify-content: flex-start;\n  align-items: center;\n  font-size: 1em;\n  line-height: 1;\n  max-width: 100%;\n}\n.text .text-icon {\n  flex: 0 0 auto;\n  width: 1em;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from \"vue\";\nimport { mapState } from \"../../context/context\";\nimport Text from \"./Text.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Text },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    init?: string;\n    placeholder?: string;\n    rows?: number;\n    cols?: number;\n    maxlength?: number;\n    minlength?: nunber;\n    fontSize?: string;\n  }>(),\n  {\n    placeholder: \"\",\n    rows: 3,\n    maxlength: 200,\n    fontSize: \"14px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"input\", text: string): void;\n  (event: \"yz-input\", text: string): void;\n}>();\n\nconst mappedState = mapState([\"color.panelPattern\", \"color.fontPattern\"]);\n\nconst text = ref(props.init || \"\");\n\nfunction focus() {}\n\nfunction blur() {}\n\nfunction input(e: Event) {\n  // 每次内容发生变化都会触发\n  text.value = (e.target as HTMLTextareaElement).value;\n  if (text.value) {\n    emits(\"input\", text.value);\n    emits(\"yz-input\", text.value);\n  }\n}\n\nfunction change(e: Event) {\n  // 只有在内容改变并且失去焦点时才触发\n}\n\nonMounted(() => {});\n\nonUnmounted(() => {});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"textarea\"\n    :style=\"{\n      backgroundColor: mappedState['color.panelPattern'].value,\n      borderRadius: '4px'\n    }\"\n  >\n    <textarea\n      class=\"textarea-raw\"\n      name=\"textarea-raw\"\n      :autocapitalize=\"false\"\n      autocomplete=\"off\"\n      autofocus=\"off\"\n      :disabled=\"false\"\n      :readonly=\"false\"\n      :required=\"false\"\n      :rows=\"props.rows\"\n      :cols=\"props.cols\"\n      :maxlength=\"props.maxlength\"\n      :minlength=\"props.minlength\"\n      :placeholder=\"props.placeholder\"\n      :style=\"{\n        fontSize: props.fontSize,\n        color: mappedState['color.fontPattern'].value,\n        border: '0px solid transparent'\n      }\"\n      @focus=\"focus\"\n      @blur=\"blur\"\n      @input=\"input\"\n      @change=\"change\"\n      >{{ text }}</textarea\n    >\n  </div>\n</template>\n\n<style scoped>\n.textarea {\n  position: relative;\n  box-sizing: border-box;\n  overflow: hidden;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 10px;\n}\n.textarea textarea.textarea-raw {\n  flex: 1 1 auto;\n  width: 100%;\n  height: 100%;\n  line-height: 1.4;\n  display: block;\n  box-sizing: border-box;\n  position: relative;\n  background: transparent;\n  outline: none;\n  box-shadow: none;\n  resize: none; /* 控制 textarea 是否可调整大小 */\n}\n.textarea textarea.textarea-raw:invalid {\n}\n.textarea textarea.textarea-raw:valid {\n}\n\n.textarea textarea:-moz-placeholder,\n.textarea textarea:-ms-input-placeholder,\n.textarea textarea::-webkit-input-placeholder,\n.textarea textarea::placeholder {\n  color: var(--yz-gap-common, #cccccc);\n}\n</style>\n","// 外部数据格式\nexport type StoredRate = {\n  rate: 0 | 1 | 2 | 3 | 4 | 5; // 评分，0：表示未选\n  name?: string; // rate的中文名称\n  description?: string; // rate的中文名称描述\n  options?: string[]; // 已选择的选项\n  detail?: string; // 用户的详细输入意见\n};\n\nexport const INIT = { rate: 0 } as StoredRate;\n\n// 内部数据格式\nexport type RawRate = {\n  rate: 1 | 2 | 3 | 4 | 5; // 评分\n  name: string; // rate的中文名称\n  description: string; // rate的中文名称描述\n  options: { name: string; selected: boolean }[]; // 所有的选项\n  image?: string; // rate的图标\n};\n\n// 显示模式\nexport type RateShowMode = \"only-status\" | \"all\";\n\nexport const RATES: StoredRate[] = [\n  {\n    rate: 1,\n    name: \"体验很差\",\n    description: \"体验很差，我要吐槽\",\n    options: [\n      \"价格偏贵\",\n      \"不该收费\",\n      \"收费体验较差\",\n      \"服务管理不佳\",\n      \"缴费提醒不足\",\n      \"开票不够及时\"\n    ],\n    detail: \"\"\n  },\n  {\n    rate: 2,\n    name: \"不太满意\",\n    description: \"不太满意，我要吐槽\",\n    options: [\n      \"价格偏贵\",\n      \"不该收费\",\n      \"收费体验较差\",\n      \"服务管理不佳\",\n      \"缴费提醒不足\",\n      \"开票不够及时\"\n    ],\n    detail: \"\"\n  },\n  {\n    rate: 3,\n    name: \"一般\",\n    description: \"一般，继续努力\",\n    options: [\n      \"体验中规中矩\",\n      \"价格比较一般\",\n      \"流程基本正常\",\n      \"服务还算可以\",\n      \"提醒不够及时\",\n      \"整体体验普通\"\n    ],\n    detail: \"\"\n  },\n  {\n    rate: 4,\n    name: \"比较满意\",\n    description: \"比较满意，再接再励\",\n    options: [\n      \"缴费便捷高效\",\n      \"计费清晰准确\",\n      \"收费价格合理\",\n      \"服务管理到位\",\n      \"车位环境整洁\",\n      \"整体体验不错\"\n    ],\n    detail: \"\"\n  },\n  {\n    rate: 5,\n    name: \"非常满意\",\n    description: \"非常满意，我要点赞\",\n    options: [\n      \"缴费便捷高效\",\n      \"计费清晰准确\",\n      \"收费价格合理\",\n      \"服务管理到位\",\n      \"车位环境整洁\",\n      \"整体体验不错\"\n    ],\n    detail: \"\"\n  }\n];\n\n// 填充完整数据\nexport function completeRate(sr?: StoredRate) {\n  if (!sr) {\n    return sr;\n  }\n  const sourceRate = RATES.find((r) => r.rate == sr.rate);\n  sr.name = sourceRate?.name || sr.name || \"\";\n  sr.description = sourceRate?.description || sr.description || \"\";\n  sr.options = sr.options || [];\n  sr.detail = sr.detail || \"\";\n  return sr;\n}\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\nimport { mapState } from \"../../context/context\";\nimport { deleteArrayItem, throttle } from \"@zyzgroup/core-common\";\nimport Textarea from \"../form/Textarea.vue\";\nimport {\n  INIT,\n  RATES,\n  completeRate,\n  type RawRate,\n  type StoredRate,\n  type RateShowMode\n} from \"./common\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Textarea },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    mode?: RateShowMode;\n    editable?: boolean;\n    modelValue?: StoredRate;\n    init?: StoredRate;\n  }>(),\n  {\n    mode: \"all\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"throttledClick\"): void;\n  (event: \"update:modelValue\", v: StoredRate): void;\n  (event: \"rate\", v: StoredRate): void;\n}>();\n\n\nconst PUBLIC_IMAGE_RATE_XG = `/public/images/rate-xg`;\nconst level1 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_1.svg`;\nconst level2 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_2.svg`;\nconst level3 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_3.svg`;\nconst level4 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_4.svg`;\nconst level5 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_5.svg`;\nconst level1_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_1_selected.svg`;\nconst level2_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_2_selected.svg`;\nconst level3_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_3_selected.svg`;\nconst level4_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_4_selected.svg`;\nconst level5_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_5_selected.svg`;\n\n// 获取图片\nfunction getImage(rate: number, selected: boolean) {\n  switch(rate) {\n    case 1: return !selected ? level1 : level1_selected;\n    case 2: return !selected ? level2 : level2_selected;\n    case 3: return !selected ? level3 : level3_selected;\n    case 4: return !selected ? level4 : level4_selected;\n    case 5: return !selected ? level5 : level5_selected;\n  }\n}\n\nconst mappedState = mapState([\n  \"color.foregroundPattern\",\n  \"color.foregroundBorderPattern\",\n  \"color.fontPattern\",\n  \"color.fontTertiaryPattern\",\n  \"color.yellowCommon\",\n  \"color.primaryPattern\",\n  \"color.secondaryPattern\",\n  \"color.panelPattern\"\n]);\n\n// 当前的 rate 对应的原始数据\nconst rawRate = ref<RawRate>(null);\n\nfunction changeRawRate(rate: number) {\n  if (rawRate.value && rawRate.value.rate == rate) {\n    // 只更新指针\n    rawRate.value = { ...rawRate.value };\n    return;\n  }\n  const foundRate = RATES.find((r) => r.rate == rate);\n  if (foundRate && foundRate.rate > 0) {\n    rawRate.value = {\n      ...foundRate,\n      options: foundRate.options.map((o) => ({ name: o, selected: false })),\n      image: getImage(foundRate.rate, false)\n    } as RawRate;\n  } else {\n    rawRate.value = null;\n  }\n}\n\nconst isControlled = computed(\n  () => props.modelValue !== undefined && props.modelValue !== null\n);\nconst inner = ref<StoredRate>({ ...INIT, ...(props.init ?? {}) });\n\nconst current = computed<StoredRate>({\n  get() {\n    const val = isControlled.value\n      ? { ...INIT, ...(props.modelValue ?? {}) }\n      : inner.value;\n    completeRate(val);\n    return val;\n  },\n  set(val) {\n    val = { ...INIT, ...(val ?? {}) };\n    completeRate(val);\n    if (isControlled.value) {\n      emits(\"update:modelValue\", val);\n    } else {\n      inner.value = val;\n    }\n    emits(\"rate\", val);\n  }\n});\n\n// 初始化\nchangeRawRate(current.value.rate);\n\n// 切换评分\nconst selectRate = throttle((r, e) => {\n  e.stopPropagation();\n  if (!props.editable) {\n    return;\n  }\n  if (r <= 0) {\n    // 未选择\n    emits(\"throttledClick\");\n    return;\n  }\n  // 本次已选择\n  current.value = {\n    ...current.value,\n    rate: r,\n    options: []\n  };\n  changeRawRate(r);\n});\n\n// 切换选项\nconst selectOption = throttle((option, e) => {\n  e.stopPropagation();\n  const rawOption =\n    rawRate.value && rawRate.value.options.find((o) => o.name == option);\n  if (current.value.options.findIndex((o) => o == option) < 0) {\n    // 添加\n    current.value.options.push(option);\n    if (rawOption) {\n      rawOption.selected = true;\n    }\n  } else {\n    // 删除\n    deleteArrayItem(current.value.options, option);\n    if (rawOption) {\n      rawOption.selected = false;\n    }\n  }\n  current.value = { ...current.value };\n  // changeRawRate(current.value.rate);\n});\n\n// 输入具体描述\nfunction inputDetail(text) {\n  current.value = { ...current.value, detail: text };\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"rate-xg\"\n    :style=\"{\n      backgroundColor: mappedState['color.foregroundPattern'].value,\n      color: mappedState['color.fontPattern'].value\n    }\"\n  >\n    <!-- 打分：已固定选择 -->\n    <div\n      v-if=\"!props.editable\"\n      class=\"rate-xg-status\"\n      :style=\"{\n        color: mappedState['color.fontTertiaryPattern'].value\n      }\"\n    >\n      <div\n        class=\"rate-xg-status-item\"\n        :style=\"{\n          color: mappedState['color.yellowCommon'].value\n        }\"\n      >\n        <div class=\"rate-xg-status-item-image\">\n           <img :src=\"getImage(current.rate, true)\"></img>\n        </div>\n        <div class=\"rate-xg-status-item-name\">\n          {{ current.name }}\n        </div>\n      </div>\n    </div>\n    <!-- 打分：未固定选择 -->\n    <div\n      v-else\n      class=\"rate-xg-status\"\n      :style=\"{\n        color: mappedState['color.fontTertiaryPattern'].value\n      }\"\n      @click=\"selectRate(0, $event)\"\n    >\n      <div\n        v-for=\"(status, index) in RATES\"\n        class=\"rate-xg-status-item\"\n        :style=\"{\n          color:\n            current.rate == index + 1\n              ? mappedState['color.yellowCommon'].value\n              : mappedState['color.fontTertiaryPattern'].value\n        }\"\n      >\n        <div\n          class=\"rate-xg-status-item-image\"\n          @click.stop=\"selectRate(index + 1, $event)\"\n        >\n        <img :src=\"getImage(status.rate, current.rate == index + 1)\"></img>\n      </div>\n        <div class=\"rate-xg-status-item-name\">{{ status.name }}</div>\n      </div>\n    </div>\n    <!-- 描述 -->\n    <div\n      v-if=\"props.mode == 'all' && props.editable && current.rate > 0\"\n      class=\"rate-xg-description\"\n    >\n      “{{ rawRate.description }}”\n    </div>\n    <!-- 选项：已固定选择 -->\n    <div\n      v-if=\"\n        props.mode == 'all' &&\n        !props.editable &&\n        current.options &&\n        current.options.length\n      \"\n      class=\"rate-xg-options\"\n      :class=\"current.options && current.options.length == 1 ? 'center' : ''\"\n    >\n      <div\n        v-for=\"(option, optionIndex) in current.options\"\n        class=\"rate-xg-option-inner\"\n      >\n        <div\n          class=\"rate-xg-option\"\n          :style=\"{\n            color: mappedState['color.fontPattern'].value,\n            backgroundColor: mappedState['color.panelPattern'].value\n          }\"\n        >\n          {{ option }}\n        </div>\n      </div>\n    </div>\n    <!-- 选项：未固定选择 -->\n    <div\n      v-else-if=\"props.mode == 'all' && props.editable && current.rate > 0\"\n      class=\"rate-xg-options\"\n    >\n      <div\n        v-for=\"(option, optionIndex) in rawRate?.options\"\n        class=\"rate-xg-option-inner\"\n        @click.stop=\"selectOption(option.name, $event)\"\n      >\n        <div\n          class=\"rate-xg-option\"\n          :style=\"\n            Object.assign(\n              {\n                border: `1px solid ${mappedState['color.foregroundBorderPattern'].value}`\n              },\n              option.selected\n                ? {\n                    color: mappedState['color.primaryPattern'].value,\n                    borderColor: mappedState['color.primaryPattern'].value,\n                    backgroundColor: mappedState['color.secondaryPattern'].value\n                  }\n                : {}\n            )\n          \"\n        >\n          {{ option.name }}\n        </div>\n      </div>\n    </div>\n    <!-- 详细：已固定选择 -->\n    <div\n      v-if=\"props.mode == 'all' && !props.editable && current.detail\"\n      class=\"rate-xg-detail-selected\"\n    >\n      “{{ current.detail }}”\n    </div>\n    <!-- 详细：未固定选择 -->\n    <div\n      v-else-if=\"props.mode == 'all' && props.editable && current.rate > 0\"\n      class=\"rate-xg-detail\"\n    >\n      <Textarea\n        placeholder=\"请具体描述\"\n        :init=\"current.detail\"\n        @input=\"inputDetail\"\n      ></Textarea>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.rate-xg {\n  line-height: 1;\n}\n.rate-xg-status {\n  font-size: 12px;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n}\n.rate-xg-status-item {\n  flex: 1;\n  box-sizing: border-box;\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n  align-items: center;\n}\n.rate-xg-status-item-image {\n  box-sizing: border-box;\n  width: 48px;\n  height: 48px;\n  /*\n  width: 100%;\n  aspect-ratio: 1 / 1;\n  height: 0;\n  padding-top: 100%;\n  */\n  object-fit: cover;\n  cursor: pointer;\n}\n.rate-xg-status-item-image > img {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.rate-xg-status-item-name {\n  margin-top: 5px;\n}\n.rate-xg-description {\n  text-align: center;\n  font-size: 16px;\n  font-weight: bold;\n  margin-top: 20px;\n  padding: 0 var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-options {\n  display: flex;\n  flex-wrap: wrap;\n  font-size: 12px;\n  margin-top: 20px;\n  padding: 0 var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-options.center {\n  justify-content: center;\n}\n.rate-xg-option-inner {\n  flex: 0 0 50%;\n  box-sizing: border-box;\n}\n.rate-xg-options > .rate-xg-option-inner:nth-child(2n) {\n  padding-left: 5px;\n}\n.rate-xg-options > .rate-xg-option-inner:nth-child(2n + 1) {\n  padding-right: 5px;\n}\n.rate-xg-option {\n  cursor: pointer;\n  padding: 10px 0;\n  text-align: center;\n  margin-bottom: 10px;\n  border-radius: 4px;\n}\n.rate-xg-detail {\n  padding: 0 var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-detail-selected {\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  margin-top: 10px;\n  padding: 0 var(--yz-padding-horizontal, 15px);\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.fontSecondaryReverse\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.fontSecondaryReverse\"].value;\n});\n</script>\n\n<template>\n  <!-- 不设置 width height , 自适应父元素 -->\n  <!-- origin viewBox : x y width height : 0 0 24 24 , 目前 viewBox 是为了切除四周多余空白 -->\n  <svg\n    viewBox=\"6 6 12 12\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\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=\"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=\"color\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watch, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst el = ref();\nconst width = ref(0);\nconst height = ref(0);\nwatch(el, () => {\n  if (!el.value) {\n    return;\n  }\n  const rect = el.value.getBoundingClientRect();\n  width.value = rect.width;\n  height.value = rect.height;\n});\n\nconst mappedState = mapState([\"color.foregroundBorderReverse\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value =\n    props.color || mappedState[\"color.foregroundBorderReverse\"].value;\n});\n</script>\n\n<template>\n  <div\n    ref=\"el\"\n    :style=\"{\n      display: 'block',\n      width: '100%',\n      height: '100%'\n    }\"\n  >\n    <!-- 不设置 width height , 自适应父元素 -->\n    <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n    <svg\n      :viewBox=\"`0 0 ${width} ${height}`\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\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=\"color\"\n      />\n    </svg>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, watch, watchEffect } from \"vue\";\nimport { getCSSVar, ColorPattern } from \"@zyzgroup/core-web\";\nimport { context, getColors } from \"../../context/context\";\nimport Pop from \"../pop/Pop.vue\";\nimport Button, { ButtonModePattern } from \"../form/Button.vue\";\nimport IconClose from \"../icon/IconClose.vue\";\nimport IconWarn from \"../icon/IconWarn.vue\";\nimport IconEllipse from \"../icon/IconEllipse.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {\n    Pop,\n    Button,\n    IconClose,\n    IconWarn,\n    IconEllipse\n  },\n  inheritAttrs: true\n});\n\nexport type DialogModeType = \"normal\" | \"mini\" | \"icon-btns\" | \"btns\";\n\nconst props = withDefaults(\n  defineProps<{\n    mode?: DialogModeType;\n    colorPattern?: ColorPattern;\n    title?: string;\n    content?: string;\n    showClose?: boolean;\n    cancelText?: string;\n    confirmText?: string;\n    closeWhenClickOverlay?: boolean;\n    dur?: number;\n    minWidth?: string;\n    maxWidth?: string;\n    borderRadius?: string; // border-radius:x/y\n  }>(),\n  {\n    mode: \"normal\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n    title: \"\",\n    content: \"\",\n    showClose: false,\n    cancelText: \"\",\n    confirmText: \"\",\n    closeWhenClickOverlay: false,\n    dur: 200,\n    minWidth: \"280px\",\n    maxWidth: \"320px\",\n    borderRadius: getCSSVar(\"--yz-dialog-border-radius\", \"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 primaryPattern = ref();\nconst gradientPattern = ref();\nconst foregroundReverse = ref();\nconst fontReverse = ref();\n\nwatchEffect(() => {\n  const colors = getColors(props.colorPattern);\n  primaryPattern.value = colors.primaryPattern;\n  gradientPattern.value = colors.gradientPattern;\n  foregroundReverse.value = colors.foregroundReverse;\n  fontReverse.value = colors.fontReverse;\n});\n\nconst cancelButtonMode = ref<ButtonModePattern>(\"transparent\");\nconst confirmButtonMode = ref<ButtonModePattern>(\"transparent\");\nconst showTopIcon = ref(false);\nconst isBtnsVertical = ref(false);\nconst btnCapsule = ref(false);\n\nwatch(\n  () => props.mode,\n  () => {\n    switch (props.mode) {\n      case \"normal\":\n        cancelButtonMode.value = \"normal-reverse\";\n        confirmButtonMode.value = \"primary\";\n        showTopIcon.value = false;\n        isBtnsVertical.value = false;\n        btnCapsule.value = false;\n        break;\n      case \"mini\":\n        cancelButtonMode.value = \"normal-transparent\";\n        confirmButtonMode.value = \"transparent\";\n        showTopIcon.value = false;\n        isBtnsVertical.value = false;\n        btnCapsule.value = false;\n        break;\n      case \"icon-btns\":\n        cancelButtonMode.value = \"outline\";\n        confirmButtonMode.value = \"gradient\";\n        showTopIcon.value = true;\n        isBtnsVertical.value = true;\n        btnCapsule.value = true;\n        break;\n      case \"btns\":\n        cancelButtonMode.value = \"outline\";\n        confirmButtonMode.value = \"gradient\";\n        showTopIcon.value = false;\n        isBtnsVertical.value = true;\n        btnCapsule.value = true;\n        break;\n    }\n  },\n  { immediate: true }\n);\n\nconst popOpen = () => {\n  emits(\"open\");\n};\nconst popClose = () => {\n  emits(\"close\");\n  switch (action) {\n    case \"close\":\n      emits(\"cancel\");\n      break;\n    case \"confirm\":\n      emits(\"confirm\");\n      break;\n  }\n};\n\nlet action: \"open\" | \"close\" | \"confirm\";\n\nfunction open() {\n  action = \"open\";\n  popRef.value?.open();\n}\n\nfunction close() {\n  action = \"close\";\n  popRef.value?.close();\n}\n\nfunction confirm() {\n  action = \"confirm\";\n  popRef.value?.close();\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    @open=\"popOpen\"\n    @close=\"popClose\"\n  >\n    <div class=\"dialog-parent\">\n      <div\n        class=\"dialog\"\n        :style=\"{\n          minWidth: props.minWidth,\n          maxWidth: props.maxWidth,\n          color: fontReverse\n        }\"\n      >\n        <!-- 头部提示图片 -->\n        <div\n          v-if=\"showTopIcon\"\n          class=\"top-icon\"\n        >\n          <div class=\"top-icon-btns\">\n            <IconWarn\n              :isGradient=\"true\"\n              :color=\"primaryPattern\"\n              :colorEnd=\"gradientPattern\"\n            ></IconWarn>\n          </div>\n          <div class=\"top-icon-btns-shadow\"><IconEllipse></IconEllipse></div>\n        </div>\n        <!-- 主体 -->\n        <div\n          class=\"dialog-inner\"\n          :style=\"{\n            paddingTop: showTopIcon ? '24px' : '0px',\n            borderRadius: props.borderRadius,\n            backgroundColor: foregroundReverse\n          }\"\n        >\n          <!-- 标题 -->\n          <div\n            v-if=\"title || showClose\"\n            class=\"title\"\n          >\n            <div\n              v-if=\"title\"\n              class=\"title-inner\"\n            >\n              {{ title }}\n            </div>\n            <div\n              v-if=\"showClose\"\n              class=\"close\"\n              @click=\"close\"\n            >\n              <div><IconClose></IconClose></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=\"[props.mode, isBtnsVertical ? 'vertical' : '']\"\n            v-if=\"cancelText || confirmText\"\n          >\n            <Button\n              v-if=\"cancelText\"\n              class=\"btn cancel\"\n              :mode=\"cancelButtonMode\"\n              :colorPattern=\"props.colorPattern\"\n              :capsule=\"btnCapsule\"\n              borderRadius=\"0\"\n              :fontWeight=\"props.mode == 'normal' ? 'normal' : 'bold'\"\n              @throttledClick=\"close\"\n            >\n              {{ cancelText }}\n            </Button>\n            <Button\n              v-if=\"confirmText\"\n              class=\"btn confirm\"\n              :mode=\"confirmButtonMode\"\n              :colorPattern=\"props.colorPattern\"\n              :capsule=\"btnCapsule\"\n              borderRadius=\"0\"\n              fontWeight=\"bold\"\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-btns {\n  width: 60px;\n  height: 60px;\n}\n.top-icon-btns-shadow {\n  width: 40px;\n  height: 4px;\n  margin-top: 4px;\n}\n.dialog-inner {\n  overflow: hidden;\n}\n.title {\n  position: relative;\n  margin-top: 20px;\n  font-size: 16px;\n  margin-bottom: -5px;\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: 14px;\n  word-break: break-all;\n  text-align: center;\n  max-height: 6rem;\n  max-height: 60vh;\n  overflow-y: scroll;\n  color: var(--yz-font-secondary-reverse, #666666);\n  padding: 20px;\n}\n.custom-content-default {\n  padding: 0;\n}\n.btns {\n  display: flex;\n  justify-content: center;\n}\n.btns.vertical {\n  flex-direction: column;\n  padding-bottom: 20px;\n}\n.btns.vertical > .btn {\n  margin-left: 20px;\n  margin-right: 20px;\n}\n.btns.vertical > .btn.cancel {\n  order: 2;\n  margin-top: 10px;\n}\n.btns.vertical > .btn.confirm {\n  order: 1;\n}\n.btns.mini {\n  border-top: 1px solid var(--yz-foreground-border-reverse, #e6e6e6);\n}\n.btns.mini > .btn + .btn {\n  border-left: 1px solid var(--yz-foreground-border-reverse, #e6e6e6) !important;\n}\n.btn {\n  flex: 1 1 auto;\n  border-radius: 0;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.greenCommon\"]);\n\nconst color = ref();\nconst oppositeColor = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.greenCommon\"].value;\n  oppositeColor.value = __color.set(color.value).opposite(true).toString();\n});\n</script>\n\n<template>\n  <!-- 不设置 width=\"64\" height=\"64\" 自适应父元素 -->\n  <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 64 64\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    preserveAspectRatio=\"none\"\n    fill=\"none\"\n    :style=\"{\n      display: 'block',\n      transformOrigin: 'center'\n    }\"\n  >\n    <path\n      d=\"M32 62C48.5685 62 62 48.5685 62 32C62 15.4315 48.5685 2 32 2C15.4315 2 2 15.4315 2 32C2 48.5685 15.4315 62 32 62Z\"\n      :fill=\"color\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M47.4148 21.6022C46.6345 20.7993 45.3768 20.7993 44.5965 21.6022L28.1278 38.0592L19.4035 29.0808C18.6232 28.2778 17.3655 28.2778 16.5852 29.0808C15.8049 29.8838 15.8049 31.1782 16.5852 31.9812L26.707 42.3978C27.4873 43.2007 28.745 43.2007 29.5253 42.3978L47.4148 24.5026C48.1951 23.6996 48.1951 22.4052 47.4148 21.6022Z\"\n      :fill=\"oppositeColor\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.redCommon\"]);\n\nconst color = ref();\nconst oppositeColor = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.redCommon\"].value;\n  oppositeColor.value = __color.set(color.value).opposite(true).toString();\n});\n</script>\n\n<template>\n  <!-- 不设置 width=\"64\" height=\"64\" 自适应父元素 -->\n  <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 64 64\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    preserveAspectRatio=\"none\"\n    fill=\"none\"\n    :style=\"{\n      display: 'block',\n      transformOrigin: 'center'\n    }\"\n  >\n    <path\n      d=\"M32 62C48.5685 62 62 48.5685 62 32C62 15.4315 48.5685 2 32 2C15.4315 2 2 15.4315 2 32C2 48.5685 15.4315 62 32 62Z\"\n      :fill=\"color\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M34.8685 32L44.4044 22.4642C45.1985 21.67 45.1985 20.3898 44.4044 19.5956C43.6102 18.8015 42.33 18.8015 41.5358 19.5956L32 29.1315L22.4642 19.5956C21.67 18.8015 20.3898 18.8015 19.5956 19.5956C18.8015 20.3898 18.8015 21.67 19.5956 22.4642L29.1315 32L19.5956 41.5358C18.8015 42.33 18.8015 43.6102 19.5956 44.4044C20.3898 45.1985 21.67 45.1985 22.4642 44.4044L32 34.8685L41.5358 44.4044C42.33 45.1985 43.6102 45.1985 44.4044 44.4044C45.1985 43.6102 45.1985 42.33 44.4044 41.5358L34.8685 32Z\"\n      :fill=\"oppositeColor\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.primaryPattern\"]);\n\nconst color = ref();\nconst oppositeColor = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.primaryPattern\"].value;\n  oppositeColor.value = __color.set(color.value).opposite(true).toString();\n});\n</script>\n\n<template>\n  <!-- 不设置 width=\"64\" height=\"64\" 自适应父元素 -->\n  <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 64 64\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    preserveAspectRatio=\"none\"\n    fill=\"none\"\n    :style=\"{\n      display: 'block',\n      transformOrigin: 'center'\n    }\"\n  >\n    <path\n      d=\"M32 62C48.5685 62 62 48.5685 62 32C62 15.4315 48.5685 2 32 2C15.4315 2 2 15.4315 2 32C2 48.5685 15.4315 62 32 62Z\"\n      :fill=\"color\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M32 48C33.1111 48 34 47.1015 34 46.0045L34 26.0006C34 24.8921 33.0994 24.0052 32 24.0052C30.9006 24.0052 30 24.9037 30 26.0006L30 45.9929C30 47.1015 30.8889 48 32 48ZM32 19.9909C33.1111 19.9909 34 19.0924 34 17.9955C34 16.8869 33.0994 16 32 16C30.9006 16 30 16.8985 30 17.9955C30 19.0924 30.8889 19.9909 32 19.9909Z\"\n      :fill=\"oppositeColor\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.yellowCommon\"]);\n\nconst color = ref();\nconst oppositeColor = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.yellowCommon\"].value;\n  oppositeColor.value = __color.set(color.value).opposite(true).toString();\n});\n</script>\n\n<template>\n  <!-- 不设置 width=\"64\" height=\"64\" 自适应父元素 -->\n  <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 64 64\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    preserveAspectRatio=\"none\"\n    fill=\"none\"\n    :style=\"{\n      display: 'block',\n      transformOrigin: 'center'\n    }\"\n  >\n    <path\n      d=\"M32 62C48.5685 62 62 48.5685 62 32C62 15.4315 48.5685 2 32 2C15.4315 2 2 15.4315 2 32C2 48.5685 15.4315 62 32 62Z\"\n      :fill=\"color\"\n    />\n    <rect\n      x=\"30\"\n      y=\"14\"\n      width=\"4\"\n      height=\"22\"\n      rx=\"2\"\n      :fill=\"oppositeColor\"\n    />\n    <rect\n      x=\"50\"\n      y=\"32\"\n      width=\"4\"\n      height=\"20\"\n      rx=\"2\"\n      transform=\"rotate(90 50 32)\"\n      :fill=\"oppositeColor\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.fontReverse\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.fontReverse\"].value;\n});\n</script>\n\n<template>\n  <!-- 不设置 width=\"48\" height=\"48\" 自适应父元素 -->\n  <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 48 48\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\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=\"M24 4C12.9587 4 4 12.9587 4 24C4 35.0413 12.9587 44 24 44C35.0413 44 44 35.0413 44 24C44 12.9587 35.0413 4 24 4ZM2 24C2 11.8542 11.8542 2 24 2C36.1458 2 46 11.8542 46 24C46 36.1458 36.1458 46 24 46C11.8542 46 2 36.1458 2 24Z\"\n      :fill=\"color\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M32.2771 17.2924L21.7545 28.6083L15.7129 22.7009C15.3228 22.3111 14.6826 22.3111 14.2926 22.7009C13.9025 23.0908 13.9025 23.7106 14.2926 24.1005L21.0444 30.7076C21.4345 31.0975 22.0746 31.0975 22.4647 30.7076L33.7074 18.6919C34.0975 18.3021 34.0975 17.6823 33.7074 17.2924C33.3174 16.9025 32.6772 16.9025 32.2771 17.2924Z\"\n      :fill=\"color\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.fontReverse\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.fontReverse\"].value;\n});\n</script>\n\n<template>\n  <!-- 不设置 width=\"48\" height=\"48\" 自适应父元素 -->\n  <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 48 48\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\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=\"M24 4C12.9587 4 4 12.9587 4 24C4 35.0413 12.9587 44 24 44C35.0413 44 44 35.0413 44 24C44 12.9587 35.0413 4 24 4ZM2 24C2 11.8542 11.8542 2 24 2C36.1458 2 46 11.8542 46 24C46 36.1458 36.1458 46 24 46C11.8542 46 2 36.1458 2 24Z\"\n      :fill=\"color\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M31.715 16.285C31.335 15.905 30.7211 15.905 30.3313 16.285L24 22.6163L17.6687 16.285C17.2887 15.905 16.6748 15.905 16.285 16.285C15.905 16.665 15.905 17.2789 16.285 17.6687L22.6163 24L16.285 30.3313C15.905 30.7113 15.905 31.3252 16.285 31.715C16.665 32.095 17.2789 32.095 17.6687 31.715L24 25.3837L30.3313 31.715C30.7113 32.095 31.3252 32.095 31.715 31.715C32.095 31.335 32.095 30.7211 31.715 30.3313L25.3837 24L31.715 17.6687C32.095 17.2887 32.095 16.665 31.715 16.285Z\"\n      :fill=\"color\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.fontReverse\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.fontReverse\"].value;\n});\n</script>\n\n<template>\n  <!-- 不设置 width=\"48\" height=\"48\" 自适应父元素 -->\n  <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 48 48\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\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=\"M24 4C12.9587 4 4 12.9587 4 24C4 35.0413 12.9587 44 24 44C35.0413 44 44 35.0413 44 24C44 12.9587 35.0413 4 24 4ZM2 24C2 11.8542 11.8542 2 24 2C36.1458 2 46 11.8542 46 24C46 36.1458 36.1458 46 24 46C11.8542 46 2 36.1458 2 24Z\"\n      :fill=\"color\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M24 13C23.45 13 23 13.45 23 14V29C23 29.55 23.45 30 24 30C24.55 30 25 29.55 25 29V14C25 13.45 24.55 13 24 13Z\"\n      :fill=\"color\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M24 32C23.45 32 23 32.45 23 33V34C23 34.55 23.45 35 24 35C24.55 35 25 34.55 25 34V33C25 32.45 24.55 32 24 32Z\"\n      :fill=\"color\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { Status } from \"../../context/context\";\n\nimport IconSuccessFullfillRound from \"./IconSuccessFullfillRound.vue\";\nimport IconErrorFullfillRound from \"./IconErrorFullfillRound.vue\";\nimport IconInfoFullfillRound from \"./IconInfoFullfillRound.vue\";\nimport IconWaitingFullfillRound from \"./IconWaitingFullfillRound.vue\";\n\nimport IconSuccessTransparentRound from \"./IconSuccessTransparentRound.vue\";\nimport IconErrorTransparentRound from \"./IconErrorTransparentRound.vue\";\nimport IconInfoTransparentRound from \"./IconInfoTransparentRound.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {\n    IconSuccessFullfillRound,\n    IconErrorFullfillRound,\n    IconInfoFullfillRound,\n    IconWaitingFullfillRound,\n\n    IconSuccessTransparentRound,\n    IconErrorTransparentRound,\n    IconInfoTransparentRound\n  },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    status?: Status;\n    mode?: \"fullfill\" | \"transparent\";\n  }>(),\n  {\n    status: \"success\",\n    mode: \"fullfill\"\n  }\n);\n</script>\n\n<template>\n  <div\n    :style=\"{\n      width: '100%',\n      height: '100%',\n      display: 'flex',\n      flexDirection: 'column',\n      justifyContent: 'center',\n      alignItems: 'center'\n    }\"\n  >\n    <IconSuccessFullfillRound\n      v-if=\"props.status == 'success' && props.mode == 'fullfill'\"\n    ></IconSuccessFullfillRound>\n    <IconErrorFullfillRound\n      v-if=\"props.status == 'error' && props.mode == 'fullfill'\"\n    ></IconErrorFullfillRound>\n    <IconInfoFullfillRound\n      v-if=\"props.status == 'info' && props.mode == 'fullfill'\"\n    ></IconInfoFullfillRound>\n    <IconWaitingFullfillRound\n      v-if=\"props.status == 'waiting' && props.mode == 'fullfill'\"\n    ></IconWaitingFullfillRound>\n\n    <IconSuccessTransparentRound\n      v-if=\"props.status == 'success' && props.mode == 'transparent'\"\n    ></IconSuccessTransparentRound>\n    <IconErrorTransparentRound\n      v-if=\"props.status == 'error' && props.mode == 'transparent'\"\n    ></IconErrorTransparentRound>\n    <IconInfoTransparentRound\n      v-if=\"props.status == 'info' && props.mode == 'transparent'\"\n    ></IconInfoTransparentRound>\n  </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { styles: true },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.primaryPattern\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.primaryPattern\"].value;\n});\n</script>\n\n<template>\n  <div class=\"icon-loading\">\n    <svg\n      viewBox=\"25 25 50 50\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      preserveAspectRatio=\"none\"\n      fill=\"none\"\n      :style=\"{\n        display: 'block',\n        transformOrigin: 'center'\n      }\"\n    >\n      <circle\n        cx=\"50\"\n        cy=\"50\"\n        r=\"20\"\n        :style=\"['stroke: ' + color]\"\n      />\n    </svg>\n  </div>\n</template>\n\n<style scoped>\n.icon-loading {\n  position: relative;\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n.icon-loading svg {\n  transform-origin: center;\n  animation: rotate 2s linear infinite;\n  width: 50%;\n  aspect-ratio: 1 / 1;\n}\n.icon-loading circle {\n  fill: none;\n  stroke-width: 3;\n  stroke-dasharray: 1, 200;\n  stroke-dashoffset: 0;\n  stroke-linecap: round;\n  animation: dash 1.5s ease-in-out infinite;\n}\n\n@keyframes rotate {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes dash {\n  0% {\n    stroke-dasharray: 1, 200;\n    stroke-dashoffset: 0;\n  }\n  50% {\n    stroke-dasharray: 90, 200;\n    stroke-dashoffset: -35px;\n  }\n  100% {\n    stroke-dashoffset: -125px;\n  }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref, computed } from \"vue\";\nimport { Validator } from \"@zyzgroup/core-common\";\nimport { mapState } from \"../../context/context\";\nimport Text from \"./Text.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Text },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: string; // text email phone ...\n    required?: boolean;\n    defaultValue?: string;\n\n    placeholder?: string;\n    placeholderType?: \"normal\" | \"underline\" | \"jump\" | \"jump-each\";\n    duration?: number;\n\n    showError?: boolean;\n    validator?: Validator;\n  }>(),\n  {\n    type: \"text\",\n    required: false,\n\n    placeholder: \"\",\n    placeholderType: \"normal\",\n    duration: 500,\n\n    showError: true\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"focus\"): void;\n  (event: \"yz-focus\"): void;\n  (event: \"blur\"): void;\n  (event: \"yz-blur\"): void;\n  (event: \"input\", text: string): void;\n  (event: \"yz-input\", text: string): void;\n  (event: \"error\", text: string): void;\n  (event: \"yz-error\", text: string): void;\n}>();\n\nconst mappedState = mapState([\n  \"color.redCommon\",\n  \"color.gapPattern\",\n  \"color.placeholderPattern\",\n  \"color.primaryPattern\",\n  \"color.fontPattern\"\n]);\n\nconst isTypeNormal = computed(() => props.placeholderType == \"normal\");\nconst isTypeUnderline = computed(() => props.placeholderType == \"underline\");\nconst isTypeJump = computed(() => props.placeholderType == \"jump\");\nconst isTypeJumpEach = computed(() => props.placeholderType == \"jump-each\");\n\nconst placeholders = props.placeholder.split(\"\");\nconst placeholderJumpEachDuration = props.duration / placeholders.length;\n\nconst el = ref();\n\nconst isFocus = ref(false);\nconst errorText = ref(\"\");\nconst inputText = ref(props.defaultValue || \"\");\n\nfunction focus() {\n  isFocus.value = true;\n  emits(\"focus\");\n  emits(\"yz-focus\");\n}\n\nfunction blur() {\n  isFocus.value = false;\n  emits(\"blur\");\n  emits(\"yz-blur\");\n  validate();\n}\n\nfunction input(e: Event) {\n  inputText.value = (e.target as HTMLInputElement).value;\n  validate();\n}\n\nfunction validate() {\n  if (inputText.value && props.validator) {\n    const result = props.validator(inputText.value);\n    if (!result.valid) {\n      errorText.value = result.errors[0];\n      emits(\"error\", errorText.value);\n      emits(\"yz-error\", errorText.value);\n      emits(\"input\", \"\");\n      emits(\"yz-input\", \"\");\n      return;\n    }\n  }\n  errorText.value = \"\";\n  if (inputText.value) {\n    emits(\"input\", inputText.value);\n    emits(\"yz-input\", inputText.value);\n  }\n}\n\nonMounted(() => {\n  if (props.defaultValue) {\n    el.value.value = props.defaultValue;\n  }\n});\n\nonUnmounted(() => {});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div class=\"input\">\n    <!-- error prompt top -->\n    <div\n      v-if=\"props.showError && errorText && !isTypeUnderline\"\n      class=\"error-prompt-top\"\n    >\n      <Text\n        type=\"warn\"\n        :color=\"mappedState['color.redCommon'].value\"\n      >\n        {{ errorText }}\n      </Text>\n    </div>\n    <!-- input-wrap -->\n    <div\n      class=\"input-wrap\"\n      :class=\"isFocus || inputText ? 'focus' : ''\"\n      :style=\"{\n        fontSize: '1em',\n        border: `${isTypeUnderline ? '0' : '1'}px solid transparent`,\n        borderBottom: `1px solid transparent`,\n        borderRadius: isTypeUnderline\n          ? '0'\n          : `var(--yz-input-border-radius, 4px)`,\n        borderColor: errorText\n          ? mappedState['color.redCommon'].value\n          : isFocus\n          ? mappedState['color.primaryPattern'].value\n          : inputText || isTypeNormal || isTypeUnderline\n          ? mappedState['color.gapPattern'].value\n          : 'transparent',\n        transition: props.duration + 'ms'\n      }\"\n    >\n      <!-- placeholder-wrap -->\n      <div\n        class=\"placeholder\"\n        :style=\"{\n          lineHeight:\n            isFocus || inputText ? 1.3 : `var(--yz-input-height, 44px)`,\n          color: mappedState['color.placeholderPattern'].value,\n          transition:\n            isTypeNormal || isTypeUnderline ? '' : props.duration + 'ms',\n          transform:\n            isTypeNormal || isTypeUnderline\n              ? ''\n              : isFocus || inputText\n              ? `translateY(-100%)`\n              : 'none'\n        }\"\n      >\n        <!-- placeholder: normal / underline -->\n        <div\n          v-if=\"\n            !errorText &&\n            (isTypeNormal || isTypeUnderline) &&\n            !isFocus &&\n            !inputText\n          \"\n          :style=\"{\n            paddingLeft: '0.5em'\n          }\"\n        >\n          {{ props.placeholder }}\n        </div>\n        <!-- placeholder: jump -->\n        <div v-if=\"!errorText && isTypeJump && !inputText\">\n          {{ props.placeholder }}\n        </div>\n        <!-- placeholder: jump-each -->\n        <span\n          v-if=\"!errorText && isTypeJumpEach && !inputText\"\n          v-for=\"(item, index) in placeholders\"\n          :key=\"index\"\n          :style=\"{\n            transition:\n              props.duration + 'ms cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n            transitionDelay: `${placeholderJumpEachDuration * index}ms`,\n            transform:\n              isFocus || inputText\n                ? `translateX(${100 * index}%) translateY(-100%)`\n                : `translateX(${100 * index}%)`\n          }\"\n          class=\"single\"\n        >\n          {{ item }}\n        </span>\n      </div>\n      <input\n        ref=\"el\"\n        class=\"input-raw\"\n        name=\"input-raw\"\n        :type=\"props.type\"\n        :required=\"props.required\"\n        autocomplete=\"off\"\n        :style=\"{\n          fontSize: `var(--yz-font-size, 16px)`,\n          height: `var(--yz-input-height, 44px)`,\n          lineHeight: `var(--yz-input-height, 44px)`,\n          color: mappedState['color.fontPattern'].value,\n          padding: isTypeUnderline ? '0.6em 0' : '0.6em',\n          border: `0px solid transparent`\n        }\"\n        @focus=\"focus\"\n        @blur=\"blur\"\n        @input=\"input\"\n        @change=\"input\"\n      />\n      <div class=\"input-slot\"><slot></slot></div>\n      <!-- background color and height -->\n      <div\n        class=\"background\"\n        v-if=\"!isTypeUnderline\"\n        :style=\"{\n          transition: props.duration + 'ms',\n          backgroundColor:\n            isTypeNormal || isFocus || inputText\n              ? 'transparent'\n              : mappedState['color.gapPattern'].value,\n          height:\n            isTypeNormal || isFocus || inputText\n              ? `var(--yz-input-height, 44px)`\n              : '2px',\n          borderRadius: `var(--yz-input-border-radius, 4px)`\n        }\"\n      ></div>\n    </div>\n    <!-- error prompt bottom -->\n    <div\n      v-if=\"props.showError && errorText && isTypeUnderline\"\n      class=\"error-prompt-bottom\"\n    >\n      <Text\n        type=\"warn\"\n        :color=\"mappedState['color.redCommon'].value\"\n      >\n        {{ errorText }}\n      </Text>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.input {\n  position: relative;\n  box-sizing: border-box;\n  font-size: var(--yz-font-size, 16px);\n  overflow: hidden;\n}\n/*\n.error-prompt-top {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  font-size: 0.75em;\n  line-height: 1;\n  transform: translateY(-100%);\n}\n*/\n.error-prompt-top {\n  width: 100%;\n  font-size: 0.75em;\n  line-height: 1;\n  margin-bottom: 0.5em;\n}\n.error-prompt-bottom {\n  width: 100%;\n  font-size: 0.75em;\n  line-height: 1;\n  margin-top: 0.5em;\n}\n.input-wrap {\n  position: relative;\n  box-sizing: border-box;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n.input-raw {\n  flex: 1 1 auto;\n  display: block;\n  box-sizing: border-box;\n  position: relative;\n  background: transparent;\n  outline: none;\n  box-shadow: none;\n  z-index: 10;\n}\n.input-slot {\n  flex: 0 0 auto;\n}\n.background {\n  position: absolute;\n  left: 0;\n  bottom: 0;\n  width: 100%;\n  pointer-events: none;\n  z-index: 9;\n}\n.placeholder {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  pointer-events: none;\n}\n.focus .placeholder {\n  font-size: 0.75em;\n}\n.placeholder > div {\n  width: 100%;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center;\n}\n.placeholder > span.single {\n  position: absolute;\n  left: 0;\n  top: 0;\n}\n/*\ninput:-moz-placeholder,\ninput:-ms-input-placeholder,\ninput::-webkit-input-placeholder,\ninput::placeholder{\n  color: var(--yz-gap-common, #cccccc);\n}\n*/\n</style>\n","import { h, render, VNode, Component } from \"vue\";\nimport { removeAllEventListeners, ColorPattern } from \"@zyzgroup/core-web\";\nimport { getElementAttrs } from \"./vnode\";\nimport { Status } from \"./context/context\";\n\nimport Pop from \"./components/pop/Pop.vue\";\nimport PopTel from \"./components/pop/PopTel.vue\";\nimport PopCalendar from \"./components/pop/PopCalendar.vue\";\nimport RateXgPop from \"./components/rate-xg/RateXgPop.vue\";\nimport {\n  type StoredRate,\n  type RateShowMode\n} from \"./components/rate-xg/common\";\n\nimport DialogToast from \"./components/dialog/DialogToast.vue\";\nimport DialogLoading from \"./components/dialog/DialogLoading.vue\";\nimport Dialog, { DialogModeType } from \"./components/dialog/Dialog.vue\";\n\nimport Input from \"./components/form/Input.vue\";\n\nimport PlateKeyboard from \"./components/keyboard/PlateKeyboard.vue\";\nimport NumberKeyboard from \"./components/keyboard/NumberKeyboard.vue\";\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 };\nexport function 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\nfunction temp() {\n  const div = document.createElement(\"div\");\n  teleport.appendChild(div);\n  return {\n    el: div,\n    remove: () => {\n      try {\n        teleport.removeChild(div);\n      } catch (e) {\n        // div 的子元素先一步被删除时，可能报错？\n        console.log(e);\n      }\n    }\n  };\n}\n\nlet uniqueKey = 0;\n\ntype PopOptions = {\n  fixed?: number;\n  left?: string;\n  top?: string;\n  contentBgColor?: string;\n  dur?: number;\n  global?: boolean;\n  closeWhenClickOverlay?: boolean;\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\nexport function pop(\n  el: HTMLElement | VNode,\n  directionFrom:\n    | \"center\"\n    | \"bottom\"\n    | \"top\"\n    | \"left\"\n    | \"right\"\n    | { left: string; top: string } = \"bottom\",\n  options?: PopOptions\n) {\n  const t = temp();\n  let vnode: VNode;\n  if (el instanceof HTMLElement) {\n    // 丧失 reactive\n    vnode = h(\n      Pop,\n      {\n        key: ++uniqueKey, // 使子元素重新创建，从而使浏览器计算子元素 inset 正确\n        directionFrom,\n        ...options,\n        onClose: () => {\n          t.remove();\n        }\n      },\n      () =>\n        h(\"div\", {\n          ...getElementAttrs(el),\n          innerHTML: el.innerHTML // () => stringToVNodes(el.innerHTML)\n        })\n    );\n  } else {\n    // 保留 reactive\n    vnode = h(\n      Pop,\n      {\n        key: ++uniqueKey, // 使子元素重新创建，从而使浏览器计算子元素 inset 正确\n        directionFrom,\n        ...options,\n        onClose: () => {\n          t.remove();\n        }\n      },\n      () => el\n    );\n  }\n  render(vnode, t.el);\n  vnode.component?.exposed?.open();\n  return () => {\n    vnode.component?.exposed?.close();\n  };\n}\nexport function popBottom(el: HTMLElement | VNode, options?: PopOptions) {\n  return pop(el, \"bottom\", options);\n}\nexport function popTop(el: HTMLElement | VNode, options?: PopOptions) {\n  return pop(el, \"top\", options);\n}\nexport function popLeft(el: HTMLElement | VNode, options?: PopOptions) {\n  return pop(el, \"left\", options);\n}\nexport function popRight(el: HTMLElement | VNode, options?: PopOptions) {\n  return pop(el, \"right\", options);\n}\nexport function popCenter(el: HTMLElement | VNode, options?: PopOptions) {\n  return pop(el, \"center\", options);\n}\nexport function popAbsolute(el: HTMLElement | VNode, options?: PopOptions) {\n  return pop(\n    el,\n    { left: options.left || \"0%\", top: options.top || \"0%\" },\n    options\n  );\n}\n\nexport function popTel(tel: string) {\n  if (isInCE()) {\n    // const ce = document.querySelector(\"yz-pop-tel#globalPopTel\") as any;\n    // removeAllEventListeners(ce);\n    const ce = document.createElement(\"yz-pop-tel\") as any;\n    // 传入prop\n    ce.tel = tel;\n    // 监听事件\n    ce.addEventListener(\"close\", () => {\n      teleport.removeChild(ce);\n    });\n    teleport.appendChild(ce);\n    if (ce && \"_instance\" in ce) {\n      (ce._instance as any).exposed.open();\n    }\n    return () => {\n      if (ce && \"_instance\" in ce) {\n        (ce._instance as any).exposed.close();\n      }\n    };\n  } else {\n    const t = temp();\n    const vnode: VNode = h(PopTel, {\n      tel,\n      onClose: () => {\n        t.remove();\n      }\n    });\n    render(vnode, t.el);\n    vnode.component?.exposed?.open();\n    return () => {\n      vnode.component?.exposed?.close();\n    };\n  }\n}\n\nexport function popCalendar(options?: {\n  title?: string;\n  initDay?: string;\n  startDay?: string;\n  endDay?: string;\n  excludeDays?: string[];\n  selectedDays?: string[];\n  onCancel?: () => void;\n  onConfirm?: (date: Date) => void;\n  onOpen?: () => void;\n  onClose?: () => void;\n}) {\n  if (isInCE()) {\n    // const ce = document.querySelector(\"yz-pop-calendar#globalPopCalendar\") as any;\n    // removeAllEventListeners(ce);\n    const ce = document.createElement(\"yz-pop-calendar\") as any;\n    // 传入prop\n    ce.title = options?.title || \"\";\n    ce.initDay = options?.initDay || \"\";\n    ce.startDay = options?.startDay || \"\";\n    ce.endDay = options?.endDay || \"\";\n    ce.excludeDays = options?.excludeDays || [];\n    ce.selectedDays = options?.selectedDays || [];\n    // 监听事件\n    ce.addEventListener(\"open\", () => {\n      options?.onOpen?.();\n    });\n    ce.addEventListener(\"close\", () => {\n      teleport.removeChild(ce);\n      options?.onClose?.();\n    });\n    ce.addEventListener(\"cancel\", () => {\n      options?.onCancel?.();\n    });\n    ce.addEventListener(\"confirm\", (e) => {\n      options?.onConfirm?.(e.detail[0]);\n    });\n    teleport.appendChild(ce);\n    if (ce && \"_instance\" in ce) {\n      (ce._instance as any).exposed.open();\n    }\n    return () => {\n      if (ce && \"_instance\" in ce) {\n        (ce._instance as any).exposed.close();\n      }\n    };\n  } else {\n    const t = temp();\n    const vnode: VNode = h(PopCalendar, {\n      ...options,\n      onClose: () => {\n        t.remove();\n        options?.onClose?.();\n      }\n    });\n    render(vnode, t.el);\n    vnode.component?.exposed?.open();\n    return () => {\n      vnode.component?.exposed?.close();\n    };\n  }\n}\n\nexport function popRateXg(options?: {\n  title?: string;\n  mode?: RateShowMode;\n  editable?: boolean;\n  init?: StoredRate;\n  onCancel?: () => void;\n  onConfirm?: (v: StoredRate) => void;\n  onOpen?: () => void;\n  onClose?: () => void;\n}) {\n  if (isInCE()) {\n    // const ce = document.querySelector(\"yz-pop-rate-xg#globalPopRateXg\") as any;\n    // removeAllEventListeners(ce);\n    const ce = document.createElement(\"yz-pop-rate-xg\") as any;\n    // 传入prop\n    ce.title = options?.title || \"\";\n    ce.mode = options?.mode || undefined;\n    ce.editable = options?.editable || undefined;\n    ce.init = options?.init || undefined;\n    // 监听事件\n    ce.addEventListener(\"open\", () => {\n      options?.onOpen?.();\n    });\n    ce.addEventListener(\"close\", () => {\n      teleport.removeChild(ce);\n      options?.onClose?.();\n    });\n    ce.addEventListener(\"cancel\", () => {\n      options?.onCancel?.();\n    });\n    ce.addEventListener(\"confirm\", (e) => {\n      // options?.onConfirm?.(e.detail[0], e.detail[1], e.detail[2]);\n      options?.onConfirm?.(e.detail[0]);\n    });\n    teleport.appendChild(ce);\n    if (ce && \"_instance\" in ce) {\n      (ce._instance as any).exposed.open();\n    }\n    return () => {\n      if (ce && \"_instance\" in ce) {\n        (ce._instance as any).exposed.close();\n      }\n    };\n  } else {\n    const t = temp();\n    const vnode: VNode = h(RateXgPop, {\n      ...options,\n      onClose: () => {\n        t.remove();\n        options?.onClose?.();\n      }\n    });\n    render(vnode, t.el);\n    vnode.component?.exposed?.open();\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  colorPattern?: ColorPattern;\n  mode?: DialogModeType;\n  onCancel?: () => void;\n  onConfirm?: () => void;\n  onOpen?: () => void;\n  onClose?: () => void;\n}) {\n  if (isInCE()) {\n    // const ce = document.querySelector(\"yz-dialog#globalDialog\") as any;\n    // removeAllEventListeners(ce);\n    const ce = document.createElement(\"yz-dialog\") as any;\n    // 传入prop\n    ce.title = options?.title;\n    ce.content = options?.content;\n    ce.showClose = options?.showClose;\n    ce.cancelText = options?.cancelText;\n    ce.confirmText = options?.confirmText;\n    ce.colorPattern = options?.colorPattern;\n    ce.mode = options?.mode;\n    // 监听事件\n    ce.addEventListener(\"open\", () => {\n      options?.onOpen?.();\n    });\n    ce.addEventListener(\"close\", () => {\n      teleport.removeChild(ce);\n      options?.onClose?.();\n    });\n    ce.addEventListener(\"cancel\", () => {\n      options?.onCancel?.();\n    });\n    ce.addEventListener(\"confirm\", () => {\n      options?.onConfirm?.();\n    });\n    teleport.appendChild(ce);\n    if (ce && \"_instance\" in ce) {\n      (ce._instance as any).exposed.open();\n    }\n    return () => {\n      if (ce && \"_instance\" in ce) {\n        (ce._instance as any).exposed.close();\n      }\n    };\n  } else {\n    const t = temp();\n    const vnode = h(Dialog, {\n      ...options,\n      onClose: () => {\n        t.remove();\n        options?.onClose?.();\n      }\n    });\n    render(vnode, t.el);\n    vnode.component?.exposed?.open();\n    return () => {\n      vnode.component?.exposed?.close();\n    };\n  }\n}\n\nexport function toast(options?: {\n  content?: string;\n  during?: number;\n  status?: Status;\n  onOpen?: () => void;\n  onClose?: () => void;\n}) {\n  if (isInCE()) {\n    // const ce = document.querySelector(\n    //   \"yz-dialog-toast#globalDialogToast\"\n    // ) as any;\n    // removeAllEventListeners(ce);\n    const ce = document.createElement(\"yz-dialog-toast\") as any;\n    ce.content = options?.content;\n    ce.during = options?.during;\n    ce.status = options?.status;\n    ce.addEventListener(\"open\", () => {\n      options?.onOpen?.();\n    });\n    ce.addEventListener(\"close\", () => {\n      teleport.removeChild(ce);\n      options?.onClose?.();\n    });\n    teleport.appendChild(ce);\n    if (ce && \"_instance\" in ce) {\n      (ce._instance as any).exposed.open();\n    }\n    return () => {\n      if (ce && \"_instance\" in ce) {\n        (ce._instance as any).exposed.close();\n      }\n    };\n  } else {\n    const t = temp();\n    const vnode = h(DialogToast, {\n      ...options,\n      onClose: () => {\n        t.remove();\n        options?.onClose?.();\n      }\n    });\n    render(vnode, t.el);\n    vnode.component?.exposed?.open();\n    return () => {\n      vnode.component?.exposed?.close();\n    };\n  }\n}\n\nexport function loading(options?: {\n  content?: string;\n  onOpen?: () => void;\n  onClose?: () => void;\n}) {\n  if (isInCE()) {\n    // const ce = document.querySelector(\n    //   \"yz-dialog-loading#globalDialogLoading\"\n    // ) as any;\n    // removeAllEventListeners(ce);\n    const ce = document.createElement(\"yz-dialog-loading\") as any;\n    ce.content = options?.content;\n    ce.addEventListener(\"open\", () => {\n      options?.onOpen?.();\n    });\n    ce.addEventListener(\"close\", () => {\n      teleport.removeChild(ce);\n      options?.onClose?.();\n    });\n    teleport.appendChild(ce);\n    if (ce && \"_instance\" in ce) {\n      (ce._instance as any).exposed.open();\n    }\n    return () => {\n      if (ce && \"_instance\" in ce) {\n        (ce._instance as any).exposed.close();\n      }\n    };\n  } else {\n    const t = temp();\n    const vnode = h(DialogLoading, {\n      ...options,\n      onClose: () => {\n        t.remove();\n        options?.onClose?.();\n      }\n    });\n    render(vnode, t.el);\n    vnode.component?.exposed?.open();\n    return () => {\n      vnode.component?.exposed?.close();\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    // ) as any;\n    // removeAllEventListeners(ce);\n    const ce = document.createElement(\"yz-plate-keyboard\") as any;\n    ce.initPlates = options?.initPlates;\n    ce.completePlateLength = options?.completePlateLength;\n    ce.addEventListener(\"plates\", (e) => {\n      options?.onPlates?.(e.detail[0]);\n    });\n    ce.addEventListener(\"open\", () => {\n      options?.onOpen?.();\n    });\n    ce.addEventListener(\"close\", () => {\n      teleport.removeChild(ce);\n      options?.onClose?.();\n    });\n    ce.addEventListener(\"resize\", (e) => {\n      options?.onResize?.(e.detail[0]);\n    });\n    teleport.appendChild(ce);\n    if (ce && \"_instance\" in ce) {\n      (ce._instance as any).exposed.open();\n    }\n    return () => {\n      if (ce && \"_instance\" in ce) {\n        (ce._instance as any).exposed.close();\n      }\n    };\n  } else {\n    const t = temp();\n    const vnode = h(PlateKeyboard, {\n      ...options,\n      onClose: () => {\n        t.remove();\n        options?.onClose?.();\n      }\n    });\n    render(vnode, t.el);\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  onOpen?: () => void;\n  onClose?: () => void;\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    // ) as any;\n    // removeAllEventListeners(ce);\n    const ce = document.createElement(\"yz-number-keyboard\") as any;\n    ce.min = options?.min;\n    ce.max = options?.max;\n    ce.title = options?.title;\n    ce.addEventListener(\"number\", (e) => {\n      options?.onNumber?.(e.detail[0]);\n    });\n    ce.addEventListener(\"error\", (e) => {\n      options?.onError?.(e.detail[0]);\n    });\n    ce.addEventListener(\"open\", () => {\n      options?.onOpen?.();\n    });\n    ce.addEventListener(\"close\", () => {\n      teleport.removeChild(ce);\n      options?.onClose?.();\n    });\n    teleport.appendChild(ce);\n    if (ce && \"_instance\" in ce) {\n      (ce._instance as any).exposed.open();\n    }\n    return () => {\n      if (ce && \"_instance\" in ce) {\n        (ce._instance as any).exposed.close();\n      }\n    };\n  } else {\n    const t = temp();\n    const vnode = h(NumberKeyboard, {\n      ...options,\n      onClose: () => {\n        t.remove();\n        options?.onClose?.();\n      }\n    });\n    render(vnode, t.el);\n    vnode.component?.exposed?.open();\n    return () => {\n      vnode.component?.exposed?.close();\n    };\n  }\n}\n","export function getDevtoolsGlobalHook() {\n    return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nexport function getTarget() {\n    // @ts-expect-error navigator and windows are not available in all environments\n    return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n        ? window\n        : typeof globalThis !== 'undefined'\n            ? globalThis\n            : {};\n}\nexport const isProxyAvailable = typeof Proxy === 'function';\n","export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n","let supported;\nlet perf;\nexport function isPerformanceSupported() {\n    var _a;\n    if (supported !== undefined) {\n        return supported;\n    }\n    if (typeof window !== 'undefined' && window.performance) {\n        supported = true;\n        perf = window.performance;\n    }\n    else if (typeof globalThis !== 'undefined' && ((_a = globalThis.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n        supported = true;\n        perf = globalThis.perf_hooks.performance;\n    }\n    else {\n        supported = false;\n    }\n    return supported;\n}\nexport function now() {\n    return isPerformanceSupported() ? perf.now() : Date.now();\n}\n","import { HOOK_PLUGIN_SETTINGS_SET } from './const.js';\nimport { now } from './time.js';\nexport class ApiProxy {\n    constructor(plugin, hook) {\n        this.target = null;\n        this.targetQueue = [];\n        this.onQueue = [];\n        this.plugin = plugin;\n        this.hook = hook;\n        const defaultSettings = {};\n        if (plugin.settings) {\n            for (const id in plugin.settings) {\n                const item = plugin.settings[id];\n                defaultSettings[id] = item.defaultValue;\n            }\n        }\n        const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n        let currentSettings = Object.assign({}, defaultSettings);\n        try {\n            const raw = localStorage.getItem(localSettingsSaveId);\n            const data = JSON.parse(raw);\n            Object.assign(currentSettings, data);\n        }\n        catch (e) {\n            // noop\n        }\n        this.fallbacks = {\n            getSettings() {\n                return currentSettings;\n            },\n            setSettings(value) {\n                try {\n                    localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n                }\n                catch (e) {\n                    // noop\n                }\n                currentSettings = value;\n            },\n            now() {\n                return now();\n            },\n        };\n        if (hook) {\n            hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n                if (pluginId === this.plugin.id) {\n                    this.fallbacks.setSettings(value);\n                }\n            });\n        }\n        this.proxiedOn = new Proxy({}, {\n            get: (_target, prop) => {\n                if (this.target) {\n                    return this.target.on[prop];\n                }\n                else {\n                    return (...args) => {\n                        this.onQueue.push({\n                            method: prop,\n                            args,\n                        });\n                    };\n                }\n            },\n        });\n        this.proxiedTarget = new Proxy({}, {\n            get: (_target, prop) => {\n                if (this.target) {\n                    return this.target[prop];\n                }\n                else if (prop === 'on') {\n                    return this.proxiedOn;\n                }\n                else if (Object.keys(this.fallbacks).includes(prop)) {\n                    return (...args) => {\n                        this.targetQueue.push({\n                            method: prop,\n                            args,\n                            resolve: () => { },\n                        });\n                        return this.fallbacks[prop](...args);\n                    };\n                }\n                else {\n                    return (...args) => {\n                        return new Promise((resolve) => {\n                            this.targetQueue.push({\n                                method: prop,\n                                args,\n                                resolve,\n                            });\n                        });\n                    };\n                }\n            },\n        });\n    }\n    async setRealTarget(target) {\n        this.target = target;\n        for (const item of this.onQueue) {\n            this.target.on[item.method](...item.args);\n        }\n        for (const item of this.targetQueue) {\n            item.resolve(await this.target[item.method](...item.args));\n        }\n    }\n}\n","import { getDevtoolsGlobalHook, getTarget, isProxyAvailable } from './env.js';\nimport { HOOK_SETUP } from './const.js';\nimport { ApiProxy } from './proxy.js';\nexport * from './api/index.js';\nexport * from './plugin.js';\nexport * from './time.js';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n    const descriptor = pluginDescriptor;\n    const target = getTarget();\n    const hook = getDevtoolsGlobalHook();\n    const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n    if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n        hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n    }\n    else {\n        const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n        const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n        list.push({\n            pluginDescriptor: descriptor,\n            setupFn,\n            proxy,\n        });\n        if (proxy) {\n            setupFn(proxy.proxiedTarget);\n        }\n    }\n}\n","/*!\n  * vue-router v4.5.0\n  * (c) 2024 Eduardo San Martin Morote\n  * @license MIT\n  */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, shallowReactive, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst isBrowser = typeof document !== 'undefined';\n\n/**\n * Allows differentiating lazy components from functional components and vue-class-component\n * @internal\n *\n * @param component\n */\nfunction isRouteComponent(component) {\n    return (typeof component === 'object' ||\n        'displayName' in component ||\n        'props' in component ||\n        '__vccOpts' in component);\n}\nfunction isESModule(obj) {\n    return (obj.__esModule ||\n        obj[Symbol.toStringTag] === 'Module' ||\n        // support CF with dynamic imports that do not\n        // add the Module string tag\n        (obj.default && isRouteComponent(obj.default)));\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n    const newParams = {};\n    for (const key in params) {\n        const value = params[key];\n        newParams[key] = isArray(value)\n            ? value.map(fn)\n            : fn(value);\n    }\n    return newParams;\n}\nconst noop = () => { };\n/**\n * Typesafe alternative to Array.isArray\n * https://github.com/microsoft/TypeScript/pull/48228\n */\nconst isArray = Array.isArray;\n\nfunction warn(msg) {\n    // avoid using ...args as it breaks in older Edge builds\n    const args = Array.from(arguments).slice(1);\n    console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\n}\n\n/**\n * Encoding Rules (␣ = Space)\n * - Path: ␣ \" < > # ? { }\n * - Query: ␣ \" < > # & =\n * - Hash: ␣ \" < > `\n *\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n * defines some extra characters to be encoded. Most browsers do not encode them\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n * plus `-._~`. This extra safety should be applied to query by patching the\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\n * encoded everywhere because some browsers like FF encode it when directly\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n */\n// const EXTRA_RESERVED_RE = /[!'()*]/g\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\nconst HASH_RE = /#/g; // %23\nconst AMPERSAND_RE = /&/g; // %26\nconst SLASH_RE = /\\//g; // %2F\nconst EQUAL_RE = /=/g; // %3D\nconst IM_RE = /\\?/g; // %3F\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\n * seems to be less flexible than not doing so and I can't find out the legacy\n * systems requiring this for regular requests like text/html. In the standard,\n * the encoding of the plus character is only mentioned for\n * application/x-www-form-urlencoded\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n * leave the plus character as is in queries. To be more flexible, we allow the\n * plus character on the query, but it can also be manually encoded by the user.\n *\n * Resources:\n * - https://url.spec.whatwg.org/#urlencoded-parsing\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n */\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\nconst ENC_CARET_RE = /%5E/g; // ^\nconst ENC_BACKTICK_RE = /%60/g; // `\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\nconst ENC_PIPE_RE = /%7C/g; // |\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\nconst ENC_SPACE_RE = /%20/g; // }\n/**\n * Encode characters that need to be encoded on the path, search and hash\n * sections of the URL.\n *\n * @internal\n * @param text - string to encode\n * @returns encoded string\n */\nfunction commonEncode(text) {\n    return encodeURI('' + text)\n        .replace(ENC_PIPE_RE, '|')\n        .replace(ENC_BRACKET_OPEN_RE, '[')\n        .replace(ENC_BRACKET_CLOSE_RE, ']');\n}\n/**\n * Encode characters that need to be encoded on the hash section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeHash(text) {\n    return commonEncode(text)\n        .replace(ENC_CURLY_OPEN_RE, '{')\n        .replace(ENC_CURLY_CLOSE_RE, '}')\n        .replace(ENC_CARET_RE, '^');\n}\n/**\n * Encode characters that need to be encoded query values on the query\n * section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeQueryValue(text) {\n    return (commonEncode(text)\n        // Encode the space as +, encode the + to differentiate it from the space\n        .replace(PLUS_RE, '%2B')\n        .replace(ENC_SPACE_RE, '+')\n        .replace(HASH_RE, '%23')\n        .replace(AMPERSAND_RE, '%26')\n        .replace(ENC_BACKTICK_RE, '`')\n        .replace(ENC_CURLY_OPEN_RE, '{')\n        .replace(ENC_CURLY_CLOSE_RE, '}')\n        .replace(ENC_CARET_RE, '^'));\n}\n/**\n * Like `encodeQueryValue` but also encodes the `=` character.\n *\n * @param text - string to encode\n */\nfunction encodeQueryKey(text) {\n    return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodePath(text) {\n    return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL as a\n * param. This function encodes everything {@link encodePath} does plus the\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n * string instead.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeParam(text) {\n    return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n    try {\n        return decodeURIComponent('' + text);\n    }\n    catch (err) {\n        (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\n    }\n    return '' + text;\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\n/**\n * Transforms a URI into a normalized history location\n *\n * @param parseQuery\n * @param location - URI to normalize\n * @param currentLocation - current absolute location. Allows resolving relative\n * paths. Must start with `/`. Defaults to `/`\n * @returns a normalized history location\n */\nfunction parseURL(parseQuery, location, currentLocation = '/') {\n    let path, query = {}, searchString = '', hash = '';\n    // Could use URL and URLSearchParams but IE 11 doesn't support it\n    // TODO: move to new URL()\n    const hashPos = location.indexOf('#');\n    let searchPos = location.indexOf('?');\n    // the hash appears before the search, so it's not part of the search string\n    if (hashPos < searchPos && hashPos >= 0) {\n        searchPos = -1;\n    }\n    if (searchPos > -1) {\n        path = location.slice(0, searchPos);\n        searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\n        query = parseQuery(searchString);\n    }\n    if (hashPos > -1) {\n        path = path || location.slice(0, hashPos);\n        // keep the # character\n        hash = location.slice(hashPos, location.length);\n    }\n    // no search and no query\n    path = resolveRelativePath(path != null ? path : location, currentLocation);\n    // empty path means a relative query or hash `?foo=f`, `#thing`\n    return {\n        fullPath: path + (searchString && '?') + searchString + hash,\n        path,\n        query,\n        hash: decode(hash),\n    };\n}\n/**\n * Stringifies a URL object\n *\n * @param stringifyQuery\n * @param location\n */\nfunction stringifyURL(stringifyQuery, location) {\n    const query = location.query ? stringifyQuery(location.query) : '';\n    return location.path + (query && '?') + query + (location.hash || '');\n}\n/**\n * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n *\n * @param pathname - location.pathname\n * @param base - base to strip off\n */\nfunction stripBase(pathname, base) {\n    // no base or base is not found at the beginning\n    if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\n        return pathname;\n    return pathname.slice(base.length) || '/';\n}\n/**\n * Checks if two RouteLocation are equal. This means that both locations are\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\n * parameters and `hash` are the same\n *\n * @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n * @param a - first {@link RouteLocation}\n * @param b - second {@link RouteLocation}\n */\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n    const aLastIndex = a.matched.length - 1;\n    const bLastIndex = b.matched.length - 1;\n    return (aLastIndex > -1 &&\n        aLastIndex === bLastIndex &&\n        isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\n        isSameRouteLocationParams(a.params, b.params) &&\n        stringifyQuery(a.query) === stringifyQuery(b.query) &&\n        a.hash === b.hash);\n}\n/**\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\n * considered equal to the `RouteRecord` they are aliasing.\n *\n * @param a - first {@link RouteRecord}\n * @param b - second {@link RouteRecord}\n */\nfunction isSameRouteRecord(a, b) {\n    // since the original record has an undefined value for aliasOf\n    // but all aliases point to the original record, this will always compare\n    // the original record\n    return (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n    if (Object.keys(a).length !== Object.keys(b).length)\n        return false;\n    for (const key in a) {\n        if (!isSameRouteLocationParamsValue(a[key], b[key]))\n            return false;\n    }\n    return true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n    return isArray(a)\n        ? isEquivalentArray(a, b)\n        : isArray(b)\n            ? isEquivalentArray(b, a)\n            : a === b;\n}\n/**\n * Check if two arrays are the same or if an array with one single entry is the\n * same as another primitive value. Used to check query and parameters\n *\n * @param a - array of values\n * @param b - array of values or a single value\n */\nfunction isEquivalentArray(a, b) {\n    return isArray(b)\n        ? a.length === b.length && a.every((value, i) => value === b[i])\n        : a.length === 1 && a[0] === b;\n}\n/**\n * Resolves a relative path that starts with `.`.\n *\n * @param to - path location we are resolving\n * @param from - currentLocation.path, should start with `/`\n */\nfunction resolveRelativePath(to, from) {\n    if (to.startsWith('/'))\n        return to;\n    if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\n        warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n        return to;\n    }\n    if (!to)\n        return from;\n    const fromSegments = from.split('/');\n    const toSegments = to.split('/');\n    const lastToSegment = toSegments[toSegments.length - 1];\n    // make . and ./ the same (../ === .., ../../ === ../..)\n    // this is the same behavior as new URL()\n    if (lastToSegment === '..' || lastToSegment === '.') {\n        toSegments.push('');\n    }\n    let position = fromSegments.length - 1;\n    let toPosition;\n    let segment;\n    for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n        segment = toSegments[toPosition];\n        // we stay on the same position\n        if (segment === '.')\n            continue;\n        // go up in the from array\n        if (segment === '..') {\n            // we can't go below zero, but we still need to increment toPosition\n            if (position > 1)\n                position--;\n            // continue\n        }\n        // we reached a non-relative path, we stop here\n        else\n            break;\n    }\n    return (fromSegments.slice(0, position).join('/') +\n        '/' +\n        toSegments.slice(toPosition).join('/'));\n}\n/**\n * Initial route location where the router is. Can be used in navigation guards\n * to differentiate the initial navigation.\n *\n * @example\n * ```js\n * import { START_LOCATION } from 'vue-router'\n *\n * router.beforeEach((to, from) => {\n *   if (from === START_LOCATION) {\n *     // initial navigation\n *   }\n * })\n * ```\n */\nconst START_LOCATION_NORMALIZED = {\n    path: '/',\n    // TODO: could we use a symbol in the future?\n    name: undefined,\n    params: {},\n    query: {},\n    hash: '',\n    fullPath: '/',\n    matched: [],\n    meta: {},\n    redirectedFrom: undefined,\n};\n\nvar NavigationType;\n(function (NavigationType) {\n    NavigationType[\"pop\"] = \"pop\";\n    NavigationType[\"push\"] = \"push\";\n})(NavigationType || (NavigationType = {}));\nvar NavigationDirection;\n(function (NavigationDirection) {\n    NavigationDirection[\"back\"] = \"back\";\n    NavigationDirection[\"forward\"] = \"forward\";\n    NavigationDirection[\"unknown\"] = \"\";\n})(NavigationDirection || (NavigationDirection = {}));\n/**\n * Starting location for Histories\n */\nconst START = '';\n// Generic utils\n/**\n * Normalizes a base by removing any trailing slash and reading the base tag if\n * present.\n *\n * @param base - base to normalize\n */\nfunction normalizeBase(base) {\n    if (!base) {\n        if (isBrowser) {\n            // respect <base> tag\n            const baseEl = document.querySelector('base');\n            base = (baseEl && baseEl.getAttribute('href')) || '/';\n            // strip full URL origin\n            base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\n        }\n        else {\n            base = '/';\n        }\n    }\n    // ensure leading slash when it was removed by the regex above avoid leading\n    // slash with hash because the file could be read from the disk like file://\n    // and the leading slash would cause problems\n    if (base[0] !== '/' && base[0] !== '#')\n        base = '/' + base;\n    // remove the trailing slash so all other method can just do `base + fullPath`\n    // to build an href\n    return removeTrailingSlash(base);\n}\n// remove any character before the hash\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n    return base.replace(BEFORE_HASH_RE, '#') + location;\n}\n\nfunction getElementPosition(el, offset) {\n    const docRect = document.documentElement.getBoundingClientRect();\n    const elRect = el.getBoundingClientRect();\n    return {\n        behavior: offset.behavior,\n        left: elRect.left - docRect.left - (offset.left || 0),\n        top: elRect.top - docRect.top - (offset.top || 0),\n    };\n}\nconst computeScrollPosition = () => ({\n    left: window.scrollX,\n    top: window.scrollY,\n});\nfunction scrollToPosition(position) {\n    let scrollToOptions;\n    if ('el' in position) {\n        const positionEl = position.el;\n        const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\n        /**\n         * `id`s can accept pretty much any characters, including CSS combinators\n         * like `>` or `~`. It's still possible to retrieve elements using\n         * `document.getElementById('~')` but it needs to be escaped when using\n         * `document.querySelector('#\\\\~')` for it to be valid. The only\n         * requirements for `id`s are them to be unique on the page and to not be\n         * empty (`id=\"\"`). Because of that, when passing an id selector, it should\n         * be properly escaped for it to work with `querySelector`. We could check\n         * for the id selector to be simple (no CSS combinators `+ >~`) but that\n         * would make things inconsistent since they are valid characters for an\n         * `id` but would need to be escaped when using `querySelector`, breaking\n         * their usage and ending up in no selector returned. Selectors need to be\n         * escaped:\n         *\n         * - `#1-thing` becomes `#\\31 -thing`\n         * - `#with~symbols` becomes `#with\\\\~symbols`\n         *\n         * - More information about  the topic can be found at\n         *   https://mathiasbynens.be/notes/html5-id-class.\n         * - Practical example: https://mathiasbynens.be/demo/html5-id\n         */\n        if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\n            if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\n                try {\n                    const foundEl = document.querySelector(position.el);\n                    if (isIdSelector && foundEl) {\n                        warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n                        // return to avoid other warnings\n                        return;\n                    }\n                }\n                catch (err) {\n                    warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n                    // return to avoid other warnings\n                    return;\n                }\n            }\n        }\n        const el = typeof positionEl === 'string'\n            ? isIdSelector\n                ? document.getElementById(positionEl.slice(1))\n                : document.querySelector(positionEl)\n            : positionEl;\n        if (!el) {\n            (process.env.NODE_ENV !== 'production') &&\n                warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n            return;\n        }\n        scrollToOptions = getElementPosition(el, position);\n    }\n    else {\n        scrollToOptions = position;\n    }\n    if ('scrollBehavior' in document.documentElement.style)\n        window.scrollTo(scrollToOptions);\n    else {\n        window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n    }\n}\nfunction getScrollKey(path, delta) {\n    const position = history.state ? history.state.position - delta : -1;\n    return position + path;\n}\nconst scrollPositions = new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n    scrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n    const scroll = scrollPositions.get(key);\n    // consume it so it's not used again\n    scrollPositions.delete(key);\n    return scroll;\n}\n// TODO: RFC about how to save scroll position\n/**\n * ScrollBehavior instance used by the router to compute and restore the scroll\n * position when navigating.\n */\n// export interface ScrollHandler<ScrollPositionEntry extends HistoryStateValue, ScrollPosition extends ScrollPositionEntry> {\n//   // returns a scroll position that can be saved in history\n//   compute(): ScrollPositionEntry\n//   // can take an extended ScrollPositionEntry\n//   scroll(position: ScrollPosition): void\n// }\n// export const scrollHandler: ScrollHandler<ScrollPosition> = {\n//   compute: computeScroll,\n//   scroll: scrollToPosition,\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\n/**\n * Creates a normalized history location from a window.location object\n * @param base - The base path\n * @param location - The window.location object\n */\nfunction createCurrentLocation(base, location) {\n    const { pathname, search, hash } = location;\n    // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\n    const hashPos = base.indexOf('#');\n    if (hashPos > -1) {\n        let slicePos = hash.includes(base.slice(hashPos))\n            ? base.slice(hashPos).length\n            : 1;\n        let pathFromHash = hash.slice(slicePos);\n        // prepend the starting slash to hash so the url starts with /#\n        if (pathFromHash[0] !== '/')\n            pathFromHash = '/' + pathFromHash;\n        return stripBase(pathFromHash, '');\n    }\n    const path = stripBase(pathname, base);\n    return path + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n    let listeners = [];\n    let teardowns = [];\n    // TODO: should it be a stack? a Dict. Check if the popstate listener\n    // can trigger twice\n    let pauseState = null;\n    const popStateHandler = ({ state, }) => {\n        const to = createCurrentLocation(base, location);\n        const from = currentLocation.value;\n        const fromState = historyState.value;\n        let delta = 0;\n        if (state) {\n            currentLocation.value = to;\n            historyState.value = state;\n            // ignore the popstate and reset the pauseState\n            if (pauseState && pauseState === from) {\n                pauseState = null;\n                return;\n            }\n            delta = fromState ? state.position - fromState.position : 0;\n        }\n        else {\n            replace(to);\n        }\n        // Here we could also revert the navigation by calling history.go(-delta)\n        // this listener will have to be adapted to not trigger again and to wait for the url\n        // to be updated before triggering the listeners. Some kind of validation function would also\n        // need to be passed to the listeners so the navigation can be accepted\n        // call all listeners\n        listeners.forEach(listener => {\n            listener(currentLocation.value, from, {\n                delta,\n                type: NavigationType.pop,\n                direction: delta\n                    ? delta > 0\n                        ? NavigationDirection.forward\n                        : NavigationDirection.back\n                    : NavigationDirection.unknown,\n            });\n        });\n    };\n    function pauseListeners() {\n        pauseState = currentLocation.value;\n    }\n    function listen(callback) {\n        // set up the listener and prepare teardown callbacks\n        listeners.push(callback);\n        const teardown = () => {\n            const index = listeners.indexOf(callback);\n            if (index > -1)\n                listeners.splice(index, 1);\n        };\n        teardowns.push(teardown);\n        return teardown;\n    }\n    function beforeUnloadListener() {\n        const { history } = window;\n        if (!history.state)\n            return;\n        history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\n    }\n    function destroy() {\n        for (const teardown of teardowns)\n            teardown();\n        teardowns = [];\n        window.removeEventListener('popstate', popStateHandler);\n        window.removeEventListener('beforeunload', beforeUnloadListener);\n    }\n    // set up the listeners and prepare teardown callbacks\n    window.addEventListener('popstate', popStateHandler);\n    // TODO: could we use 'pagehide' or 'visibilitychange' instead?\n    // https://developer.chrome.com/blog/page-lifecycle-api/\n    window.addEventListener('beforeunload', beforeUnloadListener, {\n        passive: true,\n    });\n    return {\n        pauseListeners,\n        listen,\n        destroy,\n    };\n}\n/**\n * Creates a state object\n */\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n    return {\n        back,\n        current,\n        forward,\n        replaced,\n        position: window.history.length,\n        scroll: computeScroll ? computeScrollPosition() : null,\n    };\n}\nfunction useHistoryStateNavigation(base) {\n    const { history, location } = window;\n    // private variables\n    const currentLocation = {\n        value: createCurrentLocation(base, location),\n    };\n    const historyState = { value: history.state };\n    // build current history entry as this is a fresh navigation\n    if (!historyState.value) {\n        changeLocation(currentLocation.value, {\n            back: null,\n            current: currentLocation.value,\n            forward: null,\n            // the length is off by one, we need to decrease it\n            position: history.length - 1,\n            replaced: true,\n            // don't add a scroll as the user may have an anchor, and we want\n            // scrollBehavior to be triggered without a saved position\n            scroll: null,\n        }, true);\n    }\n    function changeLocation(to, state, replace) {\n        /**\n         * if a base tag is provided, and we are on a normal domain, we have to\n         * respect the provided `base` attribute because pushState() will use it and\n         * potentially erase anything before the `#` like at\n         * https://github.com/vuejs/router/issues/685 where a base of\n         * `/folder/#` but a base of `/` would erase the `/folder/` section. If\n         * there is no host, the `<base>` tag makes no sense and if there isn't a\n         * base tag we can just use everything after the `#`.\n         */\n        const hashIndex = base.indexOf('#');\n        const url = hashIndex > -1\n            ? (location.host && document.querySelector('base')\n                ? base\n                : base.slice(hashIndex)) + to\n            : createBaseLocation() + base + to;\n        try {\n            // BROWSER QUIRK\n            // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\n            history[replace ? 'replaceState' : 'pushState'](state, '', url);\n            historyState.value = state;\n        }\n        catch (err) {\n            if ((process.env.NODE_ENV !== 'production')) {\n                warn('Error with push/replace State', err);\n            }\n            else {\n                console.error(err);\n            }\n            // Force the navigation, this also resets the call count\n            location[replace ? 'replace' : 'assign'](url);\n        }\n    }\n    function replace(to, data) {\n        const state = assign({}, history.state, buildState(historyState.value.back, \n        // keep back and forward entries but override current position\n        to, historyState.value.forward, true), data, { position: historyState.value.position });\n        changeLocation(to, state, true);\n        currentLocation.value = to;\n    }\n    function push(to, data) {\n        // Add to current entry the information of where we are going\n        // as well as saving the current position\n        const currentState = assign({}, \n        // use current history state to gracefully handle a wrong call to\n        // history.replaceState\n        // https://github.com/vuejs/router/issues/366\n        historyState.value, history.state, {\n            forward: to,\n            scroll: computeScrollPosition(),\n        });\n        if ((process.env.NODE_ENV !== 'production') && !history.state) {\n            warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\n                `history.replaceState(history.state, '', url)\\n\\n` +\n                `You can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state`);\n        }\n        changeLocation(currentState.current, currentState, true);\n        const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\n        changeLocation(to, state, false);\n        currentLocation.value = to;\n    }\n    return {\n        location: currentLocation,\n        state: historyState,\n        push,\n        replace,\n    };\n}\n/**\n * Creates an HTML5 history. Most common history for single page applications.\n *\n * @param base -\n */\nfunction createWebHistory(base) {\n    base = normalizeBase(base);\n    const historyNavigation = useHistoryStateNavigation(base);\n    const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n    function go(delta, triggerListeners = true) {\n        if (!triggerListeners)\n            historyListeners.pauseListeners();\n        history.go(delta);\n    }\n    const routerHistory = assign({\n        // it's overridden right after\n        location: '',\n        base,\n        go,\n        createHref: createHref.bind(null, base),\n    }, historyNavigation, historyListeners);\n    Object.defineProperty(routerHistory, 'location', {\n        enumerable: true,\n        get: () => historyNavigation.location.value,\n    });\n    Object.defineProperty(routerHistory, 'state', {\n        enumerable: true,\n        get: () => historyNavigation.state.value,\n    });\n    return routerHistory;\n}\n\n/**\n * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n *\n * @param base - Base applied to all urls, defaults to '/'\n * @returns a history object that can be passed to the router constructor\n */\nfunction createMemoryHistory(base = '') {\n    let listeners = [];\n    let queue = [START];\n    let position = 0;\n    base = normalizeBase(base);\n    function setLocation(location) {\n        position++;\n        if (position !== queue.length) {\n            // we are in the middle, we remove everything from here in the queue\n            queue.splice(position);\n        }\n        queue.push(location);\n    }\n    function triggerListeners(to, from, { direction, delta }) {\n        const info = {\n            direction,\n            delta,\n            type: NavigationType.pop,\n        };\n        for (const callback of listeners) {\n            callback(to, from, info);\n        }\n    }\n    const routerHistory = {\n        // rewritten by Object.defineProperty\n        location: START,\n        // TODO: should be kept in queue\n        state: {},\n        base,\n        createHref: createHref.bind(null, base),\n        replace(to) {\n            // remove current entry and decrement position\n            queue.splice(position--, 1);\n            setLocation(to);\n        },\n        push(to, data) {\n            setLocation(to);\n        },\n        listen(callback) {\n            listeners.push(callback);\n            return () => {\n                const index = listeners.indexOf(callback);\n                if (index > -1)\n                    listeners.splice(index, 1);\n            };\n        },\n        destroy() {\n            listeners = [];\n            queue = [START];\n            position = 0;\n        },\n        go(delta, shouldTrigger = true) {\n            const from = this.location;\n            const direction = \n            // we are considering delta === 0 going forward, but in abstract mode\n            // using 0 for the delta doesn't make sense like it does in html5 where\n            // it reloads the page\n            delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n            position = Math.max(0, Math.min(position + delta, queue.length - 1));\n            if (shouldTrigger) {\n                triggerListeners(this.location, from, {\n                    direction,\n                    delta,\n                });\n            }\n        },\n    };\n    Object.defineProperty(routerHistory, 'location', {\n        enumerable: true,\n        get: () => queue[position],\n    });\n    return routerHistory;\n}\n\n/**\n * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n * handle any URL is not possible.\n *\n * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `<base>` tag\n * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n * calls**, meaning that if you use a `<base>` tag, it's `href` value **has to match this parameter** (ignoring anything\n * after the `#`).\n *\n * @example\n * ```js\n * // at https://example.com/folder\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n * // you should avoid doing this because it changes the original url and breaks copying urls\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n *\n * // at file:///usr/etc/folder/index.html\n * // for locations with no `host`, the base is ignored\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n * ```\n */\nfunction createWebHashHistory(base) {\n    // Make sure this implementation is fine in terms of encoding, specially for IE11\n    // for `file://`, directly use the pathname and ignore the base\n    // location.pathname contains an initial `/` even at the root: `https://example.com`\n    base = location.host ? base || location.pathname + location.search : '';\n    // allow the user to provide a `#` in the middle: `/base/#/app`\n    if (!base.includes('#'))\n        base += '#';\n    if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\n        warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\n    }\n    return createWebHistory(base);\n}\n\nfunction isRouteLocation(route) {\n    return typeof route === 'string' || (route && typeof route === 'object');\n}\nfunction isRouteName(name) {\n    return typeof name === 'string' || typeof name === 'symbol';\n}\n\nconst NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');\n/**\n * Enumeration with all possible types for navigation failures. Can be passed to\n * {@link isNavigationFailure} to check for specific failures.\n */\nvar NavigationFailureType;\n(function (NavigationFailureType) {\n    /**\n     * An aborted navigation is a navigation that failed because a navigation\n     * guard returned `false` or called `next(false)`\n     */\n    NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n    /**\n     * A cancelled navigation is a navigation that failed because a more recent\n     * navigation finished started (not necessarily finished).\n     */\n    NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n    /**\n     * A duplicated navigation is a navigation that failed because it was\n     * initiated while already being at the exact same location.\n     */\n    NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n})(NavigationFailureType || (NavigationFailureType = {}));\n// DEV only debug messages\nconst ErrorTypeMessages = {\n    [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) {\n        return `No match for\\n ${JSON.stringify(location)}${currentLocation\n            ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\n            : ''}`;\n    },\n    [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\n        return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n    },\n    [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) {\n        return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n    },\n    [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) {\n        return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n    },\n    [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) {\n        return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n    },\n};\n/**\n * Creates a typed NavigationFailure object.\n * @internal\n * @param type - NavigationFailureType\n * @param params - { from, to }\n */\nfunction createRouterError(type, params) {\n    // keep full error messages in cjs versions\n    if ((process.env.NODE_ENV !== 'production') || !true) {\n        return assign(new Error(ErrorTypeMessages[type](params)), {\n            type,\n            [NavigationFailureSymbol]: true,\n        }, params);\n    }\n    else {\n        return assign(new Error(), {\n            type,\n            [NavigationFailureSymbol]: true,\n        }, params);\n    }\n}\nfunction isNavigationFailure(error, type) {\n    return (error instanceof Error &&\n        NavigationFailureSymbol in error &&\n        (type == null || !!(error.type & type)));\n}\nconst propertiesToLog = ['params', 'query', 'hash'];\nfunction stringifyRoute(to) {\n    if (typeof to === 'string')\n        return to;\n    if (to.path != null)\n        return to.path;\n    const location = {};\n    for (const key of propertiesToLog) {\n        if (key in to)\n            location[key] = to[key];\n    }\n    return JSON.stringify(location, null, 2);\n}\n\n// default pattern for a param: non-greedy everything but /\nconst BASE_PARAM_PATTERN = '[^/]+?';\nconst BASE_PATH_PARSER_OPTIONS = {\n    sensitive: false,\n    strict: false,\n    start: true,\n    end: true,\n};\n// Special Regex characters that must be escaped in static tokens\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\n *\n * @param segments - array of segments returned by tokenizePath\n * @param extraOptions - optional options for the regexp\n * @returns a PathParser\n */\nfunction tokensToParser(segments, extraOptions) {\n    const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n    // the amount of scores is the same as the length of segments except for the root segment \"/\"\n    const score = [];\n    // the regexp as a string\n    let pattern = options.start ? '^' : '';\n    // extracted keys\n    const keys = [];\n    for (const segment of segments) {\n        // the root segment needs special treatment\n        const segmentScores = segment.length ? [] : [90 /* PathScore.Root */];\n        // allow trailing slash\n        if (options.strict && !segment.length)\n            pattern += '/';\n        for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n            const token = segment[tokenIndex];\n            // resets the score if we are inside a sub-segment /:a-other-:b\n            let subSegmentScore = 40 /* PathScore.Segment */ +\n                (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0);\n            if (token.type === 0 /* TokenType.Static */) {\n                // prepend the slash if we are starting a new segment\n                if (!tokenIndex)\n                    pattern += '/';\n                pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\n                subSegmentScore += 40 /* PathScore.Static */;\n            }\n            else if (token.type === 1 /* TokenType.Param */) {\n                const { value, repeatable, optional, regexp } = token;\n                keys.push({\n                    name: value,\n                    repeatable,\n                    optional,\n                });\n                const re = regexp ? regexp : BASE_PARAM_PATTERN;\n                // the user provided a custom regexp /:id(\\\\d+)\n                if (re !== BASE_PARAM_PATTERN) {\n                    subSegmentScore += 10 /* PathScore.BonusCustomRegExp */;\n                    // make sure the regexp is valid before using it\n                    try {\n                        new RegExp(`(${re})`);\n                    }\n                    catch (err) {\n                        throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\n                            err.message);\n                    }\n                }\n                // when we repeat we must take care of the repeating leading slash\n                let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n                // prepend the slash if we are starting a new segment\n                if (!tokenIndex)\n                    subPattern =\n                        // avoid an optional / if there are more segments e.g. /:p?-static\n                        // or /:p?-:p2\n                        optional && segment.length < 2\n                            ? `(?:/${subPattern})`\n                            : '/' + subPattern;\n                if (optional)\n                    subPattern += '?';\n                pattern += subPattern;\n                subSegmentScore += 20 /* PathScore.Dynamic */;\n                if (optional)\n                    subSegmentScore += -8 /* PathScore.BonusOptional */;\n                if (repeatable)\n                    subSegmentScore += -20 /* PathScore.BonusRepeatable */;\n                if (re === '.*')\n                    subSegmentScore += -50 /* PathScore.BonusWildcard */;\n            }\n            segmentScores.push(subSegmentScore);\n        }\n        // an empty array like /home/ -> [[{home}], []]\n        // if (!segment.length) pattern += '/'\n        score.push(segmentScores);\n    }\n    // only apply the strict bonus to the last score\n    if (options.strict && options.end) {\n        const i = score.length - 1;\n        score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */;\n    }\n    // TODO: dev only warn double trailing slash\n    if (!options.strict)\n        pattern += '/?';\n    if (options.end)\n        pattern += '$';\n    // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\n    else if (options.strict && !pattern.endsWith('/'))\n        pattern += '(?:/|$)';\n    const re = new RegExp(pattern, options.sensitive ? '' : 'i');\n    function parse(path) {\n        const match = path.match(re);\n        const params = {};\n        if (!match)\n            return null;\n        for (let i = 1; i < match.length; i++) {\n            const value = match[i] || '';\n            const key = keys[i - 1];\n            params[key.name] = value && key.repeatable ? value.split('/') : value;\n        }\n        return params;\n    }\n    function stringify(params) {\n        let path = '';\n        // for optional parameters to allow to be empty\n        let avoidDuplicatedSlash = false;\n        for (const segment of segments) {\n            if (!avoidDuplicatedSlash || !path.endsWith('/'))\n                path += '/';\n            avoidDuplicatedSlash = false;\n            for (const token of segment) {\n                if (token.type === 0 /* TokenType.Static */) {\n                    path += token.value;\n                }\n                else if (token.type === 1 /* TokenType.Param */) {\n                    const { value, repeatable, optional } = token;\n                    const param = value in params ? params[value] : '';\n                    if (isArray(param) && !repeatable) {\n                        throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n                    }\n                    const text = isArray(param)\n                        ? param.join('/')\n                        : param;\n                    if (!text) {\n                        if (optional) {\n                            // if we have more than one optional param like /:a?-static we don't need to care about the optional param\n                            if (segment.length < 2) {\n                                // remove the last slash as we could be at the end\n                                if (path.endsWith('/'))\n                                    path = path.slice(0, -1);\n                                // do not append a slash on the next iteration\n                                else\n                                    avoidDuplicatedSlash = true;\n                            }\n                        }\n                        else\n                            throw new Error(`Missing required param \"${value}\"`);\n                    }\n                    path += text;\n                }\n            }\n        }\n        // avoid empty path when we have multiple optional params\n        return path || '/';\n    }\n    return {\n        re,\n        score,\n        keys,\n        parse,\n        stringify,\n    };\n}\n/**\n * Compares an array of numbers as used in PathParser.score and returns a\n * number. This function can be used to `sort` an array\n *\n * @param a - first array of numbers\n * @param b - second array of numbers\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n * should be sorted first\n */\nfunction compareScoreArray(a, b) {\n    let i = 0;\n    while (i < a.length && i < b.length) {\n        const diff = b[i] - a[i];\n        // only keep going if diff === 0\n        if (diff)\n            return diff;\n        i++;\n    }\n    // if the last subsegment was Static, the shorter segments should be sorted first\n    // otherwise sort the longest segment first\n    if (a.length < b.length) {\n        return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n            ? -1\n            : 1;\n    }\n    else if (a.length > b.length) {\n        return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n            ? 1\n            : -1;\n    }\n    return 0;\n}\n/**\n * Compare function that can be used with `sort` to sort an array of PathParser\n *\n * @param a - first PathParser\n * @param b - second PathParser\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n */\nfunction comparePathParserScore(a, b) {\n    let i = 0;\n    const aScore = a.score;\n    const bScore = b.score;\n    while (i < aScore.length && i < bScore.length) {\n        const comp = compareScoreArray(aScore[i], bScore[i]);\n        // do not return if both are equal\n        if (comp)\n            return comp;\n        i++;\n    }\n    if (Math.abs(bScore.length - aScore.length) === 1) {\n        if (isLastScoreNegative(aScore))\n            return 1;\n        if (isLastScoreNegative(bScore))\n            return -1;\n    }\n    // if a and b share the same score entries but b has more, sort b first\n    return bScore.length - aScore.length;\n    // this is the ternary version\n    // return aScore.length < bScore.length\n    //   ? 1\n    //   : aScore.length > bScore.length\n    //   ? -1\n    //   : 0\n}\n/**\n * This allows detecting splats at the end of a path: /home/:id(.*)*\n *\n * @param score - score to check\n * @returns true if the last entry is negative\n */\nfunction isLastScoreNegative(score) {\n    const last = score[score.length - 1];\n    return score.length > 0 && last[last.length - 1] < 0;\n}\n\nconst ROOT_TOKEN = {\n    type: 0 /* TokenType.Static */,\n    value: '',\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\n// After some profiling, the cache seems to be unnecessary because tokenizePath\n// (the slowest part of adding a route) is very fast\n// const tokenCache = new Map<string, Token[][]>()\nfunction tokenizePath(path) {\n    if (!path)\n        return [[]];\n    if (path === '/')\n        return [[ROOT_TOKEN]];\n    if (!path.startsWith('/')) {\n        throw new Error((process.env.NODE_ENV !== 'production')\n            ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\n            : `Invalid path \"${path}\"`);\n    }\n    // if (tokenCache.has(path)) return tokenCache.get(path)!\n    function crash(message) {\n        throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n    }\n    let state = 0 /* TokenizerState.Static */;\n    let previousState = state;\n    const tokens = [];\n    // the segment will always be valid because we get into the initial state\n    // with the leading /\n    let segment;\n    function finalizeSegment() {\n        if (segment)\n            tokens.push(segment);\n        segment = [];\n    }\n    // index on the path\n    let i = 0;\n    // char at index\n    let char;\n    // buffer of the value read\n    let buffer = '';\n    // custom regexp for a param\n    let customRe = '';\n    function consumeBuffer() {\n        if (!buffer)\n            return;\n        if (state === 0 /* TokenizerState.Static */) {\n            segment.push({\n                type: 0 /* TokenType.Static */,\n                value: buffer,\n            });\n        }\n        else if (state === 1 /* TokenizerState.Param */ ||\n            state === 2 /* TokenizerState.ParamRegExp */ ||\n            state === 3 /* TokenizerState.ParamRegExpEnd */) {\n            if (segment.length > 1 && (char === '*' || char === '+'))\n                crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n            segment.push({\n                type: 1 /* TokenType.Param */,\n                value: buffer,\n                regexp: customRe,\n                repeatable: char === '*' || char === '+',\n                optional: char === '*' || char === '?',\n            });\n        }\n        else {\n            crash('Invalid state to consume buffer');\n        }\n        buffer = '';\n    }\n    function addCharToBuffer() {\n        buffer += char;\n    }\n    while (i < path.length) {\n        char = path[i++];\n        if (char === '\\\\' && state !== 2 /* TokenizerState.ParamRegExp */) {\n            previousState = state;\n            state = 4 /* TokenizerState.EscapeNext */;\n            continue;\n        }\n        switch (state) {\n            case 0 /* TokenizerState.Static */:\n                if (char === '/') {\n                    if (buffer) {\n                        consumeBuffer();\n                    }\n                    finalizeSegment();\n                }\n                else if (char === ':') {\n                    consumeBuffer();\n                    state = 1 /* TokenizerState.Param */;\n                }\n                else {\n                    addCharToBuffer();\n                }\n                break;\n            case 4 /* TokenizerState.EscapeNext */:\n                addCharToBuffer();\n                state = previousState;\n                break;\n            case 1 /* TokenizerState.Param */:\n                if (char === '(') {\n                    state = 2 /* TokenizerState.ParamRegExp */;\n                }\n                else if (VALID_PARAM_RE.test(char)) {\n                    addCharToBuffer();\n                }\n                else {\n                    consumeBuffer();\n                    state = 0 /* TokenizerState.Static */;\n                    // go back one character if we were not modifying\n                    if (char !== '*' && char !== '?' && char !== '+')\n                        i--;\n                }\n                break;\n            case 2 /* TokenizerState.ParamRegExp */:\n                // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\n                // it already works by escaping the closing )\n                // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\n                // is this really something people need since you can also write\n                // /prefix_:p()_suffix\n                if (char === ')') {\n                    // handle the escaped )\n                    if (customRe[customRe.length - 1] == '\\\\')\n                        customRe = customRe.slice(0, -1) + char;\n                    else\n                        state = 3 /* TokenizerState.ParamRegExpEnd */;\n                }\n                else {\n                    customRe += char;\n                }\n                break;\n            case 3 /* TokenizerState.ParamRegExpEnd */:\n                // same as finalizing a param\n                consumeBuffer();\n                state = 0 /* TokenizerState.Static */;\n                // go back one character if we were not modifying\n                if (char !== '*' && char !== '?' && char !== '+')\n                    i--;\n                customRe = '';\n                break;\n            default:\n                crash('Unknown state');\n                break;\n        }\n    }\n    if (state === 2 /* TokenizerState.ParamRegExp */)\n        crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n    consumeBuffer();\n    finalizeSegment();\n    // tokenCache.set(path, tokens)\n    return tokens;\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\n    const parser = tokensToParser(tokenizePath(record.path), options);\n    // warn against params with the same name\n    if ((process.env.NODE_ENV !== 'production')) {\n        const existingKeys = new Set();\n        for (const key of parser.keys) {\n            if (existingKeys.has(key.name))\n                warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n            existingKeys.add(key.name);\n        }\n    }\n    const matcher = assign(parser, {\n        record,\n        parent,\n        // these needs to be populated by the parent\n        children: [],\n        alias: [],\n    });\n    if (parent) {\n        // both are aliases or both are not aliases\n        // we don't want to mix them because the order is used when\n        // passing originalRecord in Matcher.addRoute\n        if (!matcher.record.aliasOf === !parent.record.aliasOf)\n            parent.children.push(matcher);\n    }\n    return matcher;\n}\n\n/**\n * Creates a Router Matcher.\n *\n * @internal\n * @param routes - array of initial routes\n * @param globalOptions - global route options\n */\nfunction createRouterMatcher(routes, globalOptions) {\n    // normalized ordered array of matchers\n    const matchers = [];\n    const matcherMap = new Map();\n    globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\n    function getRecordMatcher(name) {\n        return matcherMap.get(name);\n    }\n    function addRoute(record, parent, originalRecord) {\n        // used later on to remove by name\n        const isRootAdd = !originalRecord;\n        const mainNormalizedRecord = normalizeRouteRecord(record);\n        if ((process.env.NODE_ENV !== 'production')) {\n            checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n        }\n        // we might be the child of an alias\n        mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n        const options = mergeOptions(globalOptions, record);\n        // generate an array of records to correctly handle aliases\n        const normalizedRecords = [mainNormalizedRecord];\n        if ('alias' in record) {\n            const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\n            for (const alias of aliases) {\n                normalizedRecords.push(\n                // we need to normalize again to ensure the `mods` property\n                // being non enumerable\n                normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n                    // this allows us to hold a copy of the `components` option\n                    // so that async components cache is hold on the original record\n                    components: originalRecord\n                        ? originalRecord.record.components\n                        : mainNormalizedRecord.components,\n                    path: alias,\n                    // we might be the child of an alias\n                    aliasOf: originalRecord\n                        ? originalRecord.record\n                        : mainNormalizedRecord,\n                    // the aliases are always of the same kind as the original since they\n                    // are defined on the same record\n                })));\n            }\n        }\n        let matcher;\n        let originalMatcher;\n        for (const normalizedRecord of normalizedRecords) {\n            const { path } = normalizedRecord;\n            // Build up the path for nested routes if the child isn't an absolute\n            // route. Only add the / delimiter if the child path isn't empty and if the\n            // parent path doesn't have a trailing slash\n            if (parent && path[0] !== '/') {\n                const parentPath = parent.record.path;\n                const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\n                normalizedRecord.path =\n                    parent.record.path + (path && connectingSlash + path);\n            }\n            if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\n                throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\n                    'See more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.');\n            }\n            // create the object beforehand, so it can be passed to children\n            matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n            if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\n                checkMissingParamsInAbsolutePath(matcher, parent);\n            // if we are an alias we must tell the original record that we exist,\n            // so we can be removed\n            if (originalRecord) {\n                originalRecord.alias.push(matcher);\n                if ((process.env.NODE_ENV !== 'production')) {\n                    checkSameParams(originalRecord, matcher);\n                }\n            }\n            else {\n                // otherwise, the first record is the original and others are aliases\n                originalMatcher = originalMatcher || matcher;\n                if (originalMatcher !== matcher)\n                    originalMatcher.alias.push(matcher);\n                // remove the route if named and only for the top record (avoid in nested calls)\n                // this works because the original record is the first one\n                if (isRootAdd && record.name && !isAliasRecord(matcher)) {\n                    if ((process.env.NODE_ENV !== 'production')) {\n                        checkSameNameAsAncestor(record, parent);\n                    }\n                    removeRoute(record.name);\n                }\n            }\n            // Avoid adding a record that doesn't display anything. This allows passing through records without a component to\n            // not be reached and pass through the catch all route\n            if (isMatchable(matcher)) {\n                insertMatcher(matcher);\n            }\n            if (mainNormalizedRecord.children) {\n                const children = mainNormalizedRecord.children;\n                for (let i = 0; i < children.length; i++) {\n                    addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n                }\n            }\n            // if there was no original record, then the first one was not an alias and all\n            // other aliases (if any) need to reference this record when adding children\n            originalRecord = originalRecord || matcher;\n            // TODO: add normalized records for more flexibility\n            // if (parent && isAliasRecord(originalRecord)) {\n            //   parent.children.push(originalRecord)\n            // }\n        }\n        return originalMatcher\n            ? () => {\n                // since other matchers are aliases, they should be removed by the original matcher\n                removeRoute(originalMatcher);\n            }\n            : noop;\n    }\n    function removeRoute(matcherRef) {\n        if (isRouteName(matcherRef)) {\n            const matcher = matcherMap.get(matcherRef);\n            if (matcher) {\n                matcherMap.delete(matcherRef);\n                matchers.splice(matchers.indexOf(matcher), 1);\n                matcher.children.forEach(removeRoute);\n                matcher.alias.forEach(removeRoute);\n            }\n        }\n        else {\n            const index = matchers.indexOf(matcherRef);\n            if (index > -1) {\n                matchers.splice(index, 1);\n                if (matcherRef.record.name)\n                    matcherMap.delete(matcherRef.record.name);\n                matcherRef.children.forEach(removeRoute);\n                matcherRef.alias.forEach(removeRoute);\n            }\n        }\n    }\n    function getRoutes() {\n        return matchers;\n    }\n    function insertMatcher(matcher) {\n        const index = findInsertionIndex(matcher, matchers);\n        matchers.splice(index, 0, matcher);\n        // only add the original record to the name map\n        if (matcher.record.name && !isAliasRecord(matcher))\n            matcherMap.set(matcher.record.name, matcher);\n    }\n    function resolve(location, currentLocation) {\n        let matcher;\n        let params = {};\n        let path;\n        let name;\n        if ('name' in location && location.name) {\n            matcher = matcherMap.get(location.name);\n            if (!matcher)\n                throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n                    location,\n                });\n            // warn if the user is passing invalid params so they can debug it better when they get removed\n            if ((process.env.NODE_ENV !== 'production')) {\n                const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName));\n                if (invalidParams.length) {\n                    warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n                }\n            }\n            name = matcher.record.name;\n            params = assign(\n            // paramsFromLocation is a new object\n            paramsFromLocation(currentLocation.params, \n            // only keep params that exist in the resolved location\n            // only keep optional params coming from a parent record\n            matcher.keys\n                .filter(k => !k.optional)\n                .concat(matcher.parent ? matcher.parent.keys.filter(k => k.optional) : [])\n                .map(k => k.name)), \n            // discard any existing params in the current location that do not exist here\n            // #1497 this ensures better active/exact matching\n            location.params &&\n                paramsFromLocation(location.params, matcher.keys.map(k => k.name)));\n            // throws if cannot be stringified\n            path = matcher.stringify(params);\n        }\n        else if (location.path != null) {\n            // no need to resolve the path with the matcher as it was provided\n            // this also allows the user to control the encoding\n            path = location.path;\n            if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\n                warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n            }\n            matcher = matchers.find(m => m.re.test(path));\n            // matcher should have a value after the loop\n            if (matcher) {\n                // we know the matcher works because we tested the regexp\n                params = matcher.parse(path);\n                name = matcher.record.name;\n            }\n            // location is a relative path\n        }\n        else {\n            // match by name or path of current route\n            matcher = currentLocation.name\n                ? matcherMap.get(currentLocation.name)\n                : matchers.find(m => m.re.test(currentLocation.path));\n            if (!matcher)\n                throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n                    location,\n                    currentLocation,\n                });\n            name = matcher.record.name;\n            // since we are navigating to the same location, we don't need to pick the\n            // params like when `name` is provided\n            params = assign({}, currentLocation.params, location.params);\n            path = matcher.stringify(params);\n        }\n        const matched = [];\n        let parentMatcher = matcher;\n        while (parentMatcher) {\n            // reversed order so parents are at the beginning\n            matched.unshift(parentMatcher.record);\n            parentMatcher = parentMatcher.parent;\n        }\n        return {\n            name,\n            path,\n            params,\n            matched,\n            meta: mergeMetaFields(matched),\n        };\n    }\n    // add initial routes\n    routes.forEach(route => addRoute(route));\n    function clearRoutes() {\n        matchers.length = 0;\n        matcherMap.clear();\n    }\n    return {\n        addRoute,\n        resolve,\n        removeRoute,\n        clearRoutes,\n        getRoutes,\n        getRecordMatcher,\n    };\n}\nfunction paramsFromLocation(params, keys) {\n    const newParams = {};\n    for (const key of keys) {\n        if (key in params)\n            newParams[key] = params[key];\n    }\n    return newParams;\n}\n/**\n * Normalizes a RouteRecordRaw. Creates a copy\n *\n * @param record\n * @returns the normalized version\n */\nfunction normalizeRouteRecord(record) {\n    const normalized = {\n        path: record.path,\n        redirect: record.redirect,\n        name: record.name,\n        meta: record.meta || {},\n        aliasOf: record.aliasOf,\n        beforeEnter: record.beforeEnter,\n        props: normalizeRecordProps(record),\n        children: record.children || [],\n        instances: {},\n        leaveGuards: new Set(),\n        updateGuards: new Set(),\n        enterCallbacks: {},\n        // must be declared afterwards\n        // mods: {},\n        components: 'components' in record\n            ? record.components || null\n            : record.component && { default: record.component },\n    };\n    // mods contain modules and shouldn't be copied,\n    // logged or anything. It's just used for internal\n    // advanced use cases like data loaders\n    Object.defineProperty(normalized, 'mods', {\n        value: {},\n    });\n    return normalized;\n}\n/**\n * Normalize the optional `props` in a record to always be an object similar to\n * components. Also accept a boolean for components.\n * @param record\n */\nfunction normalizeRecordProps(record) {\n    const propsObject = {};\n    // props does not exist on redirect records, but we can set false directly\n    const props = record.props || false;\n    if ('component' in record) {\n        propsObject.default = props;\n    }\n    else {\n        // NOTE: we could also allow a function to be applied to every component.\n        // Would need user feedback for use cases\n        for (const name in record.components)\n            propsObject[name] = typeof props === 'object' ? props[name] : props;\n    }\n    return propsObject;\n}\n/**\n * Checks if a record or any of its parent is an alias\n * @param record\n */\nfunction isAliasRecord(record) {\n    while (record) {\n        if (record.record.aliasOf)\n            return true;\n        record = record.parent;\n    }\n    return false;\n}\n/**\n * Merge meta fields of an array of records\n *\n * @param matched - array of matched records\n */\nfunction mergeMetaFields(matched) {\n    return matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction mergeOptions(defaults, partialOptions) {\n    const options = {};\n    for (const key in defaults) {\n        options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n    }\n    return options;\n}\nfunction isSameParam(a, b) {\n    return (a.name === b.name &&\n        a.optional === b.optional &&\n        a.repeatable === b.repeatable);\n}\n/**\n * Check if a path and its alias have the same required params\n *\n * @param a - original record\n * @param b - alias record\n */\nfunction checkSameParams(a, b) {\n    for (const key of a.keys) {\n        if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\n            return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n    }\n    for (const key of b.keys) {\n        if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\n            return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n    }\n}\n/**\n * A route with a name and a child with an empty path without a name should warn when adding the route\n *\n * @param mainNormalizedRecord - RouteRecordNormalized\n * @param parent - RouteRecordMatcher\n */\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n    if (parent &&\n        parent.record.name &&\n        !mainNormalizedRecord.name &&\n        !mainNormalizedRecord.path) {\n        warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n    }\n}\nfunction checkSameNameAsAncestor(record, parent) {\n    for (let ancestor = parent; ancestor; ancestor = ancestor.parent) {\n        if (ancestor.record.name === record.name) {\n            throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? 'child' : 'descendant'} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n        }\n    }\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n    for (const key of parent.keys) {\n        if (!record.keys.find(isSameParam.bind(null, key)))\n            return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n    }\n}\n/**\n * Performs a binary search to find the correct insertion index for a new matcher.\n *\n * Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n * with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n *\n * @param matcher - new matcher to be inserted\n * @param matchers - existing matchers\n */\nfunction findInsertionIndex(matcher, matchers) {\n    // First phase: binary search based on score\n    let lower = 0;\n    let upper = matchers.length;\n    while (lower !== upper) {\n        const mid = (lower + upper) >> 1;\n        const sortOrder = comparePathParserScore(matcher, matchers[mid]);\n        if (sortOrder < 0) {\n            upper = mid;\n        }\n        else {\n            lower = mid + 1;\n        }\n    }\n    // Second phase: check for an ancestor with the same score\n    const insertionAncestor = getInsertionAncestor(matcher);\n    if (insertionAncestor) {\n        upper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n        if ((process.env.NODE_ENV !== 'production') && upper < 0) {\n            // This should never happen\n            warn(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n        }\n    }\n    return upper;\n}\nfunction getInsertionAncestor(matcher) {\n    let ancestor = matcher;\n    while ((ancestor = ancestor.parent)) {\n        if (isMatchable(ancestor) &&\n            comparePathParserScore(matcher, ancestor) === 0) {\n            return ancestor;\n        }\n    }\n    return;\n}\n/**\n * Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n * a component, or name, or redirect, are just used to group other routes.\n * @param matcher\n * @param matcher.record record of the matcher\n * @returns\n */\nfunction isMatchable({ record }) {\n    return !!(record.name ||\n        (record.components && Object.keys(record.components).length) ||\n        record.redirect);\n}\n\n/**\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n * version with the leading `?` and without Should work as URLSearchParams\n\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n    const query = {};\n    // avoid creating an object with an empty key and empty value\n    // because of split('&')\n    if (search === '' || search === '?')\n        return query;\n    const hasLeadingIM = search[0] === '?';\n    const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n    for (let i = 0; i < searchParams.length; ++i) {\n        // pre decode the + into space\n        const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n        // allow the = character\n        const eqPos = searchParam.indexOf('=');\n        const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n        const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n        if (key in query) {\n            // an extra variable for ts types\n            let currentValue = query[key];\n            if (!isArray(currentValue)) {\n                currentValue = query[key] = [currentValue];\n            }\n            currentValue.push(value);\n        }\n        else {\n            query[key] = value;\n        }\n    }\n    return query;\n}\n/**\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n * doesn't prepend a `?`\n *\n * @internal\n *\n * @param query - query object to stringify\n * @returns string version of the query without the leading `?`\n */\nfunction stringifyQuery(query) {\n    let search = '';\n    for (let key in query) {\n        const value = query[key];\n        key = encodeQueryKey(key);\n        if (value == null) {\n            // only null adds the value\n            if (value !== undefined) {\n                search += (search.length ? '&' : '') + key;\n            }\n            continue;\n        }\n        // keep null values\n        const values = isArray(value)\n            ? value.map(v => v && encodeQueryValue(v))\n            : [value && encodeQueryValue(value)];\n        values.forEach(value => {\n            // skip undefined values in arrays as if they were not present\n            // smaller code than using filter\n            if (value !== undefined) {\n                // only append & with non-empty search\n                search += (search.length ? '&' : '') + key;\n                if (value != null)\n                    search += '=' + value;\n            }\n        });\n    }\n    return search;\n}\n/**\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n * numbers into strings, removing keys with an undefined value and replacing\n * undefined with null in arrays\n *\n * @param query - query object to normalize\n * @returns a normalized query object\n */\nfunction normalizeQuery(query) {\n    const normalizedQuery = {};\n    for (const key in query) {\n        const value = query[key];\n        if (value !== undefined) {\n            normalizedQuery[key] = isArray(value)\n                ? value.map(v => (v == null ? null : '' + v))\n                : value == null\n                    ? value\n                    : '' + value;\n        }\n    }\n    return normalizedQuery;\n}\n\n/**\n * RouteRecord being rendered by the closest ancestor Router View. Used for\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n * Location Matched\n *\n * @internal\n */\nconst matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');\n/**\n * Allows overriding the router view depth to control which component in\n * `matched` is rendered. rvd stands for Router View Depth\n *\n * @internal\n */\nconst viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');\n/**\n * Allows overriding the router instance returned by `useRouter` in tests. r\n * stands for router\n *\n * @internal\n */\nconst routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');\n/**\n * Allows overriding the current route returned by `useRoute` in tests. rl\n * stands for route location\n *\n * @internal\n */\nconst routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');\n/**\n * Allows overriding the current route used by router-view. Internally this is\n * used when the `route` prop is passed.\n *\n * @internal\n */\nconst routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');\n\n/**\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n */\nfunction useCallbacks() {\n    let handlers = [];\n    function add(handler) {\n        handlers.push(handler);\n        return () => {\n            const i = handlers.indexOf(handler);\n            if (i > -1)\n                handlers.splice(i, 1);\n        };\n    }\n    function reset() {\n        handlers = [];\n    }\n    return {\n        add,\n        list: () => handlers.slice(),\n        reset,\n    };\n}\n\nfunction registerGuard(record, name, guard) {\n    const removeFromList = () => {\n        record[name].delete(guard);\n    };\n    onUnmounted(removeFromList);\n    onDeactivated(removeFromList);\n    onActivated(() => {\n        record[name].add(guard);\n    });\n    record[name].add(guard);\n}\n/**\n * Add a navigation guard that triggers whenever the component for the current\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\n * used in any component. The guard is removed when the component is unmounted.\n *\n * @param leaveGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteLeave(leaveGuard) {\n    if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n        warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\n        return;\n    }\n    const activeRecord = inject(matchedRouteKey, \n    // to avoid warning\n    {}).value;\n    if (!activeRecord) {\n        (process.env.NODE_ENV !== 'production') &&\n            warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\n        return;\n    }\n    registerGuard(activeRecord, 'leaveGuards', leaveGuard);\n}\n/**\n * Add a navigation guard that triggers whenever the current location is about\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n * component. The guard is removed when the component is unmounted.\n *\n * @param updateGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteUpdate(updateGuard) {\n    if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n        warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\n        return;\n    }\n    const activeRecord = inject(matchedRouteKey, \n    // to avoid warning\n    {}).value;\n    if (!activeRecord) {\n        (process.env.NODE_ENV !== 'production') &&\n            warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\n        return;\n    }\n    registerGuard(activeRecord, 'updateGuards', updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = fn => fn()) {\n    // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\n    const enterCallbackArray = record &&\n        // name is defined if record is because of the function overload\n        (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n    return () => new Promise((resolve, reject) => {\n        const next = (valid) => {\n            if (valid === false) {\n                reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, {\n                    from,\n                    to,\n                }));\n            }\n            else if (valid instanceof Error) {\n                reject(valid);\n            }\n            else if (isRouteLocation(valid)) {\n                reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, {\n                    from: to,\n                    to: valid,\n                }));\n            }\n            else {\n                if (enterCallbackArray &&\n                    // since enterCallbackArray is truthy, both record and name also are\n                    record.enterCallbacks[name] === enterCallbackArray &&\n                    typeof valid === 'function') {\n                    enterCallbackArray.push(valid);\n                }\n                resolve();\n            }\n        };\n        // wrapping with Promise.resolve allows it to work with both async and sync guards\n        const guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next));\n        let guardCall = Promise.resolve(guardReturn);\n        if (guard.length < 3)\n            guardCall = guardCall.then(next);\n        if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\n            const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n            if (typeof guardReturn === 'object' && 'then' in guardReturn) {\n                guardCall = guardCall.then(resolvedValue => {\n                    // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n                    if (!next._called) {\n                        warn(message);\n                        return Promise.reject(new Error('Invalid navigation guard'));\n                    }\n                    return resolvedValue;\n                });\n            }\n            else if (guardReturn !== undefined) {\n                // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n                if (!next._called) {\n                    warn(message);\n                    reject(new Error('Invalid navigation guard'));\n                    return;\n                }\n            }\n        }\n        guardCall.catch(err => reject(err));\n    });\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n    let called = 0;\n    return function () {\n        if (called++ === 1)\n            warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n        // @ts-expect-error: we put it in the original one because it's easier to check\n        next._called = true;\n        if (called === 1)\n            next.apply(null, arguments);\n    };\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = fn => fn()) {\n    const guards = [];\n    for (const record of matched) {\n        if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) {\n            warn(`Record with path \"${record.path}\" is either missing a \"component(s)\"` +\n                ` or \"children\" property.`);\n        }\n        for (const name in record.components) {\n            let rawComponent = record.components[name];\n            if ((process.env.NODE_ENV !== 'production')) {\n                if (!rawComponent ||\n                    (typeof rawComponent !== 'object' &&\n                        typeof rawComponent !== 'function')) {\n                    warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\n                        ` a valid component. Received \"${String(rawComponent)}\".`);\n                    // throw to ensure we stop here but warn to ensure the message isn't\n                    // missed by the user\n                    throw new Error('Invalid route component');\n                }\n                else if ('then' in rawComponent) {\n                    // warn if user wrote import('/component.vue') instead of () =>\n                    // import('./component.vue')\n                    warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\n                        `Promise instead of a function that returns a Promise. Did you ` +\n                        `write \"import('./MyPage.vue')\" instead of ` +\n                        `\"() => import('./MyPage.vue')\" ? This will break in ` +\n                        `production if not fixed.`);\n                    const promise = rawComponent;\n                    rawComponent = () => promise;\n                }\n                else if (rawComponent.__asyncLoader &&\n                    // warn only once per component\n                    !rawComponent.__warnedDefineAsync) {\n                    rawComponent.__warnedDefineAsync = true;\n                    warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\n                        `using \"defineAsyncComponent()\". ` +\n                        `Write \"() => import('./MyPage.vue')\" instead of ` +\n                        `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n                }\n            }\n            // skip update and leave guards if the route component is not mounted\n            if (guardType !== 'beforeRouteEnter' && !record.instances[name])\n                continue;\n            if (isRouteComponent(rawComponent)) {\n                // __vccOpts is added by vue-class-component and contain the regular options\n                const options = rawComponent.__vccOpts || rawComponent;\n                const guard = options[guardType];\n                guard &&\n                    guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n            }\n            else {\n                // start requesting the chunk already\n                let componentPromise = rawComponent();\n                if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\n                    warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n                    componentPromise = Promise.resolve(componentPromise);\n                }\n                guards.push(() => componentPromise.then(resolved => {\n                    if (!resolved)\n                        throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n                    const resolvedComponent = isESModule(resolved)\n                        ? resolved.default\n                        : resolved;\n                    // keep the resolved module for plugins like data loaders\n                    record.mods[name] = resolved;\n                    // replace the function with the resolved component\n                    // cannot be null or undefined because we went into the for loop\n                    record.components[name] = resolvedComponent;\n                    // __vccOpts is added by vue-class-component and contain the regular options\n                    const options = resolvedComponent.__vccOpts || resolvedComponent;\n                    const guard = options[guardType];\n                    return (guard &&\n                        guardToPromiseFn(guard, to, from, record, name, runWithContext)());\n                }));\n            }\n        }\n    }\n    return guards;\n}\n/**\n * Ensures a route is loaded, so it can be passed as o prop to `<RouterView>`.\n *\n * @param route - resolved route to load\n */\nfunction loadRouteLocation(route) {\n    return route.matched.every(record => record.redirect)\n        ? Promise.reject(new Error('Cannot load a route that redirects.'))\n        : Promise.all(route.matched.map(record => record.components &&\n            Promise.all(Object.keys(record.components).reduce((promises, name) => {\n                const rawComponent = record.components[name];\n                if (typeof rawComponent === 'function' &&\n                    !('displayName' in rawComponent)) {\n                    promises.push(rawComponent().then(resolved => {\n                        if (!resolved)\n                            return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n                        const resolvedComponent = isESModule(resolved)\n                            ? resolved.default\n                            : resolved;\n                        // keep the resolved module for plugins like data loaders\n                        record.mods[name] = resolved;\n                        // replace the function with the resolved component\n                        // cannot be null or undefined because we went into the for loop\n                        record.components[name] = resolvedComponent;\n                        return;\n                    }));\n                }\n                return promises;\n            }, [])))).then(() => route);\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\n// `isExactActive` behavior should go through an RFC\n/**\n * Returns the internal behavior of a {@link RouterLink} without the rendering part.\n *\n * @param props - a `to` location and an optional `replace` flag\n */\nfunction useLink(props) {\n    const router = inject(routerKey);\n    const currentRoute = inject(routeLocationKey);\n    let hasPrevious = false;\n    let previousTo = null;\n    const route = computed(() => {\n        const to = unref(props.to);\n        if ((process.env.NODE_ENV !== 'production') && (!hasPrevious || to !== previousTo)) {\n            if (!isRouteLocation(to)) {\n                if (hasPrevious) {\n                    warn(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n                }\n                else {\n                    warn(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n                }\n            }\n            previousTo = to;\n            hasPrevious = true;\n        }\n        return router.resolve(to);\n    });\n    const activeRecordIndex = computed(() => {\n        const { matched } = route.value;\n        const { length } = matched;\n        const routeMatched = matched[length - 1];\n        const currentMatched = currentRoute.matched;\n        if (!routeMatched || !currentMatched.length)\n            return -1;\n        const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n        if (index > -1)\n            return index;\n        // possible parent record\n        const parentRecordPath = getOriginalPath(matched[length - 2]);\n        return (\n        // we are dealing with nested routes\n        length > 1 &&\n            // if the parent and matched route have the same path, this link is\n            // referring to the empty child. Or we currently are on a different\n            // child of the same parent\n            getOriginalPath(routeMatched) === parentRecordPath &&\n            // avoid comparing the child with its parent\n            currentMatched[currentMatched.length - 1].path !== parentRecordPath\n            ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\n            : index);\n    });\n    const isActive = computed(() => activeRecordIndex.value > -1 &&\n        includesParams(currentRoute.params, route.value.params));\n    const isExactActive = computed(() => activeRecordIndex.value > -1 &&\n        activeRecordIndex.value === currentRoute.matched.length - 1 &&\n        isSameRouteLocationParams(currentRoute.params, route.value.params));\n    function navigate(e = {}) {\n        if (guardEvent(e)) {\n            const p = router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\n            // avoid uncaught errors are they are logged anyway\n            ).catch(noop);\n            if (props.viewTransition &&\n                typeof document !== 'undefined' &&\n                'startViewTransition' in document) {\n                document.startViewTransition(() => p);\n            }\n            return p;\n        }\n        return Promise.resolve();\n    }\n    // devtools only\n    if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n        const instance = getCurrentInstance();\n        if (instance) {\n            const linkContextDevtools = {\n                route: route.value,\n                isActive: isActive.value,\n                isExactActive: isExactActive.value,\n                error: null,\n            };\n            // @ts-expect-error: this is internal\n            instance.__vrl_devtools = instance.__vrl_devtools || [];\n            // @ts-expect-error: this is internal\n            instance.__vrl_devtools.push(linkContextDevtools);\n            watchEffect(() => {\n                linkContextDevtools.route = route.value;\n                linkContextDevtools.isActive = isActive.value;\n                linkContextDevtools.isExactActive = isExactActive.value;\n                linkContextDevtools.error = isRouteLocation(unref(props.to))\n                    ? null\n                    : 'Invalid \"to\" value';\n            }, { flush: 'post' });\n        }\n    }\n    /**\n     * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n     */\n    return {\n        route,\n        href: computed(() => route.value.href),\n        isActive,\n        isExactActive,\n        navigate,\n    };\n}\nfunction preferSingleVNode(vnodes) {\n    return vnodes.length === 1 ? vnodes[0] : vnodes;\n}\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\n    name: 'RouterLink',\n    compatConfig: { MODE: 3 },\n    props: {\n        to: {\n            type: [String, Object],\n            required: true,\n        },\n        replace: Boolean,\n        activeClass: String,\n        // inactiveClass: String,\n        exactActiveClass: String,\n        custom: Boolean,\n        ariaCurrentValue: {\n            type: String,\n            default: 'page',\n        },\n    },\n    useLink,\n    setup(props, { slots }) {\n        const link = reactive(useLink(props));\n        const { options } = inject(routerKey);\n        const elClass = computed(() => ({\n            [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\n            // [getLinkClass(\n            //   props.inactiveClass,\n            //   options.linkInactiveClass,\n            //   'router-link-inactive'\n            // )]: !link.isExactActive,\n            [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\n        }));\n        return () => {\n            const children = slots.default && preferSingleVNode(slots.default(link));\n            return props.custom\n                ? children\n                : h('a', {\n                    'aria-current': link.isExactActive\n                        ? props.ariaCurrentValue\n                        : null,\n                    href: link.href,\n                    // this would override user added attrs but Vue will still add\n                    // the listener, so we end up triggering both\n                    onClick: link.navigate,\n                    class: elClass.value,\n                }, children);\n        };\n    },\n});\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to render a link that triggers a navigation on click.\n */\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n    // don't redirect with control keys\n    if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n        return;\n    // don't redirect when preventDefault called\n    if (e.defaultPrevented)\n        return;\n    // don't redirect on right click\n    if (e.button !== undefined && e.button !== 0)\n        return;\n    // don't redirect if `target=\"_blank\"`\n    // @ts-expect-error getAttribute does exist\n    if (e.currentTarget && e.currentTarget.getAttribute) {\n        // @ts-expect-error getAttribute exists\n        const target = e.currentTarget.getAttribute('target');\n        if (/\\b_blank\\b/i.test(target))\n            return;\n    }\n    // this may be a Weex event which doesn't have this method\n    if (e.preventDefault)\n        e.preventDefault();\n    return true;\n}\nfunction includesParams(outer, inner) {\n    for (const key in inner) {\n        const innerValue = inner[key];\n        const outerValue = outer[key];\n        if (typeof innerValue === 'string') {\n            if (innerValue !== outerValue)\n                return false;\n        }\n        else {\n            if (!isArray(outerValue) ||\n                outerValue.length !== innerValue.length ||\n                innerValue.some((value, i) => value !== outerValue[i]))\n                return false;\n        }\n    }\n    return true;\n}\n/**\n * Get the original path value of a record by following its aliasOf\n * @param record\n */\nfunction getOriginalPath(record) {\n    return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\n}\n/**\n * Utility class to get the active class based on defaults.\n * @param propClass\n * @param globalClass\n * @param defaultClass\n */\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\n    ? propClass\n    : globalClass != null\n        ? globalClass\n        : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\n    name: 'RouterView',\n    // #674 we manually inherit them\n    inheritAttrs: false,\n    props: {\n        name: {\n            type: String,\n            default: 'default',\n        },\n        route: Object,\n    },\n    // Better compat for @vue/compat users\n    // https://github.com/vuejs/router/issues/1315\n    compatConfig: { MODE: 3 },\n    setup(props, { attrs, slots }) {\n        (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\n        const injectedRoute = inject(routerViewLocationKey);\n        const routeToDisplay = computed(() => props.route || injectedRoute.value);\n        const injectedDepth = inject(viewDepthKey, 0);\n        // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children\n        // that are used to reuse the `path` property\n        const depth = computed(() => {\n            let initialDepth = unref(injectedDepth);\n            const { matched } = routeToDisplay.value;\n            let matchedRoute;\n            while ((matchedRoute = matched[initialDepth]) &&\n                !matchedRoute.components) {\n                initialDepth++;\n            }\n            return initialDepth;\n        });\n        const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n        provide(viewDepthKey, computed(() => depth.value + 1));\n        provide(matchedRouteKey, matchedRouteRef);\n        provide(routerViewLocationKey, routeToDisplay);\n        const viewRef = ref();\n        // watch at the same time the component instance, the route record we are\n        // rendering, and the name\n        watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\n            // copy reused instances\n            if (to) {\n                // this will update the instance for new instances as well as reused\n                // instances when navigating to a new route\n                to.instances[name] = instance;\n                // the component instance is reused for a different route or name, so\n                // we copy any saved update or leave guards. With async setup, the\n                // mounting component will mount before the matchedRoute changes,\n                // making instance === oldInstance, so we check if guards have been\n                // added before. This works because we remove guards when\n                // unmounting/deactivating components\n                if (from && from !== to && instance && instance === oldInstance) {\n                    if (!to.leaveGuards.size) {\n                        to.leaveGuards = from.leaveGuards;\n                    }\n                    if (!to.updateGuards.size) {\n                        to.updateGuards = from.updateGuards;\n                    }\n                }\n            }\n            // trigger beforeRouteEnter next callbacks\n            if (instance &&\n                to &&\n                // if there is no instance but to and from are the same this might be\n                // the first visit\n                (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\n                (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\n            }\n        }, { flush: 'post' });\n        return () => {\n            const route = routeToDisplay.value;\n            // we need the value at the time we render because when we unmount, we\n            // navigated to a different location so the value is different\n            const currentName = props.name;\n            const matchedRoute = matchedRouteRef.value;\n            const ViewComponent = matchedRoute && matchedRoute.components[currentName];\n            if (!ViewComponent) {\n                return normalizeSlot(slots.default, { Component: ViewComponent, route });\n            }\n            // props from route configuration\n            const routePropsOption = matchedRoute.props[currentName];\n            const routeProps = routePropsOption\n                ? routePropsOption === true\n                    ? route.params\n                    : typeof routePropsOption === 'function'\n                        ? routePropsOption(route)\n                        : routePropsOption\n                : null;\n            const onVnodeUnmounted = vnode => {\n                // remove the instance reference to prevent leak\n                if (vnode.component.isUnmounted) {\n                    matchedRoute.instances[currentName] = null;\n                }\n            };\n            const component = h(ViewComponent, assign({}, routeProps, attrs, {\n                onVnodeUnmounted,\n                ref: viewRef,\n            }));\n            if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n                isBrowser &&\n                component.ref) {\n                // TODO: can display if it's an alias, its props\n                const info = {\n                    depth: depth.value,\n                    name: matchedRoute.name,\n                    path: matchedRoute.path,\n                    meta: matchedRoute.meta,\n                };\n                const internalInstances = isArray(component.ref)\n                    ? component.ref.map(r => r.i)\n                    : [component.ref.i];\n                internalInstances.forEach(instance => {\n                    // @ts-expect-error\n                    instance.__vrv_devtools = info;\n                });\n            }\n            return (\n            // pass the vnode to the slot as a prop.\n            // h and <component :is=\"...\"> both accept vnodes\n            normalizeSlot(slots.default, { Component: component, route }) ||\n                component);\n        };\n    },\n});\nfunction normalizeSlot(slot, data) {\n    if (!slot)\n        return null;\n    const slotContent = slot(data);\n    return slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to display the current route the user is at.\n */\nconst RouterView = RouterViewImpl;\n// warn against deprecated usage with <transition> & <keep-alive>\n// due to functional component being no longer eager in Vue 3\nfunction warnDeprecatedUsage() {\n    const instance = getCurrentInstance();\n    const parentName = instance.parent && instance.parent.type.name;\n    const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n    if (parentName &&\n        (parentName === 'KeepAlive' || parentName.includes('Transition')) &&\n        typeof parentSubTreeType === 'object' &&\n        parentSubTreeType.name === 'RouterView') {\n        const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\n        warn(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\\n` +\n            `Use slot props instead:\\n\\n` +\n            `<router-view v-slot=\"{ Component }\">\\n` +\n            `  <${comp}>\\n` +\n            `    <component :is=\"Component\" />\\n` +\n            `  </${comp}>\\n` +\n            `</router-view>`);\n    }\n}\n\n/**\n * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n *\n * @param routeLocation - routeLocation to format\n * @param tooltip - optional tooltip\n * @returns a copy of the routeLocation\n */\nfunction formatRouteLocation(routeLocation, tooltip) {\n    const copy = assign({}, routeLocation, {\n        // remove variables that can contain vue instances\n        matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\n    });\n    return {\n        _custom: {\n            type: null,\n            readOnly: true,\n            display: routeLocation.fullPath,\n            tooltip,\n            value: copy,\n        },\n    };\n}\nfunction formatDisplay(display) {\n    return {\n        _custom: {\n            display,\n        },\n    };\n}\n// to support multiple router instances\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n    // Take over router.beforeEach and afterEach\n    // make sure we are not registering the devtool twice\n    if (router.__hasDevtools)\n        return;\n    router.__hasDevtools = true;\n    // increment to support multiple router instances\n    const id = routerId++;\n    setupDevtoolsPlugin({\n        id: 'org.vuejs.router' + (id ? '.' + id : ''),\n        label: 'Vue Router',\n        packageName: 'vue-router',\n        homepage: 'https://router.vuejs.org',\n        logo: 'https://router.vuejs.org/logo.png',\n        componentStateTypes: ['Routing'],\n        app,\n    }, api => {\n        if (typeof api.now !== 'function') {\n            console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n        }\n        // display state added by the router\n        api.on.inspectComponent((payload, ctx) => {\n            if (payload.instanceData) {\n                payload.instanceData.state.push({\n                    type: 'Routing',\n                    key: '$route',\n                    editable: false,\n                    value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\n                });\n            }\n        });\n        // mark router-link as active and display tags on router views\n        api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n            if (componentInstance.__vrv_devtools) {\n                const info = componentInstance.__vrv_devtools;\n                node.tags.push({\n                    label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\n                    textColor: 0,\n                    tooltip: 'This component is rendered by &lt;router-view&gt;',\n                    backgroundColor: PINK_500,\n                });\n            }\n            // if multiple useLink are used\n            if (isArray(componentInstance.__vrl_devtools)) {\n                componentInstance.__devtoolsApi = api;\n                componentInstance.__vrl_devtools.forEach(devtoolsData => {\n                    let label = devtoolsData.route.path;\n                    let backgroundColor = ORANGE_400;\n                    let tooltip = '';\n                    let textColor = 0;\n                    if (devtoolsData.error) {\n                        label = devtoolsData.error;\n                        backgroundColor = RED_100;\n                        textColor = RED_700;\n                    }\n                    else if (devtoolsData.isExactActive) {\n                        backgroundColor = LIME_500;\n                        tooltip = 'This is exactly active';\n                    }\n                    else if (devtoolsData.isActive) {\n                        backgroundColor = BLUE_600;\n                        tooltip = 'This link is active';\n                    }\n                    node.tags.push({\n                        label,\n                        textColor,\n                        tooltip,\n                        backgroundColor,\n                    });\n                });\n            }\n        });\n        watch(router.currentRoute, () => {\n            // refresh active state\n            refreshRoutesView();\n            api.notifyComponentUpdate();\n            api.sendInspectorTree(routerInspectorId);\n            api.sendInspectorState(routerInspectorId);\n        });\n        const navigationsLayerId = 'router:navigations:' + id;\n        api.addTimelineLayer({\n            id: navigationsLayerId,\n            label: `Router${id ? ' ' + id : ''} Navigations`,\n            color: 0x40a8c4,\n        });\n        // const errorsLayerId = 'router:errors'\n        // api.addTimelineLayer({\n        //   id: errorsLayerId,\n        //   label: 'Router Errors',\n        //   color: 0xea5455,\n        // })\n        router.onError((error, to) => {\n            api.addTimelineEvent({\n                layerId: navigationsLayerId,\n                event: {\n                    title: 'Error during Navigation',\n                    subtitle: to.fullPath,\n                    logType: 'error',\n                    time: api.now(),\n                    data: { error },\n                    groupId: to.meta.__navigationId,\n                },\n            });\n        });\n        // attached to `meta` and used to group events\n        let navigationId = 0;\n        router.beforeEach((to, from) => {\n            const data = {\n                guard: formatDisplay('beforeEach'),\n                from: formatRouteLocation(from, 'Current Location during this navigation'),\n                to: formatRouteLocation(to, 'Target location'),\n            };\n            // Used to group navigations together, hide from devtools\n            Object.defineProperty(to.meta, '__navigationId', {\n                value: navigationId++,\n            });\n            api.addTimelineEvent({\n                layerId: navigationsLayerId,\n                event: {\n                    time: api.now(),\n                    title: 'Start of navigation',\n                    subtitle: to.fullPath,\n                    data,\n                    groupId: to.meta.__navigationId,\n                },\n            });\n        });\n        router.afterEach((to, from, failure) => {\n            const data = {\n                guard: formatDisplay('afterEach'),\n            };\n            if (failure) {\n                data.failure = {\n                    _custom: {\n                        type: Error,\n                        readOnly: true,\n                        display: failure ? failure.message : '',\n                        tooltip: 'Navigation Failure',\n                        value: failure,\n                    },\n                };\n                data.status = formatDisplay('❌');\n            }\n            else {\n                data.status = formatDisplay('✅');\n            }\n            // we set here to have the right order\n            data.from = formatRouteLocation(from, 'Current Location during this navigation');\n            data.to = formatRouteLocation(to, 'Target location');\n            api.addTimelineEvent({\n                layerId: navigationsLayerId,\n                event: {\n                    title: 'End of navigation',\n                    subtitle: to.fullPath,\n                    time: api.now(),\n                    data,\n                    logType: failure ? 'warning' : 'default',\n                    groupId: to.meta.__navigationId,\n                },\n            });\n        });\n        /**\n         * Inspector of Existing routes\n         */\n        const routerInspectorId = 'router-inspector:' + id;\n        api.addInspector({\n            id: routerInspectorId,\n            label: 'Routes' + (id ? ' ' + id : ''),\n            icon: 'book',\n            treeFilterPlaceholder: 'Search routes',\n        });\n        function refreshRoutesView() {\n            // the routes view isn't active\n            if (!activeRoutesPayload)\n                return;\n            const payload = activeRoutesPayload;\n            // children routes will appear as nested\n            let routes = matcher.getRoutes().filter(route => !route.parent ||\n                // these routes have a parent with no component which will not appear in the view\n                // therefore we still need to include them\n                !route.parent.record.components);\n            // reset match state to false\n            routes.forEach(resetMatchStateOnRouteRecord);\n            // apply a match state if there is a payload\n            if (payload.filter) {\n                routes = routes.filter(route => \n                // save matches state based on the payload\n                isRouteMatching(route, payload.filter.toLowerCase()));\n            }\n            // mark active routes\n            routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\n            payload.rootNodes = routes.map(formatRouteRecordForInspector);\n        }\n        let activeRoutesPayload;\n        api.on.getInspectorTree(payload => {\n            activeRoutesPayload = payload;\n            if (payload.app === app && payload.inspectorId === routerInspectorId) {\n                refreshRoutesView();\n            }\n        });\n        /**\n         * Display information about the currently selected route record\n         */\n        api.on.getInspectorState(payload => {\n            if (payload.app === app && payload.inspectorId === routerInspectorId) {\n                const routes = matcher.getRoutes();\n                const route = routes.find(route => route.record.__vd_id === payload.nodeId);\n                if (route) {\n                    payload.state = {\n                        options: formatRouteRecordMatcherForStateInspector(route),\n                    };\n                }\n            }\n        });\n        api.sendInspectorTree(routerInspectorId);\n        api.sendInspectorState(routerInspectorId);\n    });\n}\nfunction modifierForKey(key) {\n    if (key.optional) {\n        return key.repeatable ? '*' : '?';\n    }\n    else {\n        return key.repeatable ? '+' : '';\n    }\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n    const { record } = route;\n    const fields = [\n        { editable: false, key: 'path', value: record.path },\n    ];\n    if (record.name != null) {\n        fields.push({\n            editable: false,\n            key: 'name',\n            value: record.name,\n        });\n    }\n    fields.push({ editable: false, key: 'regexp', value: route.re });\n    if (route.keys.length) {\n        fields.push({\n            editable: false,\n            key: 'keys',\n            value: {\n                _custom: {\n                    type: null,\n                    readOnly: true,\n                    display: route.keys\n                        .map(key => `${key.name}${modifierForKey(key)}`)\n                        .join(' '),\n                    tooltip: 'Param keys',\n                    value: route.keys,\n                },\n            },\n        });\n    }\n    if (record.redirect != null) {\n        fields.push({\n            editable: false,\n            key: 'redirect',\n            value: record.redirect,\n        });\n    }\n    if (route.alias.length) {\n        fields.push({\n            editable: false,\n            key: 'aliases',\n            value: route.alias.map(alias => alias.record.path),\n        });\n    }\n    if (Object.keys(route.record.meta).length) {\n        fields.push({\n            editable: false,\n            key: 'meta',\n            value: route.record.meta,\n        });\n    }\n    fields.push({\n        key: 'score',\n        editable: false,\n        value: {\n            _custom: {\n                type: null,\n                readOnly: true,\n                display: route.score.map(score => score.join(', ')).join(' | '),\n                tooltip: 'Score used to sort routes',\n                value: route.score,\n            },\n        },\n    });\n    return fields;\n}\n/**\n * Extracted from tailwind palette\n */\nconst PINK_500 = 0xec4899;\nconst BLUE_600 = 0x2563eb;\nconst LIME_500 = 0x84cc16;\nconst CYAN_400 = 0x22d3ee;\nconst ORANGE_400 = 0xfb923c;\n// const GRAY_100 = 0xf4f4f5\nconst DARK = 0x666666;\nconst RED_100 = 0xfee2e2;\nconst RED_700 = 0xb91c1c;\nfunction formatRouteRecordForInspector(route) {\n    const tags = [];\n    const { record } = route;\n    if (record.name != null) {\n        tags.push({\n            label: String(record.name),\n            textColor: 0,\n            backgroundColor: CYAN_400,\n        });\n    }\n    if (record.aliasOf) {\n        tags.push({\n            label: 'alias',\n            textColor: 0,\n            backgroundColor: ORANGE_400,\n        });\n    }\n    if (route.__vd_match) {\n        tags.push({\n            label: 'matches',\n            textColor: 0,\n            backgroundColor: PINK_500,\n        });\n    }\n    if (route.__vd_exactActive) {\n        tags.push({\n            label: 'exact',\n            textColor: 0,\n            backgroundColor: LIME_500,\n        });\n    }\n    if (route.__vd_active) {\n        tags.push({\n            label: 'active',\n            textColor: 0,\n            backgroundColor: BLUE_600,\n        });\n    }\n    if (record.redirect) {\n        tags.push({\n            label: typeof record.redirect === 'string'\n                ? `redirect: ${record.redirect}`\n                : 'redirects',\n            textColor: 0xffffff,\n            backgroundColor: DARK,\n        });\n    }\n    // add an id to be able to select it. Using the `path` is not possible because\n    // empty path children would collide with their parents\n    let id = record.__vd_id;\n    if (id == null) {\n        id = String(routeRecordId++);\n        record.__vd_id = id;\n    }\n    return {\n        id,\n        label: record.path,\n        tags,\n        children: route.children.map(formatRouteRecordForInspector),\n    };\n}\n//  incremental id for route records and inspector state\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n    // no route will be active if matched is empty\n    // reset the matching state\n    const isExactActive = currentRoute.matched.length &&\n        isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n    route.__vd_exactActive = route.__vd_active = isExactActive;\n    if (!isExactActive) {\n        route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\n    }\n    route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n    route.__vd_match = false;\n    route.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n    const found = String(route.re).match(EXTRACT_REGEXP_RE);\n    route.__vd_match = false;\n    if (!found || found.length < 3) {\n        return false;\n    }\n    // use a regexp without $ at the end to match nested routes better\n    const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\n    if (nonEndingRE.test(filter)) {\n        // mark children as matches\n        route.children.forEach(child => isRouteMatching(child, filter));\n        // exception case: `/`\n        if (route.record.path !== '/' || filter === '/') {\n            route.__vd_match = route.re.test(filter);\n            return true;\n        }\n        // hide the / route\n        return false;\n    }\n    const path = route.record.path.toLowerCase();\n    const decodedPath = decode(path);\n    // also allow partial matching on the path\n    if (!filter.startsWith('/') &&\n        (decodedPath.includes(filter) || path.includes(filter)))\n        return true;\n    if (decodedPath.startsWith(filter) || path.startsWith(filter))\n        return true;\n    if (route.record.name && String(route.record.name).includes(filter))\n        return true;\n    return route.children.some(child => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n    const ret = {};\n    for (const key in obj) {\n        if (!keys.includes(key)) {\n            // @ts-expect-error\n            ret[key] = obj[key];\n        }\n    }\n    return ret;\n}\n\n/**\n * Creates a Router instance that can be used by a Vue app.\n *\n * @param options - {@link RouterOptions}\n */\nfunction createRouter(options) {\n    const matcher = createRouterMatcher(options.routes, options);\n    const parseQuery$1 = options.parseQuery || parseQuery;\n    const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n    const routerHistory = options.history;\n    if ((process.env.NODE_ENV !== 'production') && !routerHistory)\n        throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\n            ' https://router.vuejs.org/api/interfaces/RouterOptions.html#history');\n    const beforeGuards = useCallbacks();\n    const beforeResolveGuards = useCallbacks();\n    const afterGuards = useCallbacks();\n    const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n    let pendingLocation = START_LOCATION_NORMALIZED;\n    // leave the scrollRestoration if no scrollBehavior is provided\n    if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\n        history.scrollRestoration = 'manual';\n    }\n    const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\n    const encodeParams = applyToParams.bind(null, encodeParam);\n    const decodeParams = \n    // @ts-expect-error: intentionally avoid the type check\n    applyToParams.bind(null, decode);\n    function addRoute(parentOrRoute, route) {\n        let parent;\n        let record;\n        if (isRouteName(parentOrRoute)) {\n            parent = matcher.getRecordMatcher(parentOrRoute);\n            if ((process.env.NODE_ENV !== 'production') && !parent) {\n                warn(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n            }\n            record = route;\n        }\n        else {\n            record = parentOrRoute;\n        }\n        return matcher.addRoute(record, parent);\n    }\n    function removeRoute(name) {\n        const recordMatcher = matcher.getRecordMatcher(name);\n        if (recordMatcher) {\n            matcher.removeRoute(recordMatcher);\n        }\n        else if ((process.env.NODE_ENV !== 'production')) {\n            warn(`Cannot remove non-existent route \"${String(name)}\"`);\n        }\n    }\n    function getRoutes() {\n        return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\n    }\n    function hasRoute(name) {\n        return !!matcher.getRecordMatcher(name);\n    }\n    function resolve(rawLocation, currentLocation) {\n        // const resolve: Router['resolve'] = (rawLocation: RouteLocationRaw, currentLocation) => {\n        // const objectLocation = routerLocationAsObject(rawLocation)\n        // we create a copy to modify it later\n        currentLocation = assign({}, currentLocation || currentRoute.value);\n        if (typeof rawLocation === 'string') {\n            const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n            const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n            const href = routerHistory.createHref(locationNormalized.fullPath);\n            if ((process.env.NODE_ENV !== 'production')) {\n                if (href.startsWith('//'))\n                    warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n                else if (!matchedRoute.matched.length) {\n                    warn(`No match found for location with path \"${rawLocation}\"`);\n                }\n            }\n            // locationNormalized is always a new object\n            return assign(locationNormalized, matchedRoute, {\n                params: decodeParams(matchedRoute.params),\n                hash: decode(locationNormalized.hash),\n                redirectedFrom: undefined,\n                href,\n            });\n        }\n        if ((process.env.NODE_ENV !== 'production') && !isRouteLocation(rawLocation)) {\n            warn(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n            return resolve({});\n        }\n        let matcherLocation;\n        // path could be relative in object as well\n        if (rawLocation.path != null) {\n            if ((process.env.NODE_ENV !== 'production') &&\n                'params' in rawLocation &&\n                !('name' in rawLocation) &&\n                // @ts-expect-error: the type is never\n                Object.keys(rawLocation.params).length) {\n                warn(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n            }\n            matcherLocation = assign({}, rawLocation, {\n                path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\n            });\n        }\n        else {\n            // remove any nullish param\n            const targetParams = assign({}, rawLocation.params);\n            for (const key in targetParams) {\n                if (targetParams[key] == null) {\n                    delete targetParams[key];\n                }\n            }\n            // pass encoded values to the matcher, so it can produce encoded path and fullPath\n            matcherLocation = assign({}, rawLocation, {\n                params: encodeParams(targetParams),\n            });\n            // current location params are decoded, we need to encode them in case the\n            // matcher merges the params\n            currentLocation.params = encodeParams(currentLocation.params);\n        }\n        const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n        const hash = rawLocation.hash || '';\n        if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\n            warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n        }\n        // the matcher might have merged current location params, so\n        // we need to run the decoding again\n        matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n        const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n            hash: encodeHash(hash),\n            path: matchedRoute.path,\n        }));\n        const href = routerHistory.createHref(fullPath);\n        if ((process.env.NODE_ENV !== 'production')) {\n            if (href.startsWith('//')) {\n                warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n            }\n            else if (!matchedRoute.matched.length) {\n                warn(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n            }\n        }\n        return assign({\n            fullPath,\n            // keep the hash encoded so fullPath is effectively path + encodedQuery +\n            // hash\n            hash,\n            query: \n            // if the user is using a custom query lib like qs, we might have\n            // nested objects, so we keep the query as is, meaning it can contain\n            // numbers at `$route.query`, but at the point, the user will have to\n            // use their own type anyway.\n            // https://github.com/vuejs/router/issues/328#issuecomment-649481567\n            stringifyQuery$1 === stringifyQuery\n                ? normalizeQuery(rawLocation.query)\n                : (rawLocation.query || {}),\n        }, matchedRoute, {\n            redirectedFrom: undefined,\n            href,\n        });\n    }\n    function locationAsObject(to) {\n        return typeof to === 'string'\n            ? parseURL(parseQuery$1, to, currentRoute.value.path)\n            : assign({}, to);\n    }\n    function checkCanceledNavigation(to, from) {\n        if (pendingLocation !== to) {\n            return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, {\n                from,\n                to,\n            });\n        }\n    }\n    function push(to) {\n        return pushWithRedirect(to);\n    }\n    function replace(to) {\n        return push(assign(locationAsObject(to), { replace: true }));\n    }\n    function handleRedirectRecord(to) {\n        const lastMatched = to.matched[to.matched.length - 1];\n        if (lastMatched && lastMatched.redirect) {\n            const { redirect } = lastMatched;\n            let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\n            if (typeof newTargetLocation === 'string') {\n                newTargetLocation =\n                    newTargetLocation.includes('?') || newTargetLocation.includes('#')\n                        ? (newTargetLocation = locationAsObject(newTargetLocation))\n                        : // force empty params\n                            { path: newTargetLocation };\n                // @ts-expect-error: force empty params when a string is passed to let\n                // the router parse them again\n                newTargetLocation.params = {};\n            }\n            if ((process.env.NODE_ENV !== 'production') &&\n                newTargetLocation.path == null &&\n                !('name' in newTargetLocation)) {\n                warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n                throw new Error('Invalid redirect');\n            }\n            return assign({\n                query: to.query,\n                hash: to.hash,\n                // avoid transferring params if the redirect has a path\n                params: newTargetLocation.path != null ? {} : to.params,\n            }, newTargetLocation);\n        }\n    }\n    function pushWithRedirect(to, redirectedFrom) {\n        const targetLocation = (pendingLocation = resolve(to));\n        const from = currentRoute.value;\n        const data = to.state;\n        const force = to.force;\n        // to could be a string where `replace` is a function\n        const replace = to.replace === true;\n        const shouldRedirect = handleRedirectRecord(targetLocation);\n        if (shouldRedirect)\n            return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n                state: typeof shouldRedirect === 'object'\n                    ? assign({}, data, shouldRedirect.state)\n                    : data,\n                force,\n                replace,\n            }), \n            // keep original redirectedFrom if it exists\n            redirectedFrom || targetLocation);\n        // if it was a redirect we already called `pushWithRedirect` above\n        const toLocation = targetLocation;\n        toLocation.redirectedFrom = redirectedFrom;\n        let failure;\n        if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n            failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from });\n            // trigger scroll to allow scrolling to the same anchor\n            handleScroll(from, from, \n            // this is a push, the only way for it to be triggered from a\n            // history.listen is with a redirect, which makes it become a push\n            true, \n            // This cannot be the first navigation because the initial location\n            // cannot be manually navigated to\n            false);\n        }\n        return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\n            .catch((error) => isNavigationFailure(error)\n            ? // navigation redirects still mark the router as ready\n                isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)\n                    ? error\n                    : markAsReady(error) // also returns the error\n            : // reject any unknown error\n                triggerError(error, toLocation, from))\n            .then((failure) => {\n            if (failure) {\n                if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n                    if ((process.env.NODE_ENV !== 'production') &&\n                        // we are redirecting to the same location we were already at\n                        isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\n                        // and we have done it a couple of times\n                        redirectedFrom &&\n                        // @ts-expect-error: added only in dev\n                        (redirectedFrom._count = redirectedFrom._count\n                            ? // @ts-expect-error\n                                redirectedFrom._count + 1\n                            : 1) > 30) {\n                        warn(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n                        return Promise.reject(new Error('Infinite redirect in navigation guard'));\n                    }\n                    return pushWithRedirect(\n                    // keep options\n                    assign({\n                        // preserve an existing replacement but allow the redirect to override it\n                        replace,\n                    }, locationAsObject(failure.to), {\n                        state: typeof failure.to === 'object'\n                            ? assign({}, data, failure.to.state)\n                            : data,\n                        force,\n                    }), \n                    // preserve the original redirectedFrom if any\n                    redirectedFrom || toLocation);\n                }\n            }\n            else {\n                // if we fail we don't finalize the navigation\n                failure = finalizeNavigation(toLocation, from, true, replace, data);\n            }\n            triggerAfterEach(toLocation, from, failure);\n            return failure;\n        });\n    }\n    /**\n     * Helper to reject and skip all navigation guards if a new navigation happened\n     * @param to\n     * @param from\n     */\n    function checkCanceledNavigationAndReject(to, from) {\n        const error = checkCanceledNavigation(to, from);\n        return error ? Promise.reject(error) : Promise.resolve();\n    }\n    function runWithContext(fn) {\n        const app = installedApps.values().next().value;\n        // support Vue < 3.3\n        return app && typeof app.runWithContext === 'function'\n            ? app.runWithContext(fn)\n            : fn();\n    }\n    // TODO: refactor the whole before guards by internally using router.beforeEach\n    function navigate(to, from) {\n        let guards;\n        const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n        // all components here have been resolved once because we are leaving\n        guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\n        // leavingRecords is already reversed\n        for (const record of leavingRecords) {\n            record.leaveGuards.forEach(guard => {\n                guards.push(guardToPromiseFn(guard, to, from));\n            });\n        }\n        const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n        guards.push(canceledNavigationCheck);\n        // run the queue of per route beforeRouteLeave guards\n        return (runGuardQueue(guards)\n            .then(() => {\n            // check global guards beforeEach\n            guards = [];\n            for (const guard of beforeGuards.list()) {\n                guards.push(guardToPromiseFn(guard, to, from));\n            }\n            guards.push(canceledNavigationCheck);\n            return runGuardQueue(guards);\n        })\n            .then(() => {\n            // check in components beforeRouteUpdate\n            guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\n            for (const record of updatingRecords) {\n                record.updateGuards.forEach(guard => {\n                    guards.push(guardToPromiseFn(guard, to, from));\n                });\n            }\n            guards.push(canceledNavigationCheck);\n            // run the queue of per route beforeEnter guards\n            return runGuardQueue(guards);\n        })\n            .then(() => {\n            // check the route beforeEnter\n            guards = [];\n            for (const record of enteringRecords) {\n                // do not trigger beforeEnter on reused views\n                if (record.beforeEnter) {\n                    if (isArray(record.beforeEnter)) {\n                        for (const beforeEnter of record.beforeEnter)\n                            guards.push(guardToPromiseFn(beforeEnter, to, from));\n                    }\n                    else {\n                        guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n                    }\n                }\n            }\n            guards.push(canceledNavigationCheck);\n            // run the queue of per route beforeEnter guards\n            return runGuardQueue(guards);\n        })\n            .then(() => {\n            // NOTE: at this point to.matched is normalized and does not contain any () => Promise<Component>\n            // clear existing enterCallbacks, these are added by extractComponentsGuards\n            to.matched.forEach(record => (record.enterCallbacks = {}));\n            // check in-component beforeRouteEnter\n            guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from, runWithContext);\n            guards.push(canceledNavigationCheck);\n            // run the queue of per route beforeEnter guards\n            return runGuardQueue(guards);\n        })\n            .then(() => {\n            // check global guards beforeResolve\n            guards = [];\n            for (const guard of beforeResolveGuards.list()) {\n                guards.push(guardToPromiseFn(guard, to, from));\n            }\n            guards.push(canceledNavigationCheck);\n            return runGuardQueue(guards);\n        })\n            // catch any navigation canceled\n            .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)\n            ? err\n            : Promise.reject(err)));\n    }\n    function triggerAfterEach(to, from, failure) {\n        // navigation is confirmed, call afterGuards\n        // TODO: wrap with error handlers\n        afterGuards\n            .list()\n            .forEach(guard => runWithContext(() => guard(to, from, failure)));\n    }\n    /**\n     * - Cleans up any navigation guards\n     * - Changes the url if necessary\n     * - Calls the scrollBehavior\n     */\n    function finalizeNavigation(toLocation, from, isPush, replace, data) {\n        // a more recent navigation took place\n        const error = checkCanceledNavigation(toLocation, from);\n        if (error)\n            return error;\n        // only consider as push if it's not the first navigation\n        const isFirstNavigation = from === START_LOCATION_NORMALIZED;\n        const state = !isBrowser ? {} : history.state;\n        // change URL only if the user did a push/replace and if it's not the initial navigation because\n        // it's just reflecting the url\n        if (isPush) {\n            // on the initial navigation, we want to reuse the scroll position from\n            // history state if it exists\n            if (replace || isFirstNavigation)\n                routerHistory.replace(toLocation.fullPath, assign({\n                    scroll: isFirstNavigation && state && state.scroll,\n                }, data));\n            else\n                routerHistory.push(toLocation.fullPath, data);\n        }\n        // accept current navigation\n        currentRoute.value = toLocation;\n        handleScroll(toLocation, from, isPush, isFirstNavigation);\n        markAsReady();\n    }\n    let removeHistoryListener;\n    // attach listener to history to trigger navigations\n    function setupListeners() {\n        // avoid setting up listeners twice due to an invalid first navigation\n        if (removeHistoryListener)\n            return;\n        removeHistoryListener = routerHistory.listen((to, _from, info) => {\n            if (!router.listening)\n                return;\n            // cannot be a redirect route because it was in history\n            const toLocation = resolve(to);\n            // due to dynamic routing, and to hash history with manual navigation\n            // (manually changing the url or calling history.hash = '#/somewhere'),\n            // there could be a redirect record in history\n            const shouldRedirect = handleRedirectRecord(toLocation);\n            if (shouldRedirect) {\n                pushWithRedirect(assign(shouldRedirect, { replace: true, force: true }), toLocation).catch(noop);\n                return;\n            }\n            pendingLocation = toLocation;\n            const from = currentRoute.value;\n            // TODO: should be moved to web history?\n            if (isBrowser) {\n                saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n            }\n            navigate(toLocation, from)\n                .catch((error) => {\n                if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n                    return error;\n                }\n                if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n                    // Here we could call if (info.delta) routerHistory.go(-info.delta,\n                    // false) but this is bug prone as we have no way to wait the\n                    // navigation to be finished before calling pushWithRedirect. Using\n                    // a setTimeout of 16ms seems to work but there is no guarantee for\n                    // it to work on every browser. So instead we do not restore the\n                    // history entry and trigger a new navigation as requested by the\n                    // navigation guard.\n                    // the error is already handled by router.push we just want to avoid\n                    // logging the error\n                    pushWithRedirect(assign(locationAsObject(error.to), {\n                        force: true,\n                    }), toLocation\n                    // avoid an uncaught rejection, let push call triggerError\n                    )\n                        .then(failure => {\n                        // manual change in hash history #916 ending up in the URL not\n                        // changing, but it was changed by the manual url change, so we\n                        // need to manually change it ourselves\n                        if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ |\n                            16 /* ErrorTypes.NAVIGATION_DUPLICATED */) &&\n                            !info.delta &&\n                            info.type === NavigationType.pop) {\n                            routerHistory.go(-1, false);\n                        }\n                    })\n                        .catch(noop);\n                    // avoid the then branch\n                    return Promise.reject();\n                }\n                // do not restore history on unknown direction\n                if (info.delta) {\n                    routerHistory.go(-info.delta, false);\n                }\n                // unrecognized error, transfer to the global handler\n                return triggerError(error, toLocation, from);\n            })\n                .then((failure) => {\n                failure =\n                    failure ||\n                        finalizeNavigation(\n                        // after navigation, all matched components are resolved\n                        toLocation, from, false);\n                // revert the navigation\n                if (failure) {\n                    if (info.delta &&\n                        // a new navigation has been triggered, so we do not want to revert, that will change the current history\n                        // entry while a different route is displayed\n                        !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n                        routerHistory.go(-info.delta, false);\n                    }\n                    else if (info.type === NavigationType.pop &&\n                        isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) {\n                        // manual change in hash history #916\n                        // it's like a push but lacks the information of the direction\n                        routerHistory.go(-1, false);\n                    }\n                }\n                triggerAfterEach(toLocation, from, failure);\n            })\n                // avoid warnings in the console about uncaught rejections, they are logged by triggerErrors\n                .catch(noop);\n        });\n    }\n    // Initialization and Errors\n    let readyHandlers = useCallbacks();\n    let errorListeners = useCallbacks();\n    let ready;\n    /**\n     * Trigger errorListeners added via onError and throws the error as well\n     *\n     * @param error - error to throw\n     * @param to - location we were navigating to when the error happened\n     * @param from - location we were navigating from when the error happened\n     * @returns the error as a rejected promise\n     */\n    function triggerError(error, to, from) {\n        markAsReady(error);\n        const list = errorListeners.list();\n        if (list.length) {\n            list.forEach(handler => handler(error, to, from));\n        }\n        else {\n            if ((process.env.NODE_ENV !== 'production')) {\n                warn('uncaught error during route navigation:');\n            }\n            console.error(error);\n        }\n        // reject the error no matter there were error listeners or not\n        return Promise.reject(error);\n    }\n    function isReady() {\n        if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\n            return Promise.resolve();\n        return new Promise((resolve, reject) => {\n            readyHandlers.add([resolve, reject]);\n        });\n    }\n    function markAsReady(err) {\n        if (!ready) {\n            // still not ready if an error happened\n            ready = !err;\n            setupListeners();\n            readyHandlers\n                .list()\n                .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\n            readyHandlers.reset();\n        }\n        return err;\n    }\n    // Scroll behavior\n    function handleScroll(to, from, isPush, isFirstNavigation) {\n        const { scrollBehavior } = options;\n        if (!isBrowser || !scrollBehavior)\n            return Promise.resolve();\n        const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\n            ((isFirstNavigation || !isPush) &&\n                history.state &&\n                history.state.scroll) ||\n            null;\n        return nextTick()\n            .then(() => scrollBehavior(to, from, scrollPosition))\n            .then(position => position && scrollToPosition(position))\n            .catch(err => triggerError(err, to, from));\n    }\n    const go = (delta) => routerHistory.go(delta);\n    let started;\n    const installedApps = new Set();\n    const router = {\n        currentRoute,\n        listening: true,\n        addRoute,\n        removeRoute,\n        clearRoutes: matcher.clearRoutes,\n        hasRoute,\n        getRoutes,\n        resolve,\n        options,\n        push,\n        replace,\n        go,\n        back: () => go(-1),\n        forward: () => go(1),\n        beforeEach: beforeGuards.add,\n        beforeResolve: beforeResolveGuards.add,\n        afterEach: afterGuards.add,\n        onError: errorListeners.add,\n        isReady,\n        install(app) {\n            const router = this;\n            app.component('RouterLink', RouterLink);\n            app.component('RouterView', RouterView);\n            app.config.globalProperties.$router = router;\n            Object.defineProperty(app.config.globalProperties, '$route', {\n                enumerable: true,\n                get: () => unref(currentRoute),\n            });\n            // this initial navigation is only necessary on client, on server it doesn't\n            // make sense because it will create an extra unnecessary navigation and could\n            // lead to problems\n            if (isBrowser &&\n                // used for the initial navigation client side to avoid pushing\n                // multiple times when the router is used in multiple apps\n                !started &&\n                currentRoute.value === START_LOCATION_NORMALIZED) {\n                // see above\n                started = true;\n                push(routerHistory.location).catch(err => {\n                    if ((process.env.NODE_ENV !== 'production'))\n                        warn('Unexpected error when starting the router:', err);\n                });\n            }\n            const reactiveRoute = {};\n            for (const key in START_LOCATION_NORMALIZED) {\n                Object.defineProperty(reactiveRoute, key, {\n                    get: () => currentRoute.value[key],\n                    enumerable: true,\n                });\n            }\n            app.provide(routerKey, router);\n            app.provide(routeLocationKey, shallowReactive(reactiveRoute));\n            app.provide(routerViewLocationKey, currentRoute);\n            const unmountApp = app.unmount;\n            installedApps.add(app);\n            app.unmount = function () {\n                installedApps.delete(app);\n                // the router is not attached to an app anymore\n                if (installedApps.size < 1) {\n                    // invalidate the current navigation\n                    pendingLocation = START_LOCATION_NORMALIZED;\n                    removeHistoryListener && removeHistoryListener();\n                    removeHistoryListener = null;\n                    currentRoute.value = START_LOCATION_NORMALIZED;\n                    started = false;\n                    ready = false;\n                }\n                unmountApp();\n            };\n            // TODO: this probably needs to be updated so it can be used by vue-termui\n            if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n                addDevtools(app, router, matcher);\n            }\n        },\n    };\n    // TODO: type this as NavigationGuardReturn or similar instead of any\n    function runGuardQueue(guards) {\n        return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n    }\n    return router;\n}\nfunction extractChangingRecords(to, from) {\n    const leavingRecords = [];\n    const updatingRecords = [];\n    const enteringRecords = [];\n    const len = Math.max(from.matched.length, to.matched.length);\n    for (let i = 0; i < len; i++) {\n        const recordFrom = from.matched[i];\n        if (recordFrom) {\n            if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\n                updatingRecords.push(recordFrom);\n            else\n                leavingRecords.push(recordFrom);\n        }\n        const recordTo = to.matched[i];\n        if (recordTo) {\n            // the type doesn't matter because we are comparing per reference\n            if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\n                enteringRecords.push(recordTo);\n            }\n        }\n    }\n    return [leavingRecords, updatingRecords, enteringRecords];\n}\n\n/**\n * Returns the router instance. Equivalent to using `$router` inside\n * templates.\n */\nfunction useRouter() {\n    return inject(routerKey);\n}\n/**\n * Returns the current route location. Equivalent to using `$route` inside\n * templates.\n */\nfunction useRoute(_name) {\n    return inject(routeLocationKey);\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","<script lang=\"tsx\" setup>\nimport { setWindowTitle } from \"@zyzgroup/core-web\";\nimport Page from \"../base/Page.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    src?: string; // encodeURIComponent(\"https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159\")\n    title?: string;\n  }>(),\n  {\n    src: \"\",\n    title: \"\"\n  }\n);\n\nsetWindowTitle(props.title);\nconst src = decodeURIComponent(props.src);\n</script>\n\n<template>\n  <Page>\n    <div class=\"view-document\">\n      <img\n        class=\"view-document-img\"\n        :src=\"src\"\n      />\n    </div>\n  </Page>\n</template>\n\n<style scoped>\n.view-document {\n  box-sizing: border-box;\n  width: 100%;\n  padding: var(--yz-padding-horizontal, 15px);\n}\n.view-document-img {\n  width: 100%;\n}\n</style>\n","<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"flex\";\n  }>(),\n  {\n    type: \"flex\"\n  }\n);\n\nconst style: Record<string, string> = {};\n\nfunction setStyle() {\n  switch (props.type) {\n    case \"flex\":\n    default:\n      style.display = \"flex\";\n      style.flexDirection = \"row\";\n      style.justifyContent = \"space-between\";\n      style.alignItems = \"center\";\n  }\n}\nsetStyle();\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"content-space-between\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n\n<style scoped>\n.content-space-between > :nth-child(1) {\n  flex: 1 1 auto;\n}\n.content-space-between > :not(:nth-child(1)) {\n  flex: 0 0 auto;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\nimport { useLocalStorage } from \"@zyzgroup/core-web\";\nimport { mapState, context } from \"../../context/context\";\nimport { dialog, loading } from \"../../globalTeleport\";\nimport { useRouter } from \"../../hooks\";\nimport Button from \"../form/Button.vue\";\nimport Text from \"../form/Text.vue\";\nimport ContentSpaceBetween from \"../layout/ContentSpaceBetween.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Button, Text, ContentSpaceBetween },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    billsn: string;\n  }>(),\n  {\n    billsn: \"\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"reloadOrder\", ordersn: string): void;\n}>();\n\nconst mappedState = mapState([\n  \"user.openid\",\n  \"bill.sn\",\n  \"bill.merchsn\",\n  \"park.isROBOT\",\n  \"color.foregroundPattern\",\n  \"color.panelBorderPattern\",\n  \"color.redCommon\",\n  \"color.redSecondaryCommon\",\n  \"color.redSecondaryBorderCommon\"\n]);\n\nconst router = useRouter();\n\n// https://yaoyao.cebbank.com/LifePayment/webApp/h5/router.html?transType=01&canalType=13&canal=njczfs&ItemCode=860729765&userNo=32010025101035852255\nfunction gotoPay() {\n  context.ds.immediately(loading);\n  const billsn = props.billsn || mappedState[\"bill.sn\"].value;\n  context.axios\n    .post(\n      // `/api/v6/bill/${billsn}/pay`,\n      `/api/v6/bill/${billsn}/paywithmerch`,\n      {\n        openid: mappedState[\"user.openid\"].value,\n        type: \"U\",\n        merchsn: mappedState[\"bill.merchsn\"].value\n      },\n      {\n        retry: 0,\n        cache: 0\n      }\n    )\n    .then((result) => {\n      if (result.data.path) {\n        context.ds.closeLast();\n\n        // 跳转到第三方链接\n        // location.href = result.data.path;\n\n        // if (mappedState[\"park.isROBOT\"].value) {\n        //   push(\"/unlocking\");\n        // } else {\n        context.store.dispatch({\n          type: \"SET_RESULT\",\n          payload: {\n            status: \"success\",\n            title: \"支付成功\",\n            subtitle: \"请及时驶离车位，否则将继续计费\"\n          }\n        });\n        router.push(\"/result\");\n        // }\n      } else {\n        context.ds.immediately(dialog, {\n          title: \"接口出错\",\n          content: \"接口未返回跳转链接 path !\",\n          confirmText: \"知道了\",\n          mode: \"mini\",\n          onClose: () => {}\n        });\n      }\n    })\n    .catch((result) => {\n      context.ds.immediately(dialog, {\n        title: \"接口出错\",\n        content: result.data.error,\n        confirmText: \"知道了\",\n        mode: \"mini\",\n        onClose: () => {\n          const ordersn = result.data.sn ? String(result.data.sn) : \"\";\n          // 800 {\"error\":\"预订单已经过期，请重新生成订单！\",\"data\":{\"sn\":170172}}\n          // 600 {\"error\":\"支付单已经有明确的商户号！\"}\n          // if (result.status == 800) {\n          emits(\"reloadOrder\", ordersn);\n          // }\n        }\n      });\n    });\n}\n\nconst { get, set } = useLocalStorage(\"xg-footer-warn\");\nconst showWarn = ref(!get());\nfunction closeWarn() {\n  set(\"hide\");\n  showWarn.value = false;\n}\n</script>\n\n<template>\n  <div\n    class=\"xg-footer\"\n    :style=\"{\n      backgroundColor: `${mappedState['color.foregroundPattern'].value}`,\n      borderTop: `1px solid ${mappedState['color.panelBorderPattern'].value}`\n    }\"\n  >\n    <ContentSpaceBetween\n      v-if=\"showWarn\"\n      class=\"xg-footer-warn\"\n      :style=\"{\n        color: mappedState['color.redCommon'].value,\n        backgroundColor: mappedState['color.redSecondaryCommon'].value,\n        border: `1px solid ${mappedState['color.redSecondaryBorderCommon'].value}`\n      }\"\n    >\n      <Text\n        type=\"warn\"\n        :color=\"mappedState['color.redCommon'].value\"\n      >\n        上车前，请确认车底翻板已降下完成。\n      </Text>\n      <Button\n        colorPattern=\"red\"\n        mode=\"transparent\"\n        size=\"tertiary\"\n        :capsule=\"true\"\n        :backgroundColor=\"mappedState['color.foregroundPattern'].value\"\n        @throttledClick=\"closeWarn\"\n      >\n        不再提醒\n      </Button>\n    </ContentSpaceBetween>\n    <div class=\"xg-footer-inner\">\n      <Button\n        width=\"100%\"\n        @throttledClick=\"gotoPay\"\n      >\n        去支付\n      </Button>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.xg-footer {\n  position: relative;\n  box-sizing: border-box;\n}\n.xg-footer-warn {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  transform: translate(0, -100%);\n  font-size: 14px;\n  box-sizing: border-box;\n  padding: 6px var(--yz-padding-horizontal);\n}\n.xg-footer-inner {\n  box-sizing: border-box;\n  width: 100%;\n  padding: var(--yz-padding-vertical) var(--yz-padding-horizontal);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\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    plateColor?:\n      | \"蓝牌\"\n      | \"b\"\n      | \"绿牌\"\n      | \"g\"\n      | \"黄牌\"\n      | \"y\"\n      | \"黄绿\"\n      | \"q\"\n      | \"黑牌\"\n      | \"d\"\n      | \"白牌\"\n      | \"w\"\n      | \"未知\"\n      | \"unknown\";\n    display?:\n      | \"leading-chinese\"\n      | \"leading-dot\"\n      | \"leading-plaintext\"\n      | \"bg-mockcar\"\n      | \"bg-simple\";\n    fontWeight?: \"bold\" | \"normal\";\n    plainTextGap?: string;\n  }>(),\n  {\n    display: \"leading-chinese\",\n    fontWeight: \"normal\",\n    plainTextGap: \"#e6e6e6\"\n  }\n);\n\nconst emits = defineEmits<{\n  // (event: \"void\"): void;\n}>();\n\nconst PLATE_COLORS: {\n  name: string;\n  leadingStyle: Record<string, string>;\n  bgMockCarStyle: Record<string, string>;\n  bgSimpleStyle: Record<string, string>;\n}[] = [\n  {\n    name: \"蓝牌\",\n    leadingStyle: {\n      background: \"#0078f0\",\n      color: \"#ffffff\"\n    },\n    bgMockCarStyle: {\n      background: \"#0078f0\",\n      color: \"#ffffff\"\n    },\n    bgSimpleStyle: {\n      background: \"#0078f0\",\n      color: \"#ffffff\"\n    }\n  },\n  {\n    // 绿牌一定是8位数\n    name: \"绿牌\",\n    leadingStyle: {\n      background: \"#00f08c\",\n      color: \"#000000\"\n    },\n    bgMockCarStyle: {\n      background: \"linear-gradient(180deg, #F0FFFA 0%, #00F08C 100%)\",\n      color: \"#000000\"\n    },\n    bgSimpleStyle: {\n      background: \"#00f08c\",\n      color: \"#000000\"\n    }\n  },\n  {\n    name: \"黄牌\",\n    leadingStyle: {\n      background: \"#fac800\",\n      color: \"#000000\"\n    },\n    bgMockCarStyle: {\n      background: \"#fac800\",\n      color: \"#000000\"\n    },\n    bgSimpleStyle: {\n      background: \"#fac800\",\n      color: \"#000000\"\n    }\n  },\n  {\n    // 黄绿车牌一定是8位数\n    name: \"黄绿\",\n    leadingStyle: {\n      background: \"linear-gradient(90deg, #fac800 51.5%, #00f08c 51.5%)\",\n      color: \"#000000\"\n    },\n    bgMockCarStyle: {\n      background: `linear-gradient(90deg, #fac800 37%, #00f08c 37%)`,\n      color: \"#000000\"\n    },\n    bgSimpleStyle: {\n      background: `linear-gradient(90deg, #fac800 36%, #00f08c 36%)`,\n      color: \"#000000\"\n    }\n  },\n  {\n    name: \"黑牌\",\n    leadingStyle: {\n      background: \"#222222\",\n      color: \"#ffffff\"\n    },\n    bgMockCarStyle: {\n      background: \"#222222\",\n      color: \"#ffffff\"\n    },\n    bgSimpleStyle: {\n      background: \"#222222\",\n      color: \"#ffffff\"\n    }\n  },\n  {\n    name: \"白牌\",\n    leadingStyle: {\n      background: \"#ffffff\",\n      color: \"#000000\",\n      border: \"1px solid #999999\"\n    },\n    bgMockCarStyle: {\n      background: \"#ffffff\",\n      color: \"#000000\"\n    },\n    bgSimpleStyle: {\n      background: \"#ffffff\",\n      color: \"#000000\",\n      border: \"1px solid #999999\"\n    }\n  },\n  {\n    name: \"未知\",\n    leadingStyle: {\n      background: \"#cccccc\",\n      color: \"#ffffff\"\n    },\n    bgMockCarStyle: {\n      background: \"#cccccc\",\n      color: \"#ffffff\"\n    },\n    bgSimpleStyle: {\n      background: \"rgba(255,255,255,0)\"\n      // color: \"default-parent-font-color\"\n    }\n  }\n];\n\nfunction getPlateColor(plate: string, color?: string) {\n  let name = \"未知\";\n  switch (color) {\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  }\n  if (plate == \"无牌车\") {\n    name = \"未知\";\n  }\n  const result = PLATE_COLORS.filter((item) => item.name === name);\n  return result[0];\n}\n\nconst plateColor = ref(getPlateColor(props.plate, props.plateColor || \"\"));\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"plate-display\"\n    :class=\"display\"\n  >\n    <!-- leading-chinese -->\n    <div\n      v-if=\"\n        display == 'leading-chinese' &&\n        plateColor.name !== '未知' &&\n        plate !== '无牌车'\n      \"\n      class=\"leading\"\n      :style=\"plateColor.leadingStyle\"\n    >\n      {{ plateColor.name }}\n    </div>\n    <!-- leading-dot -->\n    <div\n      v-if=\"display == 'leading-dot' && plate !== '无牌车'\"\n      class=\"leading\"\n      :style=\"{\n        ...plateColor.leadingStyle,\n        width: '1em',\n        height: '1em'\n      }\"\n    ></div>\n    <!-- leading-plaintext -->\n    <div\n      v-if=\"\n        display == 'leading-plaintext' &&\n        plateColor.name !== '未知' &&\n        plate !== '无牌车'\n      \"\n      class=\"leading\"\n      :style=\"{\n        borderRight: `1px solid ${props.plainTextGap}`\n      }\"\n    >\n      {{ plateColor.name }}\n    </div>\n    <!-- bg-mockcar -->\n    <div\n      v-if=\"display == 'bg-mockcar'\"\n      class=\"text-wrap\"\n      :style=\"plateColor.bgMockCarStyle\"\n    >\n      <div\n        class=\"text\"\n        :style=\"{\n          border: `1px solid ${plateColor.bgMockCarStyle.color}`,\n          fontWeight: props.fontWeight\n        }\"\n      >\n        {{ plate }}\n      </div>\n    </div>\n    <!-- bg-simple -->\n    <div\n      v-else-if=\"display == 'bg-simple'\"\n      class=\"text-wrap\"\n      :style=\"plateColor.bgSimpleStyle\"\n    >\n      <div\n        class=\"text\"\n        :style=\"{\n          fontWeight: props.fontWeight\n        }\"\n      >\n        {{ plate }}\n      </div>\n    </div>\n    <!-- text -->\n    <div\n      v-else\n      class=\"text\"\n      :style=\"{ fontWeight: props.fontWeight }\"\n    >\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  line-height: 1;\n  font-size: 1em; /* default 1em = 16px */\n}\n.plate-display .leading {\n  box-sizing: border-box;\n  font-size: 0.875em; /* default 0.875em = 14px */\n  border-radius: 2px;\n  margin-right: 5px;\n}\n.plate-display.leading-chinese .leading {\n  padding: 2px 4px;\n}\n.plate-display.leading-dot .leading {\n  border-radius: 50%;\n}\n.plate-display.leading-plaintext .leading {\n  padding-right: 5px;\n  border-radius: 0;\n}\n.plate-display .text {\n  line-height: 1;\n  box-sizing: border-box;\n}\n.plate-display.bg-mockcar .text-wrap {\n  border-radius: 6px;\n}\n.plate-display.bg-simple .text-wrap {\n  border-radius: 2px;\n}\n.plate-display.bg-mockcar .text-wrap .text {\n  font-size: 1.5em; /* default 1.5em = 24px */\n  margin: 2px;\n  padding: 9px 10px;\n  border-radius: 4px;\n}\n.plate-display.bg-simple .text-wrap .text {\n  font-size: 0.875em; /* default 0.875em = 14px */\n  padding: 2px 4px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, VNode, render, h, Component, isVNode } from \"vue\";\nimport {\n  PromiseSchedule,\n  generateUUID,\n  CSSAnimationName\n} 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\";\nimport Page from \"./Page.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page },\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    delay?: number;\n    timingFunction?: SupportedEaseNameToCubicBezier;\n  }>(),\n  {\n    effect: \"moveToLeft\",\n    duration: 500,\n    delay: 0,\n    timingFunction: \"ease\"\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 RoutePage = {\n  pageKey?: string;\n  component: VNode | Component | HTMLElement;\n  attributes?: Record<string, any>;\n  child?: RawChildren | RawSlots;\n  // routesPageAttributes?: InstanceType<typeof Page>;\n};\n\nconst r = ref();\nlet lastResolve: (value: void | PromiseLike<void>) => void;\nlet shouldDeleteLastPage = false;\n\nlet currentPageIndex = -1;\nlet nextPageIndex = -1;\n\nlet pages: RoutePage[] = [];\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: CSSAnimationName,\n  nextPageEffect: CSSAnimationName\n): CSSAnimationName {\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): CSSAnimationName {\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// 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 \"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\nfunction runningEnd(pageIndex: number) {\n  nextOnTop();\n  if (pageIndex == currentPageIndex) {\n    pageElements[pageIndex].style.zIndex = `${currentZIndex}`;\n    pageElements[pageIndex].style.visibility = \"hidden\";\n  } else if (pageIndex == nextPageIndex) {\n    pageElements[pageIndex].style.zIndex = `${nextZIndex}`;\n    pageElements[pageIndex].style.visibility = \"visible\";\n    if (shouldDeleteLastPage) {\n      shouldDeleteLastPage = false;\n      pages.splice(pages.length - 1, 1);\n      renderPages();\n    }\n    emits(\"routeChangeEnd\", currentPageIndex, nextPageIndex, pages.length);\n    currentPageIndex = nextPageIndex;\n    lastResolve?.();\n    lastResolve = undefined;\n  }\n}\n\nfunction renderPages() {\n  if (!r.value) {\n    return;\n  }\n  const vnodes: VNode[] = pages.map((page, i) => {\n    if (isVNode(page.component)) {\n      // 无 key 不会重复利用\n      page.component.key = page.pageKey;\n    }\n    return h(\n      Page,\n      {\n        key: \"routes-page-\" + i,\n        class: \"routes-page-\" + i,\n        style: {\n          position: \"absolute\",\n          visibility: pageElements[i]?.style.visibility || \"hidden\",\n          zIndex: pageElements[i]?.style.zIndex || \"1\"\n        },\n        // ...page.routesPageAttributes,\n        name: getPageEffect(props.effect, i),\n        duration: getPageDuration(props.effect, i),\n        delay: getPageDelay(props.effect, i),\n        timingFunction: props.timingFunction,\n        onPageOpenStart: () => {\n          setRunningStyle(i);\n        },\n        onPageOpenEnd: () => {\n          runningEnd(i);\n        },\n        onPageCloseStart: () => {\n          setRunningStyle(i);\n        },\n        onPageCloseEnd: () => {\n          runningEnd(i);\n        }\n      },\n      // () => h(page.component, page.attributes)\n      {\n        default: () =>\n          isVNode(page.component)\n            ? page.component\n            : page.component instanceof HTMLElement\n            ? h(\n                \"div\",\n                {\n                  ...page.attributes,\n                  key: page.pageKey, // 无 key 不会重复利用\n                  innerHTML: page.component.innerHTML // ce 动态设置的 props 丢失 ！\n                }\n                // elementsToVNodes(page.component)\n              )\n            : h(\n                page.component,\n                {\n                  ...page.attributes,\n                  key: page.pageKey // 无 key 不会重复利用\n                },\n                () => page.child\n              )\n      }\n    );\n  });\n  render(\n    h(\n      \"div\",\n      {\n        key: \"routes-pages\",\n        class: \"routes-pages\",\n        style: {\n          display: \"block\",\n          width: \"100%\",\n          height: \"100%\",\n          position: \"relative\",\n          overflow: \"hidden\"\n        }\n      },\n      vnodes\n    ),\n    r.value\n  );\n\n  // 渲染结束\n  emits(\"renderComplete\");\n\n  pageElements = r.value.children[0].children;\n\n  vnodes.forEach((v, i) => {\n    pageActions[i] = {\n      open: v.component?.exposed?.open || (() => {}),\n      close: v.component?.exposed?.close || (() => {})\n    };\n  });\n}\n\nfunction _goto(index: number, _shouldDeleteLastPage = false): Promise<void> {\n  return new Promise<void>((resolve, reject) => {\n    if (!isValidPageIndex(index)) {\n      return reject(`Page:${index} is invalid!`);\n    }\n    if (index == currentPageIndex) {\n      return reject(`Page:${index} is currentPageIndex!`);\n    }\n    lastResolve = resolve;\n    shouldDeleteLastPage = _shouldDeleteLastPage;\n    nextPageIndex = index;\n    emits(\"routeChangeStart\", currentPageIndex, nextPageIndex, pages.length);\n    renderPages();\n    if (isForward()) {\n      // forward: page.open\n      if (isValidPageIndex(currentPageIndex)) {\n        pageActions[currentPageIndex].open();\n      }\n      if (isValidPageIndex(nextPageIndex)) {\n        pageActions[nextPageIndex].open();\n      }\n    } else {\n      // back: page.close\n      if (isValidPageIndex(currentPageIndex)) {\n        pageActions[currentPageIndex].close();\n      }\n      if (isValidPageIndex(nextPageIndex)) {\n        pageActions[nextPageIndex].close();\n      }\n    }\n    // 执行动画...\n  });\n}\n\nconst schedule = new PromiseSchedule<void>({ concurrency: 1 });\n\nfunction reset(resetPages: RoutePage[] = []): void {\n  schedule.asap(async () => {\n    pages = [...resetPages];\n    pages.forEach((p) => {\n      p.pageKey = p.pageKey || generateUUID();\n    });\n    currentPageIndex = -1;\n    await _goto(0);\n  });\n}\n\nfunction push(page: RoutePage): void {\n  schedule.asap(async () => {\n    page.pageKey = page.pageKey || generateUUID();\n    pages.push(page);\n    await _goto(pages.length - 1);\n  });\n}\n\n// 动画完成后，删除最后一页\nfunction pop(): void {\n  schedule.asap(async () => {\n    await _goto(pages.length - 2, true);\n  });\n}\n\nfunction goto(index: number): void {\n  schedule.asap(async () => {\n    await _goto(index);\n  });\n}\n\nfunction forward(): Promise<void> {\n  if (lastResolve) {\n    return Promise.reject(\"isRunning\");\n  }\n  return _goto(currentPageIndex + 1);\n}\n\nfunction back(): Promise<void> {\n  if (lastResolve) {\n    return Promise.reject(\"isRunning\");\n  }\n  return _goto(currentPageIndex - 1);\n}\n\ndefineExpose({\n  reset,\n  push,\n  pop,\n  goto,\n  forward,\n  back,\n  currentPageIndex: () => currentPageIndex,\n  totalPages: () => pages.length\n});\n</script>\n\n<template>\n  <div\n    ref=\"r\"\n    class=\"routes\"\n    style=\"\n      display: block;\n      width: 100%;\n      height: 100%;\n      position: relative;\n      overflow: 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  getViewport,\n  Easing\n} from \"@zyzgroup/core-web\";\nimport Pop from \"../pop/Pop.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  name: \"Image\",\n  customOptions: { 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: \"mount\", rect: DOMRect): void;\n}>();\n\nconst popRef = ref();\nlet isOpenPop = false;\n\nconst imageRef = ref();\n\nconst tl = new Timeline({\n  frameDuration: props.dur\n});\n\n// 所占空间\nlet containerWidth = 0;\nlet containerHeight = 0;\n// 图片原始\nlet sourceWidth = 0;\nlet sourceHeight = 0;\n// 图片显示\nconst showWidth = ref(0);\nconst showHeight = ref(0);\n// pop最终位置\nlet finalX = 0;\nlet finalY = 0;\nlet finalWidth = 0;\nlet finalHeight = 0;\n// pop动态位置\nconst popX = ref(0);\nconst popY = ref(0);\nconst popWidth = ref(0);\nconst popHeight = ref(0);\n\n// const isCORS = ref(false);\n\nconst outterResize = (box) => {\n  containerWidth = box.rect.width;\n  containerHeight = box.rect.height;\n  if (!sourceWidth || !sourceHeight) {\n    // 初始化获取图片信息\n    useLoadImage(props.src)\n      .then((info: { width: number; height: number }) => {\n        // isCORS.value = false;\n        sourceWidth = info.width;\n        sourceHeight = info.height;\n      })\n      .catch(() => {\n        // isCORS.value = true;\n        sourceWidth = containerWidth;\n        sourceHeight = containerHeight;\n      })\n      .then(() => {\n        setImageWidthHeight();\n      });\n  } else {\n    setImageWidthHeight();\n  }\n};\n\nconst innerResize = (box) => {\n  if (box.rect.width || box.rect.height) {\n    emits(\"mount\", box.rect);\n  }\n};\n\nfunction setImageWidthHeight() {\n  if (!containerWidth || !containerHeight || !sourceWidth || !sourceHeight) {\n    return;\n  }\n  const wrapImageRect = computeImageDisplayRect(\n    props.mode,\n    sourceWidth,\n    sourceHeight,\n    containerWidth,\n    containerHeight\n  );\n  showWidth.value = wrapImageRect.width;\n  showHeight.value = wrapImageRect.height;\n  const { width: viewportWidth, height: viewportHeight } = getViewport();\n  const viewportImageRect = computeImageDisplayRect(\n    \"aspectFit\",\n    sourceWidth,\n    sourceHeight,\n    viewportWidth,\n    viewportHeight\n  );\n  finalWidth = viewportImageRect.width;\n  finalHeight = viewportImageRect.height;\n  finalX = (viewportWidth - finalWidth) / 2;\n  finalY = (viewportHeight - finalHeight) / 2;\n}\n\nfunction click() {\n  if (!props.openImageDetailWhenClick) {\n    return;\n  }\n  const rect = imageRef.value.getRect();\n  tl.clear();\n  tl.addTween(\n    {\n      left: rect.x,\n      top: rect.y,\n      width: showWidth.value,\n      height: showHeight.value\n    },\n    {\n      left: finalX,\n      top: finalY,\n      width: finalWidth,\n      height: finalHeight\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  <Box\n    class=\"image\"\n    display=\"full\"\n    :style=\"{\n      backgroundColor: props.bgColor\n    }\"\n    @resize=\"outterResize\"\n    @throttled-click=\"click\"\n  >\n    <!-- <Box\n      v-if=\"!isCORS\"\n      display=\"shrink\"\n      @resize=\"innerResize\"\n    >\n      <img\n        :src=\"props.src\"\n        :style=\"{\n          display: 'block',\n          objectFit: 'contain',\n          cursor: props.openImageDetailWhenClick ? 'pointer' : 'default'\n        }\"\n      />\n    </Box> -->\n    <!-- v-if=\"isCORS\" -->\n    <Box\n      ref=\"imageRef\"\n      class=\"image-inner\"\n      display=\"shrink\"\n      :style=\"{\n        width: showWidth + 'px',\n        height: showHeight + 'px',\n        backgroundImage: `url(${props.src})`,\n        backgroundSize: `${showWidth}px ${showHeight}px`,\n        cursor: props.openImageDetailWhenClick ? 'pointer' : 'default'\n      }\"\n      @resize=\"innerResize\"\n    ></Box>\n    <Pop\n      ref=\"popRef\"\n      :direction-from=\"{ left: `${popX}px`, top: `${popY}px` }\"\n      :close-when-click-overlay=\"false\"\n      @clickOverlay=\"clickOverlay\"\n    >\n      <div\n        class=\"image-pop\"\n        :style=\"{\n          width: popWidth + 'px',\n          height: popHeight + 'px',\n          backgroundImage: `url(${props.src})`,\n          backgroundSize: '100% 100%'\n        }\"\n      ></div>\n    </Pop>\n  </Box>\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 { onUnmounted, ref, watchEffect } from \"vue\";\nimport { panLeft$, panRight$ } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(defineProps<{}>(), {});\n\nconst emits = defineEmits<{\n  (event: \"left\", e: HammerInput): void;\n  (event: \"right\", e: HammerInput): void;\n}>();\n\nconst r = ref();\n\nlet s1;\nlet s2;\nwatchEffect(() => {\n  if (!r.value) {\n    return;\n  }\n  s1?.unsubscribe();\n  s1 = panLeft$(r.value).subscribe((e) => {\n    emits(\"left\", e);\n  });\n  s2?.unsubscribe();\n  s2 = panRight$(r.value).subscribe((e) => {\n    emits(\"right\", e);\n  });\n});\n\nonUnmounted(() => {\n  s1?.unsubscribe();\n  s2?.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    ref=\"r\"\n    class=\"pan\"\n    :style=\"{ display: 'inline-block' }\"\n  >\n    <slot></slot>\n  </div>\n</template>\n\n<style></style>\n","<script setup lang=\"ts\">\nimport { ref, h } from \"vue\";\nimport { hasClass } from \"@zyzgroup/core-web\";\nimport Routes, { SupportedRouteEffect } from \"../base/Routes.vue\";\nimport Pop from \"../pop/Pop.vue\";\nimport Image from \"./Image.vue\";\nimport Pan from \"../base/Pan.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Image, Routes },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    urls: string[];\n    effect?: SupportedRouteEffect;\n  }>(),\n  {\n    urls: () => [],\n    effect: \"moveToLeft\"\n  }\n);\n\nconst emits = defineEmits<{\n  // (event: \"click\"): void;\n}>();\n\nconst currentIndex = ref(0);\nfunction routeChangeEnd(fromPageIndex: number, toPageIndex: number) {\n  currentIndex.value = toPageIndex;\n}\n\nconst routesRef = ref();\n\nconst popOpen = () => {\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 panLeft = () => {\n  routesRef.value?.forward().catch((e) => {\n    // console.log(e);\n  });\n};\nconst panRight = () => {\n  routesRef.value?.back().catch((e) => {\n    // console.log(e);\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=\"full\"\n    @open=\"popOpen\"\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    <Pan\n      style=\"position: absolute; width: 100%; height: 100%; z-index: 97\"\n      @left=\"panLeft\"\n      @right=\"panRight\"\n    >\n      <Routes\n        ref=\"routesRef\"\n        :effect=\"props.effect\"\n        @routeChangeEnd=\"routeChangeEnd\"\n      />\n    </Pan>\n  </Pop>\n</template>\n","<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"flex\";\n    direction?: \"column\" | \"row\";\n  }>(),\n  {\n    type: \"flex\",\n    direction: \"column\"\n  }\n);\n\nconst style: Record<string, string> = {};\n\nfunction setStyle() {\n  switch (props.type) {\n    case \"flex\":\n    default:\n      style.display = \"flex\";\n      style.flexDirection = props.direction;\n      style.justifyContent = \"center\";\n      style.alignItems = \"center\";\n  }\n}\nsetStyle();\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"content-center\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { onDeactivated, onUnmounted, ref } from \"vue\";\nimport { searchToRecord } from \"@zyzgroup/core-common\";\nimport { mapState, context } from \"../../context/context\";\nimport { dialog, loading, popTel } from \"../../globalTeleport\";\nimport { pageShow$, routeChange$, useRouter } from \"../../hooks\";\nimport Page from \"../base/Page.vue\";\nimport Footer from \"./Footer.vue\";\nimport PlateDisplay from \"../plate/PlateDisplay.vue\";\nimport ImageView from \"../image/ImageView.vue\";\nimport ContentCenter from \"../layout/ContentCenter.vue\";\nimport IconArrowRight from \"../icon/IconArrowRight.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {\n    Page,\n    Footer,\n    PlateDisplay,\n    ImageView,\n    ContentCenter,\n    IconArrowRight\n  },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    lottag: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\n  \"bill.sn\",\n  \"bill.feeFormatted\",\n  \"park.tag\",\n  \"park.name\",\n  \"park.phone\",\n  \"park.feebookurl\",\n  \"lot.no\",\n  \"order.sn\",\n  \"order.fee\",\n  \"order.feeFormatted\",\n  \"order.starttimeFormatted\",\n  \"order.duringtimeFormatted\",\n  \"order.pics\",\n  \"plate.color\",\n  \"plate.plate\",\n  \"user.openid\",\n  \"color.primaryPattern\",\n  \"color.gradientPattern\",\n  \"color.fontSecondaryPattern\",\n  \"color.foregroundPattern\",\n  \"color.foregroundBorderPattern\",\n  \"color.fontPattern\",\n  \"color.redCommon\",\n  \"color.yellowCommon\"\n]);\n\nconst desc = ref<string[]>([]);\n\nfunction loadOrder(lottag) {\n  context.ds.immediately(loading);\n  context.axios\n    // .post(`/api/v6/lot/${lottag}/getwithorder6`, {\n    .post(`/api/v6/lot/${lottag}/genbill`, {\n      openid: mappedState[\"user.openid\"].value,\n      paytype: \"U\"\n    })\n    .catch((result) => {\n      // context.ds.closeLast()\n      // context.store.dispatch({\n      //   type: \"SET_RESULT\",\n      //   payload: {\n      //     status: \"error\",\n      //     title: result.data.error || JSON.stringify(result.data)\n      //   }\n      // });\n      context.ds.immediately(dialog, {\n        title: \"接口出错\",\n        content: result.data.error,\n        confirmText: \"知道了\",\n        mode: \"mini\",\n        onClose: () => {}\n      });\n      return result;\n    })\n    .then((result) => {\n      context.ds.closeLast();\n      context.store.dispatch({\n        type: \"SET_PARK\",\n        payload: result.data.pk || {}\n      });\n      context.store.dispatch({\n        type: \"SET_LOT\",\n        payload: result.data.pl || {}\n      });\n      context.store.dispatch({\n        type: \"SET_BILL\",\n        payload: result.data.bill || {}\n      });\n      context.store.dispatch({\n        type: \"SET_ORDER\",\n        payload: {\n          ...result.data.uo,\n          pics: result.data.pics\n        }\n      });\n      context.store.dispatch({\n        type: \"SET_PLATE\",\n        payload: result.data.uo || {}\n      });\n      context.store.dispatch({\n        type: \"SET_GROUP\",\n        payload: result.data.grp || {}\n      });\n      desc.value = result.data.sdesc || [];\n    });\n}\n\nconst router = useRouter();\n\nconst token = ref(\"\");\n\nconst rs$ = pageShow$(\"lot\").subscribe(() => {\n  // console.log(\"** show **\");\n  // 监听到当前页面显示\n  // 对应二维码 https://tstxg.ruolin-link.com/l?n=2175\n  // 本地链接   http://192.168.1.30/l.html?n=2175  http://127.0.0.1/l.html?n=739#/\n  // 测试服链接 https://test.xinge.me/l.html?n=2175\n  // 正式服链接 https://xinge.ruolin-link.com/xg/l?n=2175\n  const records = searchToRecord();\n  const lottag = records.n || props.lottag;\n  if (!lottag) {\n    context.ds.immediately(dialog, {\n      title: \"扫码失败\",\n      content: `lottag=${lottag} 不符规则，请重扫或联系客服：400-158-8363`,\n      confirmText: \"知道了\",\n      mode: \"mini\"\n    });\n  } else {\n    loadOrder(lottag);\n  }\n  const tokenLocal = context.static.token.get();\n  if (tokenLocal) {\n    token.value = tokenLocal;\n    context.store.dispatch({\n      type: \"SET_USER\",\n      payload: { token: tokenLocal }\n    });\n  }\n});\n\nfunction destroy() {\n  rs$.unsubscribe();\n}\nonDeactivated(() => {\n  destroy();\n});\n\nfunction viewDocument() {\n  const url = mappedState[\"park.feebookurl\"].value;\n  if (!url) {\n    return;\n  }\n  router.push({\n    name: \"view-document\",\n    params: {\n      title: \"收费标准\",\n      src: encodeURIComponent(url)\n    }\n  });\n}\n\nconst imageViewEl = ref();\nfunction viewPhotos() {\n  const pics = mappedState[\"order.pics\"].value;\n  if (!pics.length) {\n    return;\n  }\n  imageViewEl.value?.open();\n}\n</script>\n\n<template>\n  <Page\n    v-if=\"mappedState['lot.no'].value\"\n    class=\"lot\"\n  >\n    <div\n      class=\"lot-main-bg\"\n      :style=\"{\n        background: `linear-gradient(180deg, ${mappedState['color.primaryPattern'].value} 0%, ${mappedState['color.gradientPattern'].value} 100%)`\n      }\"\n    ></div>\n    <div\n      class=\"lot-main\"\n      :style=\"{ color: `${mappedState['color.foregroundPattern'].value}` }\"\n    >\n      <div>{{ mappedState[\"park.name\"].value }}</div>\n      <div>\n        <div\n          :style=\"{\n            background: `linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, ${mappedState['color.foregroundPattern'].value} 100%)`\n          }\"\n        ></div>\n        <div>编号</div>\n        <div\n          :style=\"{\n            background: `linear-gradient(90deg,  ${mappedState['color.foregroundPattern'].value} 0%, rgba(255, 255, 255, 0) 100%)`\n          }\"\n        ></div>\n      </div>\n      <div>\n        <span>{{ mappedState[\"park.tag\"].value }}</span>\n        <span>{{ mappedState[\"lot.no\"].value }}</span>\n      </div>\n      <div>\n        <!-- <div class=\"disabled\">停车场主页</div>\n        <div class=\"disabled\">更换附近车位</div> -->\n        <div\n          :class=\"mappedState['park.feebookurl'].value ? '' : 'disabled'\"\n          @click=\"viewDocument\"\n        >\n          收费标准\n        </div>\n      </div>\n      <div\n        v-if=\"!mappedState['bill.sn'].value\"\n        class=\"error-info\"\n        :style=\"{\n          background: `${mappedState['color.foregroundPattern'].value}`,\n          color: `${mappedState['color.fontPattern'].value}`\n        }\"\n      >\n        <div v-for=\"item in desc\">{{ item }}</div>\n      </div>\n      <div\n        v-else\n        class=\"lot-detail\"\n        :style=\"{\n          background: `${mappedState['color.foregroundPattern'].value}`,\n          color: `${mappedState['color.fontPattern'].value}`\n        }\"\n      >\n        <div\n          :style=\"{\n            borderBottom: `1px solid ${mappedState['color.foregroundBorderPattern'].value}`\n          }\"\n        >\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            待支付\n          </div>\n          <div\n            :style=\"{\n              color: `${mappedState['color.redCommon'].value}`\n            }\"\n          >\n            ￥{{ mappedState[\"bill.feeFormatted\"].value }}\n          </div>\n        </div>\n        <div v-if=\"mappedState['order.fee'].value\">\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            已支付\n          </div>\n          <div>￥{{ mappedState[\"order.feeFormatted\"].value }}</div>\n        </div>\n        <div>\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            订单编号\n          </div>\n          <div>{{ mappedState[\"order.sn\"].value || \"-\" }}</div>\n        </div>\n        <div>\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            开始时间\n          </div>\n          <div>{{ mappedState[\"order.starttimeFormatted\"].value || \"-\" }}</div>\n        </div>\n        <div>\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            停车时长\n          </div>\n          <div>{{ mappedState[\"order.duringtimeFormatted\"].value || \"-\" }}</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\n          v-if=\"\n            mappedState['plate.plate'].value ||\n            mappedState['order.pics'].value.length\n          \"\n          :style=\"{\n            borderTop: `1px solid ${mappedState['color.foregroundBorderPattern'].value}`\n          }\"\n        ></div>\n        <div v-if=\"mappedState['plate.plate'].value\">\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            车牌号\n          </div>\n          <div class=\"bold\">\n            <PlateDisplay\n              :plate=\"mappedState['plate.plate'].value\"\n              :plate-color=\"mappedState['plate.color'].value\"\n              font-weight=\"bold\"\n            ></PlateDisplay>\n          </div>\n        </div>\n        <div v-if=\"mappedState['order.pics'].value.length\">\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            现场照片\n          </div>\n          <div\n            class=\"blue\"\n            @click=\"viewPhotos\"\n          >\n            查看\n          </div>\n        </div>\n      </div>\n      <div\n        class=\"lot-actions\"\n        :style=\"{\n          background: `${mappedState['color.foregroundPattern'].value}`,\n          color: `${mappedState['color.primaryPattern'].value}`\n        }\"\n      >\n        <ContentCenter\n          v-if=\"!token\"\n          direction=\"row\"\n          class=\"lot-action-login\"\n          :style=\"{\n            background: `${mappedState['color.yellowCommon'].value}`,\n            color: `${mappedState['color.foregroundPattern'].value}`\n          }\"\n          @click=\"() => router.push('/login')\"\n        >\n          <div>立即登录</div>\n          <div style=\"width: 14px\">\n            <IconArrowRight\n              :color=\"mappedState['color.foregroundPattern'].value\"\n            ></IconArrowRight>\n          </div>\n        </ContentCenter>\n        <div\n          class=\"lot-action\"\n          @click=\"\n            () =>\n              popTel(mappedState['park.phone'].value || context.static.hotline)\n          \"\n        >\n          联系客服\n        </div>\n      </div>\n    </div>\n    <template #footer>\n      <Footer\n        v-if=\"mappedState['bill.sn'].value\"\n        :billsn=\"mappedState['bill.sn'].value\"\n        @reloadOrder=\"() => loadOrder(lottag)\"\n      ></Footer>\n    </template>\n    <template #global>\n      <ImageView\n        ref=\"imageViewEl\"\n        :urls=\"mappedState['order.pics'].value\"\n      ></ImageView>\n    </template>\n  </Page>\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}\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  padding: 0 var(--yz-padding-horizontal);\n  margin-bottom: var(--yz-padding-horizontal);\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}\n.lot-main > div:nth-child(2) > div:nth-child(3) {\n  width: 2.4rem;\n  height: 0.04rem;\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-number\";\n  font-weight: bold;\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  cursor: pointer;\n}\n.lot-main > div:nth-child(4) > div.disabled {\n  opacity: var(--yz-disabled-alpha);\n}\n.lot-main > div:nth-child(4) > div + div {\n  border-left: 1px solid rgba(255, 255, 255, var(--yz-disabled-alpha));\n}\n.error-info {\n  min-height: 3.8rem;\n  padding: 0.4rem 0.3rem;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  position: relative;\n  box-shadow: 0 0.04rem 0.1rem rgba(0, 0, 0, 0.1);\n  border-radius: 0.08rem;\n  font-size: 14px;\n  line-height: 19px;\n  word-break: break-all;\n  text-align: center;\n}\n.error-info > div:nth-child(1) {\n  font-size: 16px;\n  line-height: 24px;\n  font-weight: bold;\n}\n.error-info > div + div {\n  margin-top: 0.14rem;\n}\n.lot-detail {\n  position: relative;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  border-radius: 4px;\n  padding: 0 var(--yz-padding-horizontal) 5px;\n  font-size: 14px;\n  line-height: 20px;\n}\n.lot-detail > div {\n  margin: var(--yz-padding-vertical) auto;\n  display: flex;\n  justify-content: space-between;\n}\n.lot-detail > div:nth-child(1) {\n  line-height: 44px;\n  margin: 0 0 var(--yz-padding-vertical);\n  font-weight: bold;\n}\n.lot-detail > div:nth-child(1) > div:nth-child(2) {\n  font-size: 20px;\n}\n.lot-detail > div > div:nth-child(1) {\n  flex: 0 0 auto;\n  padding-right: 10px;\n}\n.lot-detail > div > div:nth-child(2).blue {\n  color: var(--yz-xg-blue);\n  cursor: pointer;\n}\n.lot-actions {\n  margin: 10px 0;\n  box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);\n  border-radius: 4px;\n  display: flex;\n  align-items: center;\n  font-size: 14px;\n  position: relative;\n}\n.lot-actions > .lot-action {\n  flex: 1;\n  line-height: 44px;\n  position: relative;\n  cursor: pointer;\n  text-align: center;\n  font-weight: 700;\n}\n.lot-actions > .lot-action-login {\n  position: absolute;\n  left: 0;\n  top: 50%;\n  transform: translate(0, -50%);\n  padding: 8px 8px;\n  border-radius: 0 100px 100px 0;\n  z-index: 2;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"flex\";\n  }>(),\n  {\n    type: \"flex\"\n  }\n);\n\nconst style: Record<string, string> = {};\n\nfunction setStyle() {\n  switch (props.type) {\n    case \"flex\":\n    default:\n      style.display = \"flex\";\n      style.flexDirection = \"column\";\n      style.justifyContent = \"flex-start\";\n      style.alignItems = \"center\";\n  }\n}\nsetStyle();\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"content-top-center\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.primaryPattern\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.primaryPattern\"].value;\n});\n</script>\n\n<template>\n  <!-- 不设置 width=\"24\" height=\"24\" 自适应父元素 -->\n  <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 24 24\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    preserveAspectRatio=\"none\"\n    fill=\"none\"\n    :style=\"{\n      display: 'block',\n      transformOrigin: 'center'\n    }\"\n  >\n    <path\n      d=\"M15.4547 11.0552C15.4547 11.395 15.6848 11.6249 16.0249 11.6249C16.365 11.6249 16.5951 11.395 16.5951 11.0552C16.5951 9.18643 15.0746 7.66741 13.2039 7.66741C12.8637 7.66741 12.6337 7.89726 12.6337 8.23704C12.6337 8.57682 12.8637 8.80667 13.2039 8.80667C14.4543 8.81667 15.4547 9.846 15.4547 11.0552ZM17.7356 11.0552C17.7356 11.395 17.9656 11.6249 18.3058 11.6249C18.6459 11.6249 18.876 11.395 18.876 11.0552C18.876 7.97721 16.355 5.41885 13.2339 5.41885C12.8938 5.42885 12.6637 5.6587 12.6637 5.99848C12.6637 6.33826 12.8938 6.56811 13.2339 6.56811C15.6748 6.56811 17.7356 8.58681 17.7356 11.0552ZM10.1127 9.0765C10.7229 8.46689 10.803 7.5175 10.2228 6.82795L8.4721 4.62936C7.90189 3.90982 6.83149 3.7899 6.11122 4.35953C6.07121 4.43948 5.99118 4.43948 5.99118 4.47946L4.47061 5.99848C3.02007 7.44755 5.08084 11.405 8.85224 15.1726C12.6237 18.9402 16.5151 20.9589 17.9656 19.5498L19.4862 18.0307C20.1765 17.3412 20.1765 16.2819 19.4862 15.6723L19.3762 15.5623L17.1653 13.8134C16.4751 13.2438 15.5247 13.3138 14.9145 13.9234L13.9642 14.8728C12.9338 14.2632 12.0534 13.5836 11.2531 12.7841C10.4929 12.0146 9.84261 11.1352 9.19237 10.1058L10.1127 9.0765ZM9.31242 7.59745C9.46247 7.8273 9.46247 8.16708 9.2724 8.31699L8.01193 9.61615C7.82186 9.80603 7.78184 10.0659 7.90189 10.2957C8.55213 11.5149 9.39245 12.6142 10.3828 13.6036C11.3732 14.5929 12.4836 15.4324 13.7041 16.082C13.9341 16.1919 14.2042 16.1619 14.3943 15.9721L15.6948 14.6829C15.9249 14.453 16.195 14.453 16.4151 14.6429L18.6259 16.4318C18.6259 16.4318 18.6659 16.4318 18.6659 16.4717C18.896 16.6616 18.896 17.0014 18.7059 17.2313L17.1453 18.7902C16.4251 19.5098 12.9138 17.651 9.59252 14.4131C6.30129 11.1352 4.47061 7.59745 5.23089 6.83794L6.79147 5.27894C7.02156 5.12904 7.4017 5.12904 7.59177 5.38887L9.31242 7.59745Z\"\n      :fill=\"color\"\n    />\n  </svg>\n</template>\n","<script lang=\"tsx\" setup>\nimport { mapState } from \"../../context/context\";\nimport { popTel } from \"../../globalTeleport\";\nimport ContentCenter from \"../layout/ContentCenter.vue\";\nimport IconPhone from \"../icon/IconPhone.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { ContentCenter, IconPhone },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    phone: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.fontTertiaryReverse\"]);\n</script>\n\n<template>\n  <ContentCenter\n    class=\"call-phone\"\n    direction=\"row\"\n    :style=\"{\n      color: mappedState['color.fontTertiaryReverse'].value\n    }\"\n    @click=\"() => popTel(props.phone)\"\n  >\n    <div>\n      <IconPhone></IconPhone>\n    </div>\n    <div>致电客服</div>\n  </ContentCenter>\n</template>\n\n<style scoped>\n.call-phone {\n  cursor: pointer;\n}\n.call-phone > div:nth-child(1) {\n  width: 24px;\n  margin-right: var(--yz-gap-horizontal, 5px);\n}\n.call-phone > div:nth-child(2) {\n  font-size: var(--yz-font-size-secondary, 14px);\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { Status, mapState, context } from \"../../context/context\";\nimport Page from \"../base/Page.vue\";\nimport ContentTopCenter from \"../layout/ContentTopCenter.vue\";\nimport IconStatus from \"../icon/IconStatus.vue\";\nimport CallPhone from \"../widget/CallPhone.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page, ContentTopCenter, IconStatus, CallPhone },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    status?: Status;\n    title?: string;\n    subtitle?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\n  \"result.status\",\n  \"result.title\",\n  \"result.subtitle\",\n  \"park.phone\",\n  \"color.fontPattern\",\n  \"color.fontTertiaryPattern\"\n]);\n\nconst status = props.status || mappedState[\"result.status\"].value;\nconst title = props.title || mappedState[\"result.title\"].value;\nconst subtitle = props.subtitle || mappedState[\"result.subtitle\"].value;\n</script>\n\n<template>\n  <Page class=\"result\">\n    <ContentTopCenter class=\"result-content\">\n      <div class=\"result-img\">\n        <IconStatus\n          :status=\"status\"\n          mode=\"fullfill\"\n        ></IconStatus>\n      </div>\n      <div\n        v-if=\"title\"\n        class=\"result-title\"\n        :style=\"{\n          color: mappedState['color.fontPattern'].value\n        }\"\n      >\n        {{ title }}\n      </div>\n      <div\n        v-if=\"subtitle\"\n        class=\"result-subtitle\"\n        :style=\"{\n          color: mappedState['color.fontTertiaryPattern'].value\n        }\"\n      >\n        {{ subtitle }}\n      </div>\n    </ContentTopCenter>\n\n    <template #footer>\n      <CallPhone\n        class=\"result-bottom\"\n        :phone=\"mappedState['park.phone'].value || context.static.hotline\"\n      ></CallPhone>\n    </template>\n  </Page>\n</template>\n\n<style scoped>\n.result-content {\n  padding: 40px var(--yz-padding-horizontal, 15px) 0;\n}\n.result-img {\n  width: 64px;\n}\n.result-title {\n  font-size: 20px;\n  margin-top: 16px;\n  font-weight: bold;\n  text-align: center;\n}\n.result-subtitle {\n  font-size: 14px;\n  margin-top: 7px;\n  text-align: center;\n}\n.result-bottom {\n  padding-bottom: var(--yz-padding-vertical-double, 20px);\n}\n</style>\n","<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"flex\" | \"grid\" | \"transform\" | \"table\";\n  }>(),\n  {\n    type: \"flex\"\n  }\n);\n\nconst parentStyle: Record<string, string> = {\n  display: \"block\",\n  width: \"100%\",\n  height: \"100%\",\n  position: \"relative\"\n};\nconst childStyle: Record<string, string> = {};\n\nfunction setStyle() {\n  switch (props.type) {\n    case \"table\":\n      parentStyle.display = \"table\";\n      childStyle.display = \"table-cell\";\n      childStyle.verticalAlign = \"middle\";\n      childStyle.textAlign = \"center\";\n      break;\n    case \"transform\":\n      childStyle.position = \"absolute\";\n      childStyle.top = \"50%\";\n      childStyle.left = \"50%\";\n      childStyle.transform = \"translate(-50%, -50%)\";\n      break;\n    case \"grid\":\n      parentStyle.display = \"grid\";\n      parentStyle.justifyContent = \"center\";\n      parentStyle.alignItems = \"center\";\n      break;\n    case \"flex\":\n    default:\n      parentStyle.display = \"flex\";\n      parentStyle.justifyContent = \"center\";\n      parentStyle.alignItems = \"center\";\n  }\n}\nsetStyle();\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"layout-center\"\n    :style=\"parentStyle\"\n  >\n    <div :style=\"childStyle\">\n      <slot></slot>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { mapState, context } from \"../../context/context\";\nimport Page from \"../base/Page.vue\";\nimport LayoutCenter from \"../layout/LayoutCenter.vue\";\nimport ContentCenter from \"../layout/ContentCenter.vue\";\nimport CallPhone from \"../widget/CallPhone.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page, LayoutCenter, ContentCenter, CallPhone },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(defineProps<{}>(), {});\n\nconst mappedState = mapState([\n  \"park.phone\",\n  \"color.fontPattern\",\n  \"color.fontTertiaryPattern\"\n]);\n\n// const robot = `${import.meta.env.YZ_IMAGE_PATH}/lb-robot.png`;\n// const robotAnimate = `${import.meta.env.YZ_IMAGE_PATH}/lb-robot-animate.gif`;\nconst robot = `/public/images/xg/lb-robot.png`;\nconst robotAnimate = `/public/images/xg/lb-robot-animate.gif`;\n</script>\n\n<template>\n  <Page class=\"unlocking\">\n    <LayoutCenter>\n      <ContentCenter style=\"padding: var(--yz-padding-horizontal, 15px)\">\n        <div class=\"unlocking-img\">\n          <img :src=\"robot\" />\n          <img :src=\"robotAnimate\" />\n        </div>\n        <div\n          class=\"unlocking-text\"\n          :style=\"{\n            color: mappedState['color.fontPattern'].value\n          }\"\n        >\n          车底翻板正在降下，请耐心等待...\n        </div>\n      </ContentCenter>\n    </LayoutCenter>\n    <CallPhone\n      class=\"unlocking-bottom\"\n      :phone=\"mappedState['park.phone'].value || context.static.hotline\"\n    ></CallPhone>\n  </Page>\n</template>\n\n<style scoped>\n.unlocking-img {\n  position: relative;\n}\n.unlocking-img > img:nth-child(1) {\n  width: 4rem;\n  height: 1.82rem;\n}\n.unlocking-img > img:nth-child(2) {\n  position: absolute;\n  top: -0.5rem;\n  right: 0;\n  width: 1.86rem;\n  height: 1.94rem;\n}\n.unlocking-text {\n  font-size: var(--yz-font-size, 16px);\n  margin-top: 17px;\n  font-weight: bold;\n  text-align: center;\n}\n.unlocking-bottom {\n  position: absolute;\n  z-index: 2;\n  bottom: var(--yz-padding-vertical-double, 20px);\n  width: 100%;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\nimport {\n  createCommonPhoneValidator,\n  createCommonLengthValidator\n} from \"@zyzgroup/core-common\";\nimport { context } from \"../../context/context\";\nimport { loading, toast } from \"../../globalTeleport\";\nimport { useRouter } from \"../../hooks/useVueRouter\";\nimport Page from \"../base/Page.vue\";\nimport Input from \"../form/Input.vue\";\nimport Button from \"../form/Button.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page, Input, Button },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(defineProps<{}>(), {});\n\nconst router = useRouter();\n\nconst disabledCaptcha = ref(true);\nconst disabledLogin = ref(true);\n\nconst commonPhoneValidator = createCommonPhoneValidator({\n  emptyError: \"请输入手机号\",\n  error: \"请输入正确的手机号\"\n});\nconst commonLengthValidator = createCommonLengthValidator(4, {\n  emptyError: \"请输入验证码\",\n  error: \"验证码必须为4位数\"\n});\n\nlet phone = \"\";\nfunction inputPhone(v) {\n  phone = v;\n  checkBtnStatus();\n}\n\nlet captcha = \"\";\nfunction inputCaptcha(v) {\n  captcha = v;\n  checkBtnStatus();\n}\n\nfunction checkBtnStatus() {\n  disabledCaptcha.value = !!captchaInterval || !phone;\n  disabledLogin.value = !phone || !captcha;\n}\n\nconst captchaText = ref(\"获取验证码\");\nlet captchaInterval;\n\nasync function clickCaptcha() {\n  if (captchaInterval) {\n    return;\n  }\n  disabledCaptcha.value = true;\n  context.ds.immediately(loading);\n  context.axios\n    .post(\"/api/v2/auth/genValidSN\", { mobileno: phone })\n    .then((result) => {\n      context.ds.closeLast();\n      let count = 60;\n      captchaText.value = `${count}秒后可重发`;\n      captchaInterval = setInterval(() => {\n        count--;\n        captchaText.value = `${count}秒后可重发`;\n        if (count == 0) {\n          clearInterval(captchaInterval);\n          captchaInterval = undefined;\n          captchaText.value = `获取验证码`;\n          checkBtnStatus();\n        }\n      }, 1000);\n    })\n    .catch((result) => {\n      context.ds.immediately(toast, {\n        status: \"error\",\n        content: result.data.error || JSON.stringify(result.data),\n        onClose: () => {\n          checkBtnStatus();\n        }\n      });\n    });\n}\n\nfunction clickLogin() {\n  context.ds.immediately(loading);\n  context.axios\n    .post(\"/api/v2/auth/quickLogin\", {\n      mobileno: phone,\n      validsn: captcha,\n      ufrom: \"h5\"\n    })\n    .then((result) => {\n      const token = result.data.r.token;\n      context.static.token.set(token);\n      context.store.dispatch({\n        type: \"SET_USER\",\n        payload: result.data.r || {}\n      });\n      context.ds.immediately(toast, {\n        status: \"success\",\n        content: \"登录成功\",\n        onClose: () => {\n          router.back();\n        }\n      });\n    })\n    .catch((result) => {\n      context.ds.immediately(toast, {\n        status: \"error\",\n        content: result.data.error || JSON.stringify(result.data),\n        onClose: () => {\n          checkBtnStatus();\n        }\n      });\n    });\n}\n</script>\n\n<template>\n  <Page class=\"login-in-phone\">\n    <div class=\"title\">手机验证码登录</div>\n    <div class=\"phone\">\n      <Input\n        placeholderType=\"underline\"\n        placeholder=\"请输入手机号\"\n        :showError=\"true\"\n        :validator=\"commonPhoneValidator\"\n        @input=\"inputPhone\"\n      ></Input>\n    </div>\n    <div class=\"captcha\">\n      <Input\n        placeholderType=\"underline\"\n        placeholder=\"请输入验证码\"\n        :showError=\"true\"\n        :validator=\"commonLengthValidator\"\n        @input=\"inputCaptcha\"\n      >\n        <Button\n          mode=\"transparent\"\n          :disabled=\"disabledCaptcha\"\n          @throttled-click=\"clickCaptcha\"\n        >\n          {{ captchaText }}\n        </Button>\n      </Input>\n    </div>\n    <div class=\"btn\">\n      <Button\n        mode=\"primary\"\n        :capsule=\"true\"\n        width=\"100%\"\n        :disabled=\"disabledLogin\"\n        @throttled-click=\"clickLogin\"\n      >\n        登录\n      </Button>\n    </div>\n  </Page>\n</template>\n\n<style scoped>\n.login-in-phone {\n  padding: 0.76rem 0.6rem 0.6rem;\n}\n.login-in-phone .title {\n  font-size: 20px;\n  font-weight: bold;\n}\n.login-in-phone .phone {\n  margin-top: 0.3rem;\n}\n.login-in-phone .captcha {\n  margin-top: 0.3rem;\n}\n.login-in-phone .btn {\n  margin-top: 0.6rem;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { throttle } from \"@zyzgroup/core-common\";\nimport CSSAnimation from \"./CSSAnimation.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { CSSAnimation },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    isRefreshing?: boolean;\n    isLoading?: boolean;\n    isNoMore?: boolean;\n  }>(),\n  {\n    isRefreshing: false, // 父组件正在响应：下拉刷新\n    isLoading: false, // 父组件正在响应：上拉加载\n    isNoMore: false // 没有更多了\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"refreshing\"): void; // 顶部下拉刷新\n  (event: \"loading\"): void; // 底部上拉加载\n}>();\n\nconst el = ref();\n\n// const scroll = throttle(() => {\nconst scroll = () => {\n  const container = el.value;\n  if (!container) {\n    return;\n  }\n  const scrollTop = container.scrollTop;\n  const scrollHeight = container.scrollHeight;\n  const clientHeight = container.clientHeight;\n  // 顶部下拉刷新\n  if (scrollTop <= 0 && !props.isRefreshing && !props.isLoading) {\n    emits(\"refreshing\");\n    return;\n  }\n  // 底部上拉加载\n  if (props.isNoMore) {\n    return;\n  }\n  if (\n    scrollTop + clientHeight >= scrollHeight &&\n    !props.isRefreshing &&\n    !props.isLoading\n  ) {\n    emits(\"loading\");\n    return;\n  }\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    ref=\"el\"\n    class=\"list\"\n    @scroll=\"scroll\"\n  >\n    <!-- 顶部下拉刷新 -->\n    <div\n      v-if=\"props.isRefreshing\"\n      class=\"list-refreshing\"\n    >\n      <div class=\"list-loader\"></div>\n    </div>\n\n    <!-- 真正内容 -->\n    <slot></slot>\n\n    <!-- 底部上拉加载 -->\n    <div\n      v-if=\"props.isLoading\"\n      class=\"list-loading\"\n    >\n      <div class=\"list-loader\"></div>\n    </div>\n\n    <!-- 没有更多了 -->\n    <div\n      v-if=\"props.isNoMore\"\n      class=\"list-loading\"\n    >\n      没有更多了\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.list {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  overflow-y: scroll;\n}\n.list-refreshing,\n.list-loading {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  font-size: var(--yz-font-size-secondary, 14px);\n  color: #cccccc;\n  padding: 10px 0;\n}\n.list-loader {\n  width: 20px;\n  height: 20px;\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n  background-position: 50%;\n  background-size: 100%;\n  background-repeat: no-repeat;\n  animation: loader-spin 1s steps(12, end) infinite;\n}\n@keyframes loader-spin {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { reactive, ref } from \"vue\";\nimport Page from \"../base/Page.vue\";\nimport List from \"../base/List.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page, List },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(defineProps<{}>(), {});\n\nconst emits = defineEmits<{}>();\n\nlet items = reactive(Array.from({ length: 20 }, (_, i) => i + 1));\n\nlet isRefreshing = ref(false);\nlet isLoading = ref(false);\nlet isNoMore = ref(false);\nasync function refreshing() {\n  console.log(\"refreshing\");\n  isRefreshing.value = true;\n  // 模拟网络请求\n  await new Promise((resolve) => setTimeout(resolve, 2000));\n  // 刷新完成后\n  items = Array.from({ length: 20 }, (_, i) => i + 1); // 假设重新加载数据\n  isRefreshing.value = false;\n  isNoMore.value = false;\n}\n\nlet index = 0;\nasync function loading() {\n  console.log(\"loading\");\n  isLoading.value = true;\n  // 模拟网络请求\n  await new Promise((resolve) => setTimeout(resolve, 2000));\n  // 加载更多数据\n  items.push(...Array.from({ length: 10 }, (_, i) => i + items.length + 1));\n  isLoading.value = false;\n  isNoMore.value = ++index >= 2;\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <Page class=\"list\">\n    <List\n      :isRefreshing=\"isRefreshing\"\n      :isLoading=\"isLoading\"\n      :isNoMore=\"isNoMore\"\n      @refreshing=\"refreshing\"\n      @loading=\"loading\"\n    >\n      <div\n        v-for=\"i in items\"\n        :key=\"i\"\n        class=\"item\"\n      >\n        Item {{ i }}\n      </div>\n    </List>\n  </Page>\n</template>\n\n<style scoped>\n.item {\n  padding: 15px 0;\n  margin-bottom: 2px;\n  background-color: pink;\n}\n</style>\n","<script setup lang=\"ts\">\nimport Button from \"../components/form/Button.vue\";\n\nimport { useRouter } from \"../hooks\";\nconst router = useRouter();\n\nfunction gotoShape() {\n  router.push(\"/shape\");\n}\n\nfunction gotoShowcase() {\n  router.push(\"/cs\");\n}\n\nfunction gotoXGLot() {\n  router.push(\"/lot?n=739\");\n}\n\nfunction gotoRxmarbles() {\n  router.push(\"/rx\");\n}\n\nfunction gotoList() {\n  router.push(\"/list\");\n}\n</script>\n<template>\n  <div>\n    <div class=\"gap\">\n      <Button @throttled-click=\"gotoShape\">Shape</Button>\n    </div>\n    <div class=\"gap\">\n      <Button @throttled-click=\"gotoShowcase\">Component ShowCase</Button>\n    </div>\n    <div class=\"gap\">\n      <Button @throttled-click=\"gotoXGLot\">XG lot</Button>\n    </div>\n    <div class=\"gap\">\n      <Button @throttled-click=\"gotoRxmarbles\">Rx Marbles</Button>\n    </div>\n    <div class=\"gap\">\n      <Button @throttled-click=\"gotoList\">List Demo</Button>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.gap {\n  padding: 10px;\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 \"../../vendors/stats/stats.js\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst el = ref();\n\nonMounted(() => {\n  const stats = new Stats();\n  stats.domElement.style.margin = \"1em\";\n  el.value.appendChild(stats.domElement);\n  requestAnimationFrameCycle(() => {\n    stats.update();\n    return true;\n  });\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div ref=\"el\"></div>\n</template>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref, watch } from \"vue\";\nimport { lerpMap, maxDotNumber, stepMap } from \"@zyzgroup/core-common\";\nimport { getCSSVar, injectStyle } 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    min?: number;\n    max?: number;\n    step?: number;\n    defaultValue?: number;\n    unit?: string;\n    showValue?: boolean;\n    autofocus?: boolean;\n    color?: string;\n    barColor?: string;\n    handleSize?: number;\n    barHeight?: number;\n  }>(),\n  {\n    min: 0,\n    max: 100,\n    step: 1,\n    defaultValue: 0,\n    unit: \"\",\n    showValue: true,\n    autofocus: false,\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\"),\n    barColor: \"#f5f5f5\",\n    handleSize: 20,\n    barHeight: 4\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", value: number): void;\n}>();\n\nconst getStep = stepMap(props.min, props.max, props.step);\nconst getPercent = lerpMap(props.min, props.max, 0, 100);\n\nconst value = ref(getStep(props.defaultValue));\nconst percent = ref(maxDotNumber(getPercent(value.value), 2));\n\nfunction change(e: Event) {\n  value.value = getStep(parseFloat((e.target as HTMLInputElement).value));\n  percent.value = maxDotNumber(getPercent(value.value), 2);\n  emits(\"change\", value.value);\n}\n\nconst r = ref();\nwatch(r, () => {\n  if (!r.value) {\n    return;\n  }\n  /// for ce\n  injectStyle(\n    `\n  :root {\n    --input-range-color: ${props.color};\n    --input-range-thumb-size: ${props.handleSize}px;\n    --input-range-thumb-top: ${(props.handleSize - props.barHeight) * -0.5}px;\n    --input-range-track-size: ${props.barHeight}px;\n  }\n  :host {\n    --input-range-color: ${props.color};\n    --input-range-thumb-size: ${props.handleSize}px;\n    --input-range-thumb-top: ${(props.handleSize - props.barHeight) * -0.5}px;\n    --input-range-track-size: ${props.barHeight}px;\n  }\n`,\n    r.value\n  );\n});\n\nonUnmounted(() => {});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"input-range\"\n    ref=\"r\"\n    :style=\"{ height: props.handleSize + 'px' }\"\n  >\n    <input\n      type=\"range\"\n      :max=\"props.max\"\n      :min=\"props.min\"\n      :step=\"props.step\"\n      :value=\"value\"\n      :autofocus=\"props.autofocus\"\n      @input=\"change\"\n      :style=\"{\n        background: `linear-gradient(to right, ${props.color} 0%, ${props.color} ${percent}%, ${props.barColor} ${percent}%, ${props.barColor})`\n      }\"\n    />\n    <!-- <slot :value=\"value\">\n      <label\n        class=\"label\"\n        v-if=\"showValue\"\n      >\n        {{ value }}{{ props.unit }}\n      </label>\n    </slot> -->\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n-->\n<style scoped>\n.input-range {\n  position: relative;\n  box-sizing: border-box;\n  font-size: 1em;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%;\n  overflow: hidden;\n}\n.label {\n  min-width: 3em;\n  text-align: right;\n}\ninput[type=\"range\"] {\n  flex: 1 1 auto;\n  -webkit-appearance: none;\n  appearance: none;\n  border-radius: 9999px;\n  margin: 0;\n  padding: 0;\n  position: relative;\n}\ninput[type=\"range\"]:focus {\n  outline: none;\n}\n/*\ninput[type=\"range\"]::-webkit-slider-container {\n  overflow: hidden;\n}\n*/\ninput[type=\"range\"]::-webkit-slider-runnable-track {\n  height: var(--input-range-track-size);\n  border-radius: 9999px;\n}\ninput[type=\"range\"]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  appearance: none;\n  height: var(--input-range-thumb-size);\n  width: var(--input-range-thumb-size);\n  margin-top: var(--input-range-thumb-top);\n  background: var(--input-range-color);\n  border-radius: 50%;\n  cursor: pointer;\n}\n</style>\n","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwMCIgaGVpZ2h0PSI4NTAiPgo8dGl0bGU+QmxhbmsgbWFwIG9mIENoaW5hIChwcm92aW5jZXMgb25seSk8L3RpdGxlPgo8ZGVmcz4KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJPCEtLSBGb3IgY29sb3VyaW5nIG9mIGluZGl2aWR1YWwgcHJvdmluY2VzLCBhcHBlbmQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCAgICNwPHByb3ZpbmNlPiB7ZmlsbDo8Y29sb3I+fSwgZm9yIGV4YW1wbGUgI3BIRSB7ZmlsbDojODA4MGZmfSAuIC0tPgoJPCEtLSBPcHRpb25zIGZvciBkaXNwdXRlZCBhcmVhcyBhcmUgI3BYSmQgYW5kICNwWFpkIGZvciBQUkMtY29udHJvbGxlZCBhcmVhcywgYW5kICNwVFcgZm9yIFRhaXdhbi4gLS0+CgoJLnByb3ZpbmNlIHtmaWxsOiNkM2QzZDN9CgkjcFhKZCwgI3BYWmQge2ZpbGw6I2U4ZThlOH0KCiAgPC9zdHlsZT4KPC9kZWZzPgogIDxnCiAgICAgaWQ9ImxheWVyMyIKCSBjbGFzcz0iZGlzcHV0ZWQiCgkgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGwtb3BhY2l0eToxO2ZpbGw6I2U4ZThlODtzdHJva2U6IzgwODA4MDtzdHJva2Utd2lkdGg6MC41Ij4KICAgIDxwYXRoCiAgICAgICBpZD0iQWtzYWlDaGluIgoJICAgc3R5bGU9ImZpbGw6I2U4ZThlODtmaWxsLW9wYWNpdHk6MSIKICAgICAgIGQ9Im03Ni4yMjQsNDUxLjYzIDAuNjMxLC0yLjcyIC0wLjI1MywtMC44OCAwLjMxNiwtMS4yNyAwLjYzMiwtMC4xOCAxLjMyNSwwLjUgMC41MDUsLTAuMTMgLTAuMTg5LC0xLjg5IDAuMzE2LC0wLjYzIC0wLjc1OCwtMS4yIC0wLjA2LC0yLjQ2IC0wLjUwNSwtMS4wMSAwLjc1NywtMC44MiAxLjI2MywtMC40NSAxLjY0MiwwLjg5IDAuOTQ3LC0wLjQ0IDEuMjYyLDAuMzEgMS4yLDAuMSAyLjc3OCwwLjg5IDAuNjk0LC0wLjYzIDEuNzA1LC0xLjI3IC0wLjEyNiwtMS4yNiAwLjM3OSwtMC41NyAwLjY5NCwwLjQ1IDAuMzE2LC0wLjc2IDAuMDYsLTMuMzUgMC4yNTIsLTAuODggMC44ODQsLTAuMzIgMS44MzEsMS4wMSAxLjMyNiwtMC41IC0wLjI1MywtMS42NCAwLjMxNiwtMC41NyAyLjA4NCwtMC4xOSAxLjA3MywtMS44MyAyLjk3MiwwLjYzIDAuNDQsLTAuMzggMS4yNiwtMi4yNyAxLjY0LC0xLjM5IDAuOTUsLTMuNzMgMC4xLC0xLjQ1IDIuMjcsLTEuNzcgMC40NSwtMC45NCAtMC4xOSwtMS40NiAwLjU2LC0xLjAxIDEuNzEsLTAuOTQgMC44MiwtMi4wOSAtMC42MywtMC40NCAtMS4wNywwLjEgLTAuOTUsLTEuMTkgLTAuNzYsLTAuMSAtMC45NSwxLjcxIC0xLjgzLDEuMDEgLTAuNzUsLTAuNTcgdi0yLjcyIGwtMC44OSwtMS44OSAtMS4yLDEuMDEgLTAuNjksLTAuMzIgLTAuMjUsLTEuNDUgLTEuODQsLTAuNjMgLTAuMzEsLTEuNyAtMC4zMTcsLTEuMTQgMC43NTcsLTAuNjkgLTAuMzIsLTAuODMgLTAuNjI3LC0wLjEyIC0wLjEyNiwtMC44MiAtMS41NzgsMC4xMiAtMC45NDcsLTAuNzUgMC40NDIsLTEuNTggLTAuNDQyLC0wLjcgLTEuNDUyLC0wLjU2IC0xLjU3OSwwLjMxIC0xLjAxLDAuMSAtMS4zODksLTAuNDQgLTMuNjYyLDAuNyAtMS4zODksLTEuMTQgLTEuMzg5LC0wLjM4IC0xLjEzNiwwLjI1IC0wLjgyMSwxLjI3IC0yLjk2NywwLjg4IC0xLjM4OSwtMC4xMyAtMS4yNjMsMC43IC0xLjMyNSwwLjEgLTEuMzg5LDEuMDcgLTEuMTM3LDAuMSAtMS4wMSwwLjY5IC0wLjQ0MiwxLjAxIC0wLjY5NCwtMC4xMiAtMS40NTMsLTAuOTUgaC0wLjYzMSBsLTAuNzU3LDAuODggaC0xLjY2NiBsMC40NTYsMC45NCAzLjEwNCwtMC4zMiAwLjU2OCwwLjY0IC0xLjcwNSwyLjk2IC0wLjU2OCwxLjc3IDEuMTM2LDQuMjMgMC4xMjcsMS41OCAtMC4xOSwyLjIxIDAuNjk1LDEuNTggMC4yNTIsMi41OSAtMC4yNTIsMS40NSAxLjAxLDIuMjcgMi4wMiwwLjg4IDMuMzQ2LDEuNDYgMS40NTIsMS44MyAwLjY5NSwxLjM5IDEuODk0LDEuMTMgMC43NTgsMS4zMyAtMC40NDIsMi40IC0xLjIsMS4wNyAtMy45NzcsMC42MyAtMC40NDIsMi4wOSAwLjEyNiwyLjA4IDAuMjUyLDIuMjEgLTAuMzE1LDEuNyAtMS4wMSwzLjY3IDAuOTQ3LDMuNzJ6Ii8+Cgk8ZyBpZD0icFRXIj4KCSAgPHBhdGgKCQkgaWQ9InBUV18xIgoJCSBkPSJtODgzLjI2LDcyMS40NyAyLjMzLC0wLjcxIDAuNTMsLTQuODIgLTEuMDcsLTQuNDcgMS4yNSwtNS44OSAzLjU3LC01LjcxIDEuOTcsLTYuNzkgMS4wNywtNi40MyAwLjcxLC0xOC4zOSAwLjcyLC01LjU0IDAuODksLTEuNDIgdi0zLjc1IGwtMS4yNSwtMS40MyAtMS4wNywtMi44NiAxLjc4LC0yLjg2IDAuNzIsLTEuNiAtMS4yNSwtMS40MyAtMy41NywtMC45IGgtMS42MSBsLTEuNzksLTIuMTQgaC0yLjUgbC0xLjI1LDEuOTcgMC41NCwyLjE0IC00LjI5LDEuNjEgLTMuMDMsMi41IC0xLjQzLDMuMjEgLTAuNTQsMy45MyAtMi4zMiwyLjUgLTEuNjEsNS44OSAtMS43OCw1LjE4IC0yLjY4LDYuMjUgLTEuNDMsNS4xOCAtMC41Myw1LjUzIDAuMzUsNS4xOCAxLjQzLDIuMzIgMi4xNCwzLjIyIDEuOTcsNS43MSAyLjUsMy40IDMuMDMsMS4yNSAyLjg2LDAuNzEgMi4zMiwzLjA0IDEuNDMsMy43NSB2Mi4xNHoiLz4KCSAgPHBhdGgKCQkgaWQ9InBUV18yIgoJCSBkPSJtODI2LjMsNjczLjI2IDEuOTYsMC4zNiAtMC44OSwxLjQzIGgtMS45NnoiLz4KCSAgPHBhdGgKCQkgaWQ9InBUV18zIgoJCSBkPSJtODAzLjgyLDc2MS4xNSAtMC42MywwLjg4IGgxLjUyIGwwLjUsLTAuNzV6Ii8+Cgk8L2c+Cgk8ZyBpZD0iS2FzaG1pciIgc3R5bGU9InN0cm9rZTpub25lIj4KCQk8cGF0aAoJCQlpZD0iS2FzaF8zMDIiCgkJCWQ9Im03Ny40OSw0NzEuODUgMS4xOTksLTAuMTkgMi4zMzYsLTEuMjYgMS41NDcsLTMuMDMgLTEuNTQ3LC01LjE4IDEuMTY4LC0yLjUyIC0wLjYsLTEuNzcgLTIuMTc4LC0wLjk1IC0wLjUzNywxLjQ1IC0wLjc4OSwwLjk4IC0wLjI4NCwwLjg5IDAuNTA1LDAuODUgMC44MjEsMC4zNSAwLjU2OCwxLjkyIC0wLjUzNiwxLjMgLTAuNjYzLDAuNDEgMC40NzMsMC45NyAwLjAzLDAuODkgLTAuNjYzLDEuNTEgMC4yNTIsMC44OSAtMC44ODMsMS4wN3oiLz4KCQk8cGF0aAoJCQlpZD0iS2FzaF8zMDQiCgkJCWQ9Im02Mi4wODgsNDc1LjgyIC0xLjI2MywwLjM4IDAuMDksMS43IDAuNzg5LC0wLjIyIDEuMjMxLDIuMDkgMS4zNTgsMi4yNyAwLjM3OCwxLjkyIDEuMDc0LC0xLjM1IC0wLjYyLC0xLjYgLTIuMDMyLC0yLjU0eiIvPgoJCTxwYXRoCgkJCWlkPSJLYXNoXzMwNiIKCQkJZD0ibTY0LjkyOSw0OTcuMjUgMC45MTUsMS44NyAwLjA2LDEuOCAwLjUzNiwxLjEgMi45NjcsMS4yMyBoMS4yOTUgbDEuMDQxLDAuMSAtMi4xNzgsLTcuMjkgLTEuNjczLC0wLjQ0IC0xLjg5NCwxLjMzeiIvPgoJCTxwYXRoCgkJCWlkPSJLYXNoXzMwOCIKCQkJZD0ibTg3LjYzMyw1MTUuNTkgLTEuMDEsLTEuNzcgLTEuNDUyLDAuMSAtMC45NzgsLTEuMSAtMC4xOSwxLjQ1IC0wLjA5LDAuOTQgMS4wNDIsMC40MSAwLjg4NCwxLjE3eiIvPgoJPC9nPgoJPHBhdGgKCQlpZD0iU291dGhUaWJldCIKCQlzdHlsZT0ic3Ryb2tlOm5vbmUiCgkJZD0ibTMwMC43Miw2MzUuMDkgMy44NCwwLjEzIDMuODgsLTAuNzEgMi45OSwtMC45OCAyLjczLDIuMDUgMy4zOSwwLjE0IDMuNDgsMC43NSAzLjQsLTAuNDQgMS42OSwwLjMxIDAuOTgsLTAuMjcgNC4yLC0wLjggMi4zNywtMC41OCAwLjc2LC0zLjM1IDMuMDgsLTIuODYgMi43MiwtMS42NSAyLjg2LC0zLjA4IDQuMDEsLTAuNzYgNi44MywtMS4zOCAzLC0xLjg4IDIuNSwtMC42MiAyLjA5LC0xLjI1IDIuMSwtMC44MSAxLjI1LC0zLjQ4IDExLjQzLC0zLjUyIDAuNjMsMS4zOCAxLjY1LDEuMDcgaDIuNzcgbDEuNzQsLTAuNzIgMS4yOSwyLjE1IDEuNDMsMC4yMiAwLjQ1LC0wLjQ5IDMuNTIsMi44NSAzLjkzLDMuMjYgMi44MSwxLjA3IDEuMzksMS41NyAwLjEzLDEuMzQgNi44MywtNC40MiAwLjU4LC0xLjg4IC0wLjYyLC0yLjUgMC42MiwtMS45NiAtMS43OCwtMC4xNCAtMy4xNywtMy4wOCAtMS43NCwwLjE4IC0wLjg1LDAuNDkgLTEuMTIsLTAuNDQgLTEuMDMsLTAuNjMgLTEuMzgsMC4xOCAtMS45NiwtMS41MiAtMi4xNSwtMC44NSAtMi40MSwwLjkgLTEuNjksMS4xNiAtMi4wNiwtMS42MSAxLjc5LC0wLjg1IC0wLjE4LC0xLjExIDAuNDUsLTEuMTIgMi4wMSwtMC45NCAwLjE3LC0xLjI1IDIuMzcsLTEuMiAwLjEsLTIuMDEgLTEuMTIsLTEuNyAtMC44LC0xLjc4IDAuMzYsLTEuNjYgaC0wLjk5IGwtMi44MSwxLjEyIC0xLjk2LDEuNzQgaC0wLjk4IGwwLjEsLTIuMTUgLTAuMTgsLTEuMjUgNC4xLC0yIDEuMDgsLTEuNzkgLTAuNjcsLTAuNzEgLTIuMTUsMC42NiAtMS4zOCwtMS4yNSAtMS43OSwtMy40MyAtOS41MSwzLjk3IC0xLjIsMi42OCAtMi40NiwxLjc0IC0yLjk5LC0wLjU0IC0wLjk0LC0xLjIgLTcuNDUsLTIuMzIgLTAuMzEsLTAuOTQgLTIuNTUsLTIuNSAtMS44NywxLjcgLTEuNTcsMC42MiAtMi45LDEuMTIgLTEuNDMsMS4xMSAtMi4yNywyLjE5IC0xLjkyLDAuMzEgLTAuMTQsMi4xIC02LjY1LDMuMjIgLTcuNzIsMC4xMyAtMS45MiwwLjY3IC0xLjU2LDQuNTEgLTYuNjEsNC40MiAtMC44NSwtMC40NSAtMi41OSwyLjEgMC45OCwxLjM4IC0wLjg0LDEuNyAtNSwyLjIzIGgtMi42NCBsLTAuODUsLTEuMTYgLTAuNzEsMC44NSAtMi40NiwwLjEgLTEuNTYsMS4yNSAtMi4xOSwtMC4xIC00Ljk1LC0xLjc0IC0xLjgzLDMuOTMgMC45OCwyLjgxIDEuOTIsMi4wMSA0LjU1LDAuMjMgMS41MiwxLjYgLTAuMjIsMS45NyAtMS44MywyLjMyIHYyLjE0IGwxLjE2LDAuOSAwLjYzLDIuMjd6Ii8+CiAgPC9nPgogIDxnCiAgICAgaWQ9ImxheWVyNCIKCSBjbGFzcz0icHJvdmluY2UiCgkgc3R5bGU9ImZpbGwtb3BhY2l0eToxOyBzdHJva2U6IzAwMDAwMDsgc3Ryb2tlLXdpZHRoOjEiPgoJPHBhdGgKICAgICAgIGlkPSJwSEoiCiAgICAgICBkPSJtNzcwLDI2LjEyNSAxOS42OSwtNi45MDYgNy4yMiwtMi4zMTMgMTYuNjgsNS43MTkgNS40MSwtMi4zNzUgOC4zMSwyLjU2MiA2Ljc4LDUuNjI1IDEsMi41IDQuOTQsMy40NjkgMy42OSw2LjE4OCAwLjk3LDQuMDYyIDEwLjA5LDEyLjkwNiAwLjQ3LDQuMTg4IDkuMTksOS4xNTYgMS4xNSw3LjM0NCAzLjk0LDIuMTg3IDAuMjgsNS41NjMgNi4xMyw2LjQzNyA2LjY1LC0wLjE4NyA1Ljc4LC0zLjQ2OSA4LjQ3LDMuOTM4IDMuNjksLTEuODQ0IDE0LjcyLDcuOTM3IDUuNzIsLTEuMjUgMS40LDUuODc4IDUuNTQsNi4yNSAtMS4wNyw0LjUgNS41LDQuNzIgMS42LDIuNCA2Ljk3LC0yLjU5IDUsLTAuNDQgMTAuMTUsLTQuNTMgMS40MSwtNC40NCA2LjE1LC02LjkgNC4xNiwtMC40NyAyLjc4LC00LjEyOCA3LjgxLC02Ljg3NSA2LjA0LDAuOTM4IDAuMSw3LjI1IDQuNTYsNC45NjUgLTEuNDcsNi44OCAtMy42OSwyLjY5IDEuNTcsMTYuNjUgLTAuNiwzLjMxIDEuNjMsNi4xIC0xLjYsMy4zNyAtMSwxMy41NyAtMi45MywzLjA5IDEuMDYsOS4xMiAtMS43NSwxLjEgLTE0LjU2LDAuNCAtMy4xOSwtMS42MiAtNC4yMiw5LjYyIC01LjU5LDMuNzIgMC4xLDEuNDQgOS4yNSwxNC44MSAwLjcyLDEwLjYgMS4zMSwyLjAzIC00LjUsMi4wNiAtNC44NywtMi42MiAtMy4xNiwtMC41MiAtMy4zMSwtNS44NiAtMy4zOCwzLjE0IC0yLjg3LC0yLjM3IC0yLjA2LDAuNDcgLTAuMzMsMy44MiAtNC41OCwxLjMgLTIuODgsMi4wOSAwLjY4LDMuMjQgLTEuMywyLjQ0IC0zLjkyLDAuNyAtMy44OSwtNC42OSAtMC4yNSwtMS4zMSAtMy42OSwtMSAtMy44LC00LjI0IC0wLjcyLC02LjA5IC0xLjgyLC0yLjA4IC0zLjc3LC0wLjEgLTAuNjIsMi43NyAyLjA3LDcuMDkgLTAuNjEsMS45OSAtMi41NywxLjE5IC02LjY0LC02LjQxIC0wLjY2LC0zLjQ4IC0yLjg2LC0xLjM1IC0xLjcsMS4yMiAtMi41OCwwLjU1IC0yLjU2LC0zIDAuOTYsLTIuOTIgLTMuMjYsLTQuNTggaC0zLjA5IGwtMi40NiwtMS42NiAtMi4yLDAuMjcgLTMuMzYsMy43OSAtNi4yMiwtMC41MyAtMi42NCwtMS41NCAtMC4xLC0yLjQxIC0xLjMzLC0xLjE0IC0yLjg5LDAuNDggLTEuODUsMi45OSAtMy44MiwwLjUzIC0yLjQzLC0xLjc3IC0xLjkzLDEuNzQgLTMuNzUsMS44NiAtMi43NywtMC43NyAtNi4yNSwtNC45MiAtMi4zMSwtNC43MiAwLjM5LC0yLjAzIC0xLjgsLTIuNzIgLTIuMTksLTEuNDUgLTUuNjcsMS45OCAtMy4yNSwwLjMzIC0yLjExLDEuMDMgLTIuNDUsLTAuNDQgLTAuNjcsLTEuNCAwLjcsLTIuODEgLTAuODcsLTIuMTMgMC44NCwtMS41MyA0LjUsLTAuMjMgMS45OCwtMS42NSAwLjc5LC0yLjM5IC0wLjY4LC0xLjUzIC0wLjg2LDEuOTYgLTEuOTgsMC41MSAtMy45NywtMC42OSAtMS42NywtMC44OSAtNC4wMywtNC4wNiAtMi4zMywtMC41MSAtNC4xOSwtNC40MyAwLjYsLTQuMTEgOC40NywtOC4yOSAwLjgxLC0zLjcxIDMuMiwtMy4wMyA2LjcsLTExLjY4IDEuNjEsLTEuMDQgMS4xMSwwLjMyIDEuNzgsNC4wMSAyLjE2LDIuMTMgMC42MywtMSAtMC4xMywtMi43OCAtMC43NSwtMS44MyAtMC40NCwtOC4xMyAxLjQ2LC04Ljc5IDEuNDYsLTAuODIgMi42MywtMC4zOSAxLjA2LC02LjAzIC0zLjA4LC00Ljc2NCAwLjQ2LC0yLjcwMyAtMS4xLC0yLjkzNyAtMC42MiwtNS45MzggMi4xMiwtMS41MTYgMC4yMSwtNC40MDYgMy41MSwtNC4yMTkgdi0yLjU2MiBsLTEuNTQsLTEuNTE2IDAuMTIsLTIuMTU2IDEuOTUsLTIuMzI4IDAuNDcsLTIuMzkxIC0xLjI4LC0zLjMyOCAtMi41NiwtMC4zNTkgLTcuODksLTguMTEgLTUuMTksLTAuMTQgLTEuNjcsNC44MjggLTEuNjMsMi44NTkgLTMuODQsMC4wOSAtMS43NSwxLjk2OSAtMy4zNCwtMC40MzggLTEuNjEsMS4yOTcgLTIuMDUsMC4xNzIgLTEuNjMsMy4xNzIgLTIuMDEsLTAuMTU2IC0xLjgxLC0xLjMxMyAtMS43NSwxLjE0MSAtMy4xMSwtMC4zNiAtMy44NSwtMi42NCAtMy43OCwtNi4yOTcgdi0zLjUxNiBsLTIuMDEsLTMuOTIyIC0wLjEsLTEuNjI1IDAuMzcsLTEuNDM3IC0wLjk4LC0wLjk1MyAtMi44LC0wLjQ4NSAtMi41MywtMy4wMzEgLTEuNjUsLTAuODQ0IC0xLjcxLDAuODEzIC0wLjE4LDMuNDg0IC0xLjc3LDEuNTc4IC0xLjcyLDAuMDkgLTIsLTIuNDUzIC0zLjA5LC0wLjY0MSAtNC41NywtMi4xNCAwLjMzLC0xLjc1IDQuNjksLTYuOTA2IDAuODksLTMgLTEuMzcsLTIuMjY2eiIvPgoJPHBhdGgKICAgICAgIGlkPSJwSkwiCiAgICAgICBkPSJtODI0LjU5LDE4MS45MSAyLjMyLC0xLjI1IDMuMjUsLTAuMTMgNS41LC0yLjA5IDEuOTMsMS4xNSAyLjE2LDIuOTQgLTAuNjMsMi4wOSAyLjU0LDQuODggNi4wNyw0Ljc4IDIuNjEsMC44OSAzLjk2LC0xLjg5IDEuNzUsLTEuNyAyLjk3LDEuODMgMy41NCwtMC41NyAxLjg1LC0zLjExIDIuNzksLTAuNDYgMS4zOSwxLjAxIHYyLjMgbDIuNTgsMS44MSA2LjE0LDAuMzkgMy4zNywtMy42NCAyLjA1LC0wLjI4IDIuODEsMS42OSAzLjEsLTAuMSAzLjI2LDQuMjggLTAuOTUsMi44OSAyLjMxLDMuMDkgMy4xLC0wLjQ4IDEuMzcsLTEuMTYgMi43NywxLjI3IDAuNSwzLjI2IDYuNjQsNi45NiAyLjY1LC0xLjI3IDAuODgsLTIuMDEgLTIuMiwtNy4yMiAwLjQzLC0yLjYzIDMuODUsMC4xIDEuODIsMS44MyAwLjg4LDYuMiAzLjU4LDQuMzMgMy44MSwwLjc4IDAuMzgsMS41NSAzLjc2LDQuNyAzLjg2LC0wLjc1IDEuNDEsLTIuMzEgLTAuNjMsLTMuMTkgMi42MSwtMi4zNCA0Ljc0LC0xLjEzIDAuMzUsLTMuODQgMi4yNCwtMC40MiAyLjU4LDIuMjEgMy41MSwtMi44NyAzLjM5LDUuNjcgMy4xMywwLjYgNC43OCwyLjQ2IDUuODMsLTIuNDMgdjguNzYgbC0yLjg5LDYuODkgLTQuOTksMy4xMyAtMC4zNywyLjIzIDEuNDcsMS43MSAtMi44OSwwLjI2IC02LjM5LC02LjMzIC0zLjE2LDEuMzUgLTAuMzksMTIuNjIgLTYuMjcsMi45NyAtMC40LDUuMzQgLTYuNTUsNC45MSAtOC4xMiwxLjQ1IC0xLjE5LDMuMjEgNS40Nyw2LjQ1IC0wLjY0LDQuMDkgLTE1LjIxLDEuNDEgLTUuODEsLTQuNTMgLTUuOTcsMy45NCAtMC4zNiw4LjA3IC03LjI5LDEyLjIxIC0yLjEsMC42MiAtMS41LC0yLjIyIDAuODgsLTIuNTkgLTAuMzIsLTQuMjIgLTQuNjgsLTQuMzcgLTIuNSwtMy4yOSAtMS42OSwtMC4zNyAtMi4wMywtNC4xNiAxLjc4LC00Ljc1IC0wLjI4LC0yLjI4IC0yLjQ3LC0wLjMxIC01LjgxLC03LjY2IC0yLjE2LC0xLjE4IC0wLjQxLC0yLjQxIC0yLjI4LC0xLjQ0IC0wLjY4LC00LjE5IC0xLjMyLC0xLjE1IC0xLjksMS41OSAtMS4wMywzLjQ0IC0yLjEsMS4zMSAtMS4xOSwtMS4yMiAtMC4xLC0yLjgxIC0yLjk3LC0zLjE5IC00LjUzLC0xLjI4IC0zLjksLTIuMDYgLTAuODUsMC41OSAtMC4xLDIuMjUgLTUuMDYsLTEuNDcgLTEuMDQsLTAuOSAtMC4xLC0xLjY2IDEuNTYsLTEuMjggdi0wLjk3IGwtMi41LC01LjU5IC0yLjIyLC0xLjcyIC0wLjE2LC0yLjk3IC0xLjE2LC0wLjU2IC0zLjA5LC00LjIyIC0wLjYyLC0xLjk3IC0xLjEzLDAuMzQgLTguNDcsNy41NCAtMiwwLjkgLTIuOTQsLTEuNjUgMS4zNSwtMS45NyAtMS4yMiwtMi40NCAtMy41OSwtMy4yOCAtMS4zMiwtNi4yNSAtMC43NSwtMS45MSAwLjU3LC0yIDEuOTMsLTEuNzIgMC4zNSwtMi45MyAtMiwtMi40MSAtMi42NiwtMS4wOSAtMS4xOSwtMi44MiAtMS40MywtMC45NyAtMi4zNSwwLjUgLTEuMDYsLTEuMTIgMC44NywtMi4zOCB2LTMuMjggbDMuMTYsLTAuNTkgNC41LDIuOTQgMS4wNiwtMS42OSAxLjEsLTAuNSAyLjAzLDEgMS43NSwxLjg0IDEuMzQsMC4xIDAuODQsLTEuNjkgLTAuMTIsLTMuMjUgLTAuNzgsLTEuNjYgMC4zNywtMS45NyAyLjQ0LC0wLjUgMS4xMywtMS4wNnoiLz4KCTxnIGlkPSJwTE4iPgoJCTxwYXRoCgkJICAgaWQ9InBMTl8xIgoJCSAgIGQ9Im03OTguNzEsMzI5LjA0IC0yLjA1LC0xLjA3IC0wLjc1LC0zLjMxIC0yLjg1LC0yLjA3IC0wLjk3LC0zLjc4IC01LjM0LC0wLjYyIC0xLjc4LC0yLjIyIC0zLjEzLDAuMjggLTMuMjUsLTMuNTkgMS45MSwtMi4xOSAtMC4xNiwtMi45NCAyLjUsLTIuNTkgLTAuMTIsLTEuNzUgMi4zNywtMi43MiAwLjQ0LC0yLjg4IC0yLjI4LC0zLjAzIC0wLjY2LC0zLjEyIHYtNy4xIGwtMS45MywtMi4wMyAtMC4xOSwtMS43NSAzLjQxLC0zLjI4IDIuOTYsMi42OSBoMyBsMC4xLDEuODEgMy42OSw0LjEgMS4zNywzLjM3IDEsMC40NyAwLjgxLC0yLjc4IDMuOTQsLTUuMTkgMS4yOCwtMi4zMSAzLjkxLC0zLjQ0IDMuNSwtMC41OSA0LjE1LC02LjEgMS44OCwtMC45NyAzLDAuNjYgMi45NCwtMS43NSAtMC4yOCwtMy4yNSAxLjc4LC0xLjAzIDIuNDcsLTAuNDQgMi4yNSwwLjUzIDEuNzgsLTEuNCAtMS40NywtMiAwLjQsLTEuNDQgaDMuNSBsMi42LDEuNjkgNS41OSwtMi42NiAwLjYzLC0zLjI1IDEuNDcsLTIgNC4yMSwtMi42MiAxLjA0LC04LjUzIDAuNzEsLTAuMzUgMy45NywyLjEzIDQuNiwxLjAzIDMuMDMsMy4zMSAtMC4xNiwzLjA2IDEuMSwwLjk0IDIuMzQsLTEuMTYgMC44NywtMy42MiAyLjEsLTEuNDcgMS4xOSwxLjAzIDAuNjUsNC4yNSAyLjE2LDEuNTYgMC43MiwyLjI5IDIuMjIsMS4zNCA1LjM3LDcuNDcgMi42MywwLjM0IDAuMTUsMi4wMyAtMS40Nyw0Ljg1IDEuNzUsNC4yOCAxLjc1LDAuMzQgMy4xOSwzLjk0IDQuMjIsMy45MSAwLjEyLDMuOTMgLTAuOSwyLjUgMS40LDIuODIgLTMuMTUsNC40NiAtNS42OSwzLjQxIC0xLjk0LDMuNTkgLTEuODQsMS4xOSAtNS4xMyw3LjA2IC0wLjUzLDQuOTQgLTIuNzksMi4zOSAtMS4zOCwwLjg0IC01LjQ2LDAuNSAtMi4xLDIuMDkgLTQuNjUsMC44MyAtMS4xMiwyLjQ1IC0yLjQ2LDAuMjQgLTUuMzgsNC40MiAtNy42LDYuODUgLTEuNzgsNC4wNiAtMi4yMiwyLjQ3IC00LjA1LDIuNzggLTMuNTQsNC4wNiAtMy44MywzLjEgLTEuMjcsLTEuNDkgMC45MywtMy41IDIuMjQsLTAuMjQgMS4wMywtMi4wOCAyLjgxLC0xLjUzIDAuNTQsLTIuNjQgMS42NSwtNC43MSAtMy44NiwxLjEgLTEuOTMsLTEuNjggLTMuMTgsLTEuODIgMi4wMSwtMS4xMiAwLjI1LC01LjEgMS43LC0xLjk0IDQuMDgsLTMuMDYgMS4zLC0zLjg5IDMuNTksLTguMjEgLTIuOTIsLTIuMTIgLTUuMDcsLTUuMDkgLTMuMjEsLTAuOCAtMy41NywyLjA0IC01LjA2LDAuMjUgLTMuNDMsMi4xMSAtMC41MSwzLjMxIC0xLjQ3LDEuNDggLTMuODQsNS4zOCAtMC4yNSw1IC0yLjk0LDEuOTV6Ii8+CgkJPHBhdGgKCQkgICBpZD0icExOXzIiCgkJICAgc3R5bGU9InN0cm9rZS13aWR0aDowLjUiCgkJICAgZD0ibTg0NS45NCwzMzYuODMgMi4xNSwtMC4xOCAtMC41NCwxLjQzIGgtMS43OXoiLz4KCTwvZz4KICAgIDxwYXRoCiAgICAgICBpZD0icE5NIgogICAgICAgZD0ibTQyMC43NSwyOTUuMjUgMi41NiwtMC41NiAyNy42OSw0LjA2IDE2LjMxLC0yLjQ0IDI2LjQ0LDQuNDQgNS43NSw3LjA2IDE0LjM3LDMgMTIuNjksNC4zOCAxMi4yNSwtMC42OSAxLjE5LDQgNS43NSwxLjYyIDEzLjE5LC05LjY4IDE2LjQzLC03LjY5IDcsLTEuNjMgMiwtMi4zMSBoMyBsNS40NCwxLjA2IDQuNTYsLTEuNjIgMjEsLTEuNzUgOC4zMiwtNC4zMSA3LC0zLjU3IDEwLjE4LC0xNC4zNyA3LjY5LC0zLjc1IDIuNDQsLTIuOTQgMy45NCwtMy4xMiAtMC4yNSwtMS43NSAtOS45NCwtMTEuMzIgNS44MSwtMTUuOTMgMTAuMDYsLTAuNTcgMi45NCwzLjM4IDE1LDAuNTYgMTEuNjMsLTEwIDIuODcsLTYuMzcgMTUuMTksLTEuNSA5LC0xMC4wNyAtMC42OSwtMi44MSAyLjgxLC03LjE5IDQuNjksLTUuMTggNy40NCwtMC42OSAyLjMxLC00LjY5IDMuNSwwLjgxIDguNTYsLTYuMTggMTAuMzIsLTEuMDcgNi40MywxLjEzIDUuMTksLTEuNTYgMi4yNSwtMy42OSAwLjEsLTEuNSAtNC44MSwtNy4xOSAtOS40NCwtNi4xOSAtMi40MywtNC4yNSAtNCwtMC4yNSAtNi4xOSwtMy43NSAtMTAuODEsMS42MyAtNC4zOCw4IC01LjgxLC0zLjI1IC0xMi45NCwyLjQ0IC0yLjQ0LDMuNjIgLTUuNDMsLTMuMzcgLTIuNjksLTYuMjUgNC4wNiwtMy4zMiAwLjQ0LC04LjQzIDIuMzEsLTMuMzIgLTAuNjksLTMuMzEgNi41LC0yMi4yNSA0LjUsMi4zMSAxMi41NywyLjA3IDMuMTgsLTEuNTcgNy4yNSwtOS4zNyA3LjE5LC0yLjEzIDIuNjksLTQuMTIgLTMuMTksLTYuMzEzIDAuODEsLTMuOTM3IDEuOTQsLTMuODEzIDUuMzEsLTIxLjYyNSA2LjUsLTcuNzUgMC40NCwtNy42ODcgLTIuNDQsLTIuODc1IDAuMTksLTIuNzUgLTEuNjIsLTEuODc1IC0zLjY5LC0wLjM3NSAtNC4xMywwLjgxMiAwLjEsLTQuOTM3IDMuMTIsLTIuODEzIDMuOTQsLTcuNjg3IDEwLjYyLC02LjI1IDUuNDcsNi40MzcgLTEuMDYsMy40MDcgLTQuNjIsNi41NjIgLTAuMzIsMS42ODggNC45MSwyLjI4MSAyLjcyLDAuMzc1IDIuMDYsMi41NjIgMS42MywwLjIxOSAxLjcxLC0xLjg0NCAwLjM1LC0zLjE4NyAxLjQ3LC0xLjA2MyAxLjkzLDAuOTA3IDIuOTEsMy4xNTYgMi41LDAuMjUgMC45NywwLjgxMiAtMC4zOCwxLjg0NCAwLjEzLDEuOTM4IDEuNzgsMy40MzcgdjMuODc1IGwzLjk3LDUuNjg4IDMuNzIsMi45MzcgMy4zMSwwLjI1IDEuODEsLTEuMTU2IDIsMS41IDEuNiwtMC4yMTkgMS4zNCwtMi43NSAyLjM4LC0wLjQzNyAxLjYyLC0xLjQzOCAzLjAzLDAuNzE5IDEuODUsLTEuOTM4IDMuODcsLTAuMzc1IDIuMTksLTMuODEyIDEsLTMuNSAyLjU5LC0wLjUzMSAzLjQxLDAuODc1IDcuMzQsNy42ODcgMi40NCwwLjUgMS4zOCwzLjA5NCAtMC41NywyLjUgLTIuMDMsMi4yNSB2Mi4zMTIgbDEuMzQsMS41MzIgMC4xNiwyLjMxMiAtMy41OSw0LjE1NiAtMC4xOSw0LjY1NyAtMi4wNiwxLjMxMiAwLjY4LDYuMzQ0IDEsMi43MTkgLTAuNCwyLjYyNSAzLDQuNjI2IC0wLjYsNS42NSAtMC44NywwLjg1IC0yLjQ0LDAuMTIgLTEuNDQsMS4wMyAtMS4wOSw5LjY5IDAuNDcsNy4xMyAwLjgxLDIuMzcgLTAuMTksMi4zNSAtMC41OSwxIC0yLC0yLjE5IC0xLjgxLC00LjIyIC0xLjQ0LC0wLjI1IC0xLjA5LDAuNzUgLTcuNDQsMTIuNTYgLTIuNTksMi4zOCAtMC45Nyw0LjE1IC04LjM1LDcuNTcgLTAuNjUsNC4yOCA0LjA2LDQuNjIgMi4zNCwwLjQ0IDMuOTQsNC4wMyAyLjY5LDEuMTYgNC4zMSwwLjMxIDEuMDYsLTAuNjMgMC44NSwtMS44NCAwLjU2LDEuNjMgLTEsMi43OCAtMiwxLjE4IC00LjI4LDAuMzUgLTEsMS40NCAxLjA2LDEuOSAtMC44NCwyLjY5IDAuNzIsMS44NyAyLjI4LDAuNDcgMC4xLDIuMTkgLTEuMTIsMS4yNSAtMi40NCwwLjQxIC0wLjI1LDEuOTcgMC43OCwxLjY4IHYzLjQxIGwtMC42OSwxLjUgLTEuMjUsLTAuMSAtMS44NCwtMS45NyAtMi4xMywtMS4xNiAtMS4yMiwwLjYzIC0wLjY4LDEuNjUgLTQuNDQsLTIuNjUgLTMuMTMsMC4yMiAtMC4yNSwzLjU5IC0wLjgxLDIuMjIgMSwxLjM0IDIuNjMsLTAuNSAxLjA2LDAuODggMS41LDMgMi43MiwwLjg0IDEuMzEsMi4xNiB2My40MyBsLTEuODgsMS4yNSAtMC40NiwxLjc5IDIuMjEsOC44NCAzLjY2LDMuMDYgMC45NCwyLjIyIC0xLjMxLDEuODggMi44NCwyLjA2IDEuOTQsLTAuODUgOC41MywtNy45NiBoMS4xNSBsMC43NSwxLjkgMy41NCw0LjYzIDAuNTMsMC41NiAwLjI1LDIuNDcgMi4yMiwxLjg0IDIuNDMsNS42NiAtMC4xOCwwLjk0IC0xLjE2LDAuOTYgdjIuMzggbDUuODgsMi4wMyAtMC42Niw1Ljc1IC01LjI4LDMuNjYgLTEuNDEsNC4zNyAtNS41LDIuNzIgLTIuMzcsLTEuNzUgLTMuMzgsLTAuMSAtMC40LDEuMzQgMS4wNiwyLjEzIC0xLjU2LDEuNTMgLTIuMDcsLTAuODUgLTMuMTIsMC41NyAtMS4xOSwxLjE4IDAuMzQsMy4wNyAtMy4wMywxLjkzIC0zLjA5LC0xIC0xLjg0LDEuNDQgLTQuMjIsNS45NCAtMy41MywwLjQ3IC0zLjkxLDMuNDQgLTYuMjIsMTAuMjEgLTAuNzUsLTAuMzcgLTEuNSwtMy4yOCAtMy41LC00LjEzIC0wLjI1LC0yIC0yLjY5LDAuMSAtMy4xOCwtMi40NCAtMy41LDIuOTcgMC40MywxLjgxIDEuNjMsMi4xNiAwLjU2LDkuODcgMi40MSwzLjM1IC0wLjMyLDMuMDYgLTIuNTMsMi4zMSAtMS4xMiwtMC41MyAtMi4yNSwwLjI1IC0xLjgxLDEuMDMgLTguNSwtMC4xOSAtMS4yNSwtMS4zNyAtMC40MSwtMi45NyAtNC4xOSwtNC42NiAwLjk3LC0xLjg0IC0wLjM0LC0zLjM0IC00LjMyLC0zLjI5IC0xLjU5LC0zLjkgLTMuOTQsLTQuNDQgLTIuMjUsMC4yMiAtMy42NSwzLjM0IGgtMi45MSBsLTQuMTIsMi45NyAtMC40NywxLjU2IDEuMjgsMi44OCAtMC4xNiw0LjYyIC0xLjQ3LDEuMjUgaC00LjA2IGwtMi4wOSwtMC44NyAtMi4yNSwxLjc4IC0wLjYzLDEuNSAtMi41NiwxLjE5IC0yLjQ3LC0wLjc5IC0xLjkxLDAuNiAtNiw1LjUgLTEuNTYsMi42MiAtMS43NSwwLjQxIC0zLjMxLC0wLjE2IC0xLjE5LC0xLjE1IC0wLjE5LC03LjUgLTIuMTUsLTMgLTQuNiwwLjEyIC0xLjc4LDMuOTEgLTIuNSwzLjYyIC0wLjEyLDQuNDcgLTEuMTksMS42IC0xLjkxLDIuMDkgLTAuNTYsMy40NyAxLjU2LDIuMzcgLTEuOTMsMi44NSAyLjUsMi41MyAzLjU5LDUuMzQgLTIuOTEsNC43MiAtMy44NywyIC0zLjU2LDIuNzUgLTIuNDEsMC4yMiAtMi45NywtMS41NiAtMi4wOSwwLjY4IC0xLjY5LDEuNjYgLTEuMjUsMi4yNSAtMi4wNiwxLjM4IC01LjEsLTEuODUgLTIuMDksMC45NCAtMi45NCw1LjkxIC0yLjU5LDcuMzcgLTIuNjYsMS43NSAtMy45MywtMC40NCAtMS4xMywxLjM1IC0wLjg3LDIuNzUgLTIuMjIsMS43NSAtMS44NSwtMC4xOSAtMi4wMywtMi43OCAtMy44NywzLjkgLTEuNSwyLjE5IC0wLjg4LDAuNTMgLTIuNDcsLTEuNTkgLTQuMzEsMS4xMiAtMC4yNSwtMS41MyAtMC44NywtMC4zNCAtMS42MywzLjUzIC0zLjk0LDQuMTYgLTAuNTksNS40NyAxLjMxLDEuNTkgLTAuMjgsMi4wNiAtMS4xOSwxLjA2IC00LjEyLDEuMDQgLTEuMzgsMi44NyAtMi4yMiwxLjk3IC0yLjg0LDQuNzIgLTIuNzUsMi4zNCAtMS44MSw0IC0xLjgxLDQuNzUgLTEuNiwxLjQ0IC00LjQ0LDAuMTkgLTIuODQsLTMuNzggLTEuNDQsMC4xIC0xLjUzLDEuNjUgLTQuMzEsMC4xIC00Ljc1LDEuMTIgLTAuNjMsLTQuMzQgLTEuOTYsLTIuOTEgLTMuNTcsLTEuNzIgLTMuOSwwLjE2IC00LjY2LC0xLjU2IC0yLjE2LC0xLjgxIDAuMSwtMS4xOSA2Ljc1LC0xNS41IC0zLjQ3LC0yLjUgLTAuMjIsLTMuOTQgaC0zLjEzIGwtMi41NiwxLjgxIC0yLjI1LDAuMTkgLTEuMDksMi4yMiAtMy40NywyLjQ0IC0wLjEzLDMuMzcgLTMuMzQsNS4wOSAwLjUzLDEwLjQ3IC04LjY1LDcuNTcgLTMuMjksNC45NiAtMi43NSwyLjEzIC00LjI4LDAuODEgLTIuODcsMC4xIC0yLjM4LDEuNzggLTMuNDcsMC4xOCAtNS4zMSwtMS45MyAtMC41NiwtMi4yMiAtMy4xNiwtMS4xIC0yLjUzLC0xLjY1IC0wLjMxLC00LjkxIDEuMTksLTEuNSAwLjcyLC0yLjcyIC0wLjIyLC0zLjUgNS4yOCwtMS41OSAxLjksLTIgMC4xOSwtNC42OSAtMC42OSwtMi41OSAyLjQ3LC0zLjE2IC0wLjU5LC00LjUgLTUuNjksLTQuNzggLTIuMDMsLTAuOTEgLTYuODQsMC4zMiAtMS42MywxLjE4IC03LjM0LDcuNDQgLTguMzgsMy4yOCAtMTEuODEsMC4yOCAtNS4zMSwtMS41MyAtMS41MywtMS4zMSAtMy4yNSwtMC41MyAtMi41NywtMS45NCAtMC42NSwtNC41IDAuOTQsLTIuNDQgLTAuODIsLTEuNTkgLTcuNDcsLTAuNSAtMi4xNSwtMy4zNyAtNC45NywtMi4xNiAtMy43OCwtMy42MyAwLjE5LC0xLjM0IDIuMjgsLTEuOTcgMi4zNCwtMy40NyA2LjM0LC00LjI4IDAuNjksLTIuNzUgLTAuOTcsLTQuNSAtNS4wNiwtMy4zNCBoLTE2Ljk0IGwtMi42OCwxLjEyIC01LjU0LDUuNjYgLTMuNjUsMC40NCAtMi41LC0xLjc4IC0yLjYsLTMuODIgLTQuNTMsLTQuMzEgLTUuNjUsLTEyLjE2IDAuMSwtNC4xMiAyLjU2LC02LjU5IC0yLjUzLC00LjMyeiIvPgoJPHBhdGgKICAgICAgIGlkPSJwTlgiCiAgICAgICBkPSJtNTQwLjIxLDQwOS4wNiAxLjA3LC0xLjA0IGgzLjY2IGwzLjQ5LC0wLjgyIDMuMjMsLTIuMTIgMy4yMywtNS4yNCA4LjQzLC03LjE0IC0wLjQzLC0xMC42MyAzLjQxLC01LjIgLTAuMTQsLTMuMTMgMi41NSwtMi4wOCAxLC0wLjM5IDEuMTIsLTIuMjMgMi4xMSwtMC4zNiAyLjYyLC0xLjg3IDMuMTMsMC4xMSAwLjM2LDMuNzQgMy4wNSwyLjU4IC0wLjQsMi4yMyAtNS45NiwxMy4wNiAtMC4xNCwxLjc2IDIuNDEsMS44MyA0LjM3LDEuNTEgMy44OCwtMC4yNSAzLjc3LDEuNTQgMS45NCwzLjA5IDAuNTcsNC4wMiAtMC45MywwLjcyIC0yLjE1LDIuODcgLTAuOTQsNS4xIDEuMjYsMy4wMSAtMC40NywxLjY1IC0yLjgzLDAuMzMgLTMuMDUsMC44MiAtMi40OCwtMi4wOCBoLTIuMDEgbC0xLjYyLDYuMjUgMS41MSwyLjQ0IC0wLjU3LDEuNTEgLTIuMywwLjc5IC0wLjQ3LDUuMzggMS4zNywzLjg0IDcuMzIsMy4zNCAwLjYxLDMuMDkgLTEuMDEsMi4zMyAtMC42NCwzLjIgLTIuMjMsMC45NyAtMi41NSwtMC42OSAtMS42MSwwLjgzIC0wLjM2LDYuOTYgLTAuODYsMS4yMiAtMi41MSwwLjI2IC0yLjk1LC0yLjEyIC0zLjg3LC0wLjE4IC0yLjQ1LC01LjU3IC01Ljg4LC0xLjU0IC0yLjM3LC0zLjE5IDAuMTgsLTEuOTggMS45NCwtMi44NyAwLjE0LC00LjA5IC0yLjMzLC0yLjggLTEuMzcsLTQuMTcgLTAuNDYsLTUuNDIgLTEuNDgsLTEuNzYgLTQuMDIsLTMuMTIgLTEuNjUsLTMuMDUgLTIuOCwtMC4xNCAwLjI1LC0yLjIzIC0xLjU0LC0yLjAxeiIvPgoJPHBhdGgKICAgICAgIGlkPSJwR1MiCiAgICAgICBkPSJtNDA1LjIxLDI5MS41NSAxNS4zMSwzLjk5IDAuMTcsOC42NSAyLjMxLDMuOTYgLTAuNTUsMi4yOSAtMi4xNCw0LjY5IDAuMTEsNC4xOSAyLjQzLDUuMjUgMy40NSw2LjYzIDQuNDIsNC4zNCAyLjMxLDMuOTEgMi43MiwxLjU1IDMuNzMsLTAuMjYgNS4yMywtNS4zOCAyLjc0LC0xLjUgMTcuMTEsMC4xMSA0LjgyLDMuMTQgMS4wNCw0Ljg1IC0wLjQ4LDIuNTEgLTYuMzUsNC4zMiAtMi44OSw0LjA2IC0xLjgsMS4zMiAtMC4yMywxLjI3IDMuNzUsMy44NiA1LjExLDEuOTMgMS44MiwzLjQ3IDcuNTcsMC40NiAxLjA0LDEuMzUgLTAuODYsMi4zMyAwLjE3LDQuNjcgMi44NywyLjE2IDMuMjgsMC42MyAxLjg1LDEuNTUgNC44LDEuMiAxMi4wOCwtMC4zMSA4LjEyLC0zLjM1IDkuMDQsLTguNTggNy4wMywtMC4xOCAzLjUsMi4xNCAzLjk2LDMuNTcgMC42MSw0LjMyIC0yLjM0LDMuMjIgMC43NCwzLjIgLTAuMzUsNC4wMSAtMS42LDIuMTEgLTUuMTEsMS4wNCAtMC41NSw1LjQ2IC0xLjUsMy40MiAwLjI4LDQuNyA1Ljc4LDIuNDYgMC42MSwyLjEzIDUuNTksMi4wMSAzLjE3LC0wLjM4IDAuNzQsLTAuNjEgMi4xMywwLjg5IDEuNzUsMS42NSB2Mi4zMyBsMi41MywwLjI2IDEuOTMsMy4xNyA1LjM2LDQuMzcgMC4zOCw1Ljc2IDEuNDIsNC4zNCAyLjUxLDIuNDYgLTAuMzUsNC4yMSAtMS45MSwyLjk1IHYyLjA1IGwxLjkzLDMuMDUgNi4zMiwxLjY1IDAuNjksMi40OSAxLjQsMi45NyA0LjExLDAuMTcgMy4yLDIuMjYgMi4zMywtMC41OCAwLjY5LC0xLjE3IDAuMzgsLTYuNjIgMS43NywtMS4xMiAyLjUyLDAuNjkgMS45NSwtMC43OSAwLjY2LC0zLjUzIDEuMTIsLTIuMDggLTAuMzgsLTIuODcgLTcuNTcsLTMuNjggLTEuNDQsLTMuOTEgMC40MywtNS4xIDIuMDgsLTAuODQgMC45NiwtMS4zMiAtMS42NSwtMi43NiAxLjUzLC02LjAyIDIuMjEsLTAuMSAyLjU2LDEuOTggNS43OSwtMC45MSAwLjU4LDIuOTEgMS4wNywxLjgzIDIuMjUsMC41NiAwLjc0LDAuNjEgNi43MywxLjkzIDMuNjUsMy41OCAyLjM5LC0wLjg0IDguNzgsNS4yIDAuMjgsNy42MiAtMy4yMiwzLjAyIDAuMjUsNC42OSAyLjAzLDIuOCAtMC41Niw0Ljc5IC0xLjk1LDEuMjcgLTUuNjYsLTAuMjggLTIuODIsMS41IC0zLjI1LC0xLjI5IC0xLjA2LDAuMjMgLTAuMSwzLjU3IDEuNywyLjYyIC0xMS4yMiwyLjQxIC0zLjU1LC0zLjEyIC0zLC0wLjMzIC01LjIsMC45NCAtMC44NiwyLjQzIDAuOTksMi4xNCAtMC40NiwyLjk0IC0yLjc5LDIuNjQgMC4xNSwxLjQgMy44MywxLjQyIDIuMDYsMS43MiAwLjIzLDEuNzYgLTEuMzcsMS42MiAtMy4wNSw2LjM1IDEuMjQsMS43NSAtMC4yOCw0LjMxIDAuNjYsMS4wOSAtMC41LDEuMDQgLTIuMjEsLTAuMzMgLTUuNzksMC41NCAtMy4xLDEuNjIgLTEuMzksMi4yMSAyLjg5LDEuNDIgMS4xNCwyLjgyIC0wLjc2LDMuODEgLTQuMDMsMy44MyAtNC4wOSwwLjEgLTEuMTIsMS4wMSAtMC4xLDQuMDkgLTUuNDEsMi43NCAtMi44MSwtMS42NSAtMS41NSwwLjI4IC0xLjUyLC0wLjk3IC00LjE5LC0wLjIgLTMuNTYsLTMuODMgMC4xLC00LjAxIC0xLjkzLC0zLjQgLTEuMTQsLTMuOTQgLTEuMzIsMC4xIC0zLjkxLDIuODIgaC0yLjAxIGwtNi44MiwtNi4xMiAtMS41LC00LjM5IC00LjAxLC0xLjE5IC0xLjQ3LC0zLjIgMC41OCwtNS4zOCAtMS4zNywtMC40MyAtMS4xNCwtMC45OSAtMi4xOSwwLjMgLTQuNDQsMi4yMSAtNC42MiwxLjE3IC0zLjAyLDIuNDYgMC4yNiwzLjQ4IDAuNjEsMS44IC03LjU0LC0wLjIgLTIuMDksLTQuOTMgLTQuNDEsLTIuMzMgLTcuNTQsLTAuMjYgLTIuMjMsLTEuNzUgMC4zLC02LjQ3IDIuODQsLTAuNTYgNS4xMyw0LjQ0IDUuNTEsMS4zIDIuMjEsLTAuNjQgMi4xOCwtMy45MyAtMC43OSwtMy40OCAtMC4xLC03LjI4IDMuNDUsLTEuMzIgNC4yOSwtMi44NSAwLjg0LC0yLjIgLTEuOTEsLTIuOTcgMS4wMiwtMi41NCAyLjEsLTAuODkgMS44MywtMy43NiAyLjg3LDEuNjMgNC4xNCwtNi45MyAwLjQsLTQuOTUgMC45NywtMi43OSAtMi4zOSwtMi41MiAtMC45MSwtMy45MSAtMi45NywtMS4zNyAtMC4yNSwtNS4wNyAtMi43MiwtMi40OSAtMC41OCwtNC44OCAtMS42MywtMi41MSAtMC45NCwtMy44MyAtNC4xNCwtMy4yNSAtMC41OCwtMy4xIGgtMS4xOCBsLTMuNTIsMi4yNSAtNS41LC0yLjI3IC02LjAyLC00LjAxIC0wLjk0LC0yLjQzIC00Ljg3LC00LjQ3IC0zLjEsLTEuNDYgLTMuMDYsLTIuOSAtMy4xNSwtMS43NyAtMS40MywzLjc0IC0yLjc4LC0wLjU2IC04Ljc5LC0xMC4xMiAtMS45MywtMC4zMSAtMy44MSwtNC40MiAtNS45OSwtMi4wNSAtMi43MiwyLjM5IC0yLjk0LC0yLjM2IC00LjkzLDQuOCAtMy45NSwtMi45MiAtMS44NywtMi41IC0xMi4yMiwtMy43MSAtMi4yNywxLjk0IDEuNTEsMy45NyAtMC4xMyw0LjQzIC0zLjc4LDUuMTMgLTAuODIsNS41MyAtMy41OCwwLjU4IC0zLjMzLDEuNTggLTQuOTEsLTIuOTYgLTUuOTIsMC4zNiAtMTAuMTYsLTMuNiAtMTAuNzIsMS42OCAtNC4xLC04LjQgLTYuODQsMC4zNiAtMS42NSwtNC4wMSAtOS4yNSwwLjY5IC0yLjYzLC01LjYgLTguMzksLTMuODkgNC42NiwtMy40MiAxLjQ3LC00LjY5IDAuMzksLTEzLjI0IDIuMTMsLTkuMzggNy40MiwwLjQ1IDQuMzQsLTMuNDEgMS4yMSwtMy4yNyA2LjM2LC02LjU2IDcuMjMsLTUuMDMgMy42MywtNC4zOSA3LjcyLC0zLjUgMy44MywtMS4zIDMuNTYsLTIuNTEgOC41MiwtMS4wMSA1LjQxLC00LjUyIC0wLjk0LC00LjI3eiIvPgoJPHBhdGgKICAgICAgIGlkPSJwUUgiCiAgICAgICBkPSJtMjgwLjg0LDQyMi4xMiAxLjE2LDAuMSA3LjU2LDMuNjUgaDMuNiBsNC4zNywtMi4zNCA1LjA2LC0xLjA5IDAuNzUsLTEuOTQgLTAuOSwtMS4wMyAtNC43MiwtMC4yMiAtMS4wNiwtNi4yNSAzLjA2LC0yLjc4IDMuMzEsLTAuOTEgMi40MSwtMS44NCAtMC4xOSwtMy45NyAyLjUsLTIuMjUgLTAuMjUsLTEuMjggLTEzLjk3LC0xMC42NiAtMC4yMiwtMTIuNTYgOC42LC01LjUzIDExLjkzLC0wLjE5IDEyLjE2LC0xLjcyIDYuNDcsLTMuMzcgMTEuNDcsNS40NiAyLjYyLDUuNSA5LjQxLC0wLjU5IDEuNjksMy45MSA2LjcxLC0wLjM1IDQuMSw4LjM4IDEwLjc1LC0xLjY5IDEwLjI1LDMuNjYgNi4wNiwtMC40NCA0Ljc4LDMuMDkgMy4xNiwtMS41IDMuOSwtMC41OSAwLjYsLTUuNzggMy43OCwtNS4xIDAuMSwtNC4zNyAtMS4zNCwtNCAyLjE5LC0xLjk0IDEyLjIxLDMuNTYgMS44OCwyLjU0IDQuMDYsMy4yNSA0Ljk0LC01LjA3IDIuNTMsMi40NyAyLjg0LC0yLjQ3IDYuMjksMi4yNSAzLjk2LDQuNTcgMS44NSwwLjEyIDguNTYsMTAuMDYgMi44OCwwLjI4IDEuNCwtMy40NiAzLjEsMS42MiAzLjQ2LDMuMTkgMywxLjU2IDQuODgsNC4zNCAwLjcyLDIuMzUgNS41MywzLjg3IDEuMjIsLTAuMSA0Ljc4LDIuNTMgMy41LC0yLjI1IDEuMzEsMC4xNiAwLjI4LDIuNjIgNCwzLjM1IDEuMzIsMy44NyAxLjY4LDIuNTYgMC41LDQuODUgMi42MywyLjU5IDAuMzcsNS4xMyAyLjcyLDEuNDMgMS4wMywzLjY5IDIuMzIsMi42NiAtMC45NywzLjA2IC0wLjM1LDUuMTMgLTQuMjIsNi40NiAtMi43OCwtMS42MiAtMS41LDMuNjkgLTIuMjgsMC45MyAtMS4wOSwyLjM1IDEuNTksMy4yNSAtMC41NiwyLjE5IC00LDIuNzEgLTMuODQsMS4yMiB2Ny4xOSBsMC44MSwzLjU5IC0xLjcyLDQuMDQgLTIuOTQsMC44MSAtNS4zNywtMS42IC00LjYzLC00LjIxIC0yLjc4LDAuMTUgLTAuNjIsNi42IDIuMDksMS45IDcuMTksMC4zMSA0Ljg0LDIuNSAyLjQxLDQuNzIgMy44MSwwLjQxIGgzLjc4IGwwLjc1LDIuMTYgMS43OCwxIDAuMzgsMi4zMSAtMS42OSwzLjM3IC0wLjQ0LDMuMzggLTIuMTksMC40IC0yLjI1LC0yLjE1IC0yLjUzLDAuMSAtMy41OSwzLjUgLTEuNDcsLTAuMSAtMS4yOCwtMi41MyAtMS44MSwtMi4yMiBoLTIuMjIgbC01LjY2LDMuMjIgLTEuOTcsMy42OCAwLjQ0LDMuNDQgLTEuNjksMi45NyAtMi40MywtMC4xMiAtMi4zNSwwLjU2IC0zLjg0LC0wLjYgLTEuMTMsLTEuNSAtOC4zNCwtOS4xOCAtMS4zNCwtMy4yMiAtNC4wNCwtMC4xIC00LjM0LDMuNDYgLTEuOTcsLTEuNSAtMi40NywtMC40IC00LjY4LC0yLjk0IC0yLjQ3LC0wLjk3IC0zLjUzLDEuMDMgLTIuNDcsLTAuODEgLTQuMTksMC43OCAtMy4zMSwtMS4xMiAtNS4yNSwxLjUgLTQuNDQsMi45NyAtMC4zNCwyLjIxIDEuNDYsMi4yMiAtMS4yNSwyLjM1IC02Ljc1LDIuMDMgLTAuNDMsMi4wMyAwLjksMS4wOSAwLjEzLDMgLTEuODUsMS44MiAtMC41OSwzLjE1IC04LjM0LDExLjE2IC0xLjM4LDAuODEgLTQuNjUsLTIuODQgLTIuMjIsMC4xIC0xLjk0LDEuNTkgLTIuNjMsLTAuMzEgLTMuOTYsLTMgLTQuNDEsLTAuOTQgLTEuNjMsLTYuOTMgLTIuNDYsLTAuNjkgLTUuNiwtNC4wMyAtMS45LC0zLjY2IC0zLjU0LC0xLjg0IC03Ljg0LC0wLjYgLTEuNDcsLTAuNzUgLTEzLjY5LC0wLjM3IC00LjU2LC0yLjg4IC01LjMxLDAuMTYgLTEuNDcsLTIuMzQgLTIuMzEsLTAuMSAtMi42OSwxLjQ3IC00Ljg0LC0xLjg3IC00LjMyLC00LjU0IC01LjA2LC0yLjc4IC0zLjc1LC0wLjMxIC0zLjQsLTEuNzUgLTMuOTEsLTAuODQgLTIuNzUsLTEuNjkgLTksLTAuODQgLTEuOTQsLTUuOTQgLTEuNzgsLTMuNzIgLTIuOTcsLTQgLTAuNzgsLTQuNzggLTMuNjYsLTQuNjMgLTEuMzcsLTIuODcgLTAuNjMsLTIuNTMgMC45NCwtMy4wMyAtMS40NywtMS40MSAtMC4zNCwtMi41IDAuNzUsLTEuOTEgNS4xNiwtMC4zNCAxLjM0LC0zLjUgLTEuNjksLTIuMzEgMi4zOCwtNy44OCAyLjcyLC00LjUzIDAuNCwtNS4xMiAtMS4wOSwtMS42NiAtNC4zMSwtMC44MSAwLjE4LC0xLjYzIDQuOTcsLTIuNHoiLz4KCTxwYXRoCiAgICAgICBpZD0icFhKIgogICAgICAgZD0ibTI4Ni4yNSwxMzMuODcgLTAuNjMsMy40NCAtMS44MSwzLjMxIDMuMzEsNC42OSAtMC4xMiwzLjEzIDcuMDYsNC43NSA0LjMxLDEwIDUuMTMsMC44MSAyLjYyLC0xLjY5IDUuNjksNS44OCAzLjM4LC0wLjQ0IDQuNTYsNy43NSAyLDguNjkgNS44MSwxMS4wNiAtMC44MSw1LjA2IC0yLjU2LDMuODEgMS41LDUuODIgLTYuNzUsOS44MSAtMC4zOCw2LjUgMi4xMywyLjI1IDE5LjY4LDcuMTkgMTMuNDQsMC41NiA4LDIuNDQgNi44MSw2LjYyIDkuMTksNS42MyAyLjUsMi44NyA0LjU2LDIgNS4zOCwwLjg4IC0wLjk0LDMuNzUgMy41NiwyLjQzIDUuMzgsMTggNiw3LjMyIDAuOTQsMy4xMiAtMi4zOCw2LjE5IDAuOTksNC4wNSAtNS42MSw0LjY4IC04LjU3LDEuMDIgLTMuNSwyLjQzIC00LjksMS42NCAtNi42NywzLjMxIC0zLjgxLDQuNDcgLTYuODksNC43NyAtNi40NSw2LjU4IC0xLjUsMy40NSAtNC40NywzLjI3IC03LjMzLC0wLjQ0IC0yLjA0LDkuNTQgLTAuMzUsMTIuNiAtMS40MSw1LjEzIC00LjU2LDMuMzYgLTMuMzEsLTEuMzMgLTYuMDYsMyAtMTIuNTUsMS45NSAtMTEuOTcsMC4zMSAtOC40LDUuMjYgMC4xLDEyLjgxIDEzLjU3LDEwLjQ4IDAuODMsMS4zMiAtMi42LDIuMzUgMC4yMiwzLjg0IC0yLjQzLDEuOSAtMy4yMywxLjExIC0zLjQ5LDIuNDcgMS4zNyw2LjMyIDQuNiwwLjQ5IDAuODQsMC44OCAtMC42MiwxLjgxIC01LjA4LDEuMjQgLTQuMTEsMi4wMyAtMy43MiwwLjMxIC03LjIsLTMuNzUgLTUuODMsLTAuMzYgLTYuMDYsMC41MyAtNi42NywtMy45NyAtMi4zNCwtMC40IC02Ljc3LC00LjIgLTYuNjMsLTEuNSAtNy45OSwtMC41OCAtNS40OCwzLjEgLTEwLjA4LC0wLjEgLTcuMDcsMS4yMyAtMTIuNDIsNy4xNiAtMS40NiwwLjIzIC02Ljg1LC0yLjIxIC0xOC4yNSw0Ljg2IC0yLjMsLTEuNjQgLTYuMTQsLTAuNTMgLTYuODUsLTYuMTQgLTMuOTQsLTAuNTggLTIuNTEsLTEuNzIgLTUuNzEsMC4yMiAtMi41MSwtMi4yMSAtMi40NCwwLjEzIC00LjUsMS45OSAtNC42NCw2Ljg1IC01LjQ4LDAuOCAtMi45NiwtNC4zOCAtNC43OCwtMS44NSAtMi41NiwwLjkzIC04LjQ5LC0zLjk4IC0yLjgyLC0yLjkyIC0zLjMyLDUuMTcgLTMuODQsMi43OSB2Mi44NyBsLTMuMDUsMC41NyAwLjYyLDQuODYgLTQuODE4LDUuNCAtNS4xNzEsLTIuMzkgLTMuMTM4LDAuNjIgLTIuNDc0LC0wLjc1IC0zLjQwMywwLjYyIC0yLjA3NywtMS4zMyAtMi44NzMsLTMuOCAtNC44MTcsLTIuMyAtMS4wMTcsLTIuMDMgLTAuMDksLTMuNzYgLTAuNzk2LC0yLjI1IDAuMzEsLTIuOTYgLTEuMjgyLC00LjgyIDIuNDMxLC01LjQ4IC0zLjUzNiwwLjg4IC0xMS43NTUsLTQuNTkgLTcuMjkyLC01LjQ0IC0yLjI5OSwtMy43NiAtNS4wODIsLTEuMzcgLTIuOTE3LC03LjA3IDEuNTAzLC0zLjU4IC0wLjM5OCwtOS4wNiAtMi40MywtMi44MiAtMy40OTIsLTAuMzEgLTAuODQsLTQuMzggLTMuOTc3LC0yLjY1IC0zLjQ5MSwtMC4yNyAtNi4yMzIsLTMuNTggLTAuMzUzLC0zLjc1IDExLjg4OCwwLjEgMC42NjMsLTIuNjEgLTEuNTAzLC0zLjU0IDEuNzY4LC05LjE5IC0xLjE5MywtNC41MSAyLjM0MiwtNC40NiAwLjEzMywtMS45OSAtNi45ODMsLTUuMzUgLTQuOTk0LC0wLjkyIC0yLjQ3NSwyLjA3IC0yLjEyMSwtNC4yOCAwLjc1MSwtNC42IDIuNTE5LC0xLjgxIC0xLjk0NCwtNS40OCAxLjUwMiwtNC44NiA0LjUwOCwtMC40NSAxLjU0NywtMi45MSAtMC40ODYsLTMuNDEgMS40MTQsLTMgNC4yODcsLTIuMjEgNC44NjEsMS4wNiAyLjY5NiwtMS41NSA1LjcwMSwtMC45MiAxLjI4MiwtMy41NCA2LjE4NywzIDYuMDEsLTIuMTIgMS4wNjEsMy40NSB2My42NyBsMi4yOTgsMS4wNiAzLjQ5MSwtMS40MSA0LjQyLDEuNjMgNC4zMzEsLTIuNjUgNy40MjQsLTkuMDYgMy40OTIsMC4xOCA3LjAyNywyLjk2IDYuOTM4LDAuMjYgMi43ODQsMS4yNCA4LjgsLTcuMiAxMy41NiwtNC4yNSA0LjY5LC0wLjEzIDUuNywtMS44NiAyLjIxLC0xLjE0IDMuOCwwLjcgMS42OCwtMC45NyAxLjY4LC04Ljk3IC0wLjIyLC0zLjAxIDIuNjksLTMuNjIgMy45NCwtMC44NCAtMC43MSwtMy40IDYuNSwtMi4xMiAtMC4xLC0xLjk1IC0wLjkzLC0xLjk0IDEuNDEsLTQuMzMgLTIuOTYsLTEzLjg0IDEuMDYsLTEuODEgMC42MiwtNy4wMyAyLjgzLC00LjE1IC0zLjA5LC0yLjcgLTMuNjcsLTAuNjEgLTAuOTcsLTEuNTEgMy4zNiwtMi41MiAxNS4zMywtMC43IDEwLjUyLC0xLjMzIDMuNDksNC45NSA1LjU3LC0wLjMxIDIuODcsMi4zNCAyLjY1LC0wLjkyIDEuMjQsLTQuODcgLTQuMTEsLTMuNzUgNC43MywtOS41NSAwLjkzLC0yLjg3IDEwLjAzLC0xNi4xOCAyLjIxLC01Ljg3IDMuMTQsMC43OSA4Ljk3LDYuNTQgMTEsMS4yOCAyLjc0LDQuMjUgMC45OCwtMC4xIDUuMDMsLTIuNTcgNS40NCwtMC41NyAzLjY3LC00LjM4IC0xLjczLC01LjUyIDEuMiwtOS41IDQuNzMsLTEwLjE3IDYuNjMsMS4wMiA3LjYsLTMuMDkgMi4zLC00LjQ3IDAuNDgsLTUuMTcgNi42NywtMS40MSA0LjE2LDIuMyAyLjU2LC0xLjMzeiIvPgoJPHBhdGgKICAgICAgIGlkPSJwWEpkIgoJICAgc3R5bGU9InN0cm9rZTpub25lIgoJICAgZD0ibTcwLjI5MSw0MDMuMDYgMi40OTcsLTIuMzIgNS4xNzEsLTEuOTYgMC45MDYsLTAuNjQgNC4xMzIsLTAuNzUgMC45NSwtMS4xOCAxLjM0OCwtMC44MSAyLjU0MSwyLjAzIDMuNDY5LC0wLjYgMi4yNTQsMC4zMyAyLjUxOSwtMC4zNyAwLjkyOCwyLjk2IDAuOTk0LDAuNjYgMi41MiwtMC4xIC0wLjgsMi41NyAwLjUzLDEuNzkgMS44NCwwLjkzIDAuMjIsMS43IDAuNzcsMC40OCAyLjEyLC0wLjU1IDAuMSwzLjAzIDAuMTYsMS4xOSAwLjkyLDAuNjYgMi4yMSwtMi4yNSAxLjA2LC0wLjI5IDAuNTMsMS4yNiAtMy42Miw1LjA0IC0zLjYyLDIuOTIgLTAuMjUsMi45MSAtMi45NiwwLjQ3IDAuNjcsNC44MiAtNC44MDcsNS41NiAtNS4xMjUsLTIuMzEgLTMuMzEzLDAuNTYgLTIsLTAuOTQgLTMuNDM3LDAuNTcgLTIuNjg4LC0xLjU3IC0yLjE4NywtMyAtNS4xODgsLTIuOTMgLTEuMDYyLC0xLjg4IDAuMDYsLTIuMzcgLTAuNSwtNi40NCAtMS4zMTIsLTUuMDZ6Ii8+CiAgICA8cGF0aAogICAgICAgaWQ9InBYWiIKICAgICAgIGQ9Im05NS40MTUsNDMyLjY3IDQuOTA1LC01LjQzIC0wLjc1LC00Ljk1IDMuMTQsLTAuNjYgMC4xNywtMi42MSAzLjgsLTMuMjMgMi41NywtMy44OSAwLjM1LC0xLjE1IDMuMzYsMy4wMSA4LjMxLDQuMTEgMi45NiwtMC44OCA0LjU1LDEuNzIgMi43LDQuMzcgNS4zOSwtMC44NCA0LjMzLC02LjQ1IDUuMTMsLTIuMjEgaDIuMjEgbDIuODcsMi4wOCA1LjI2LC0wLjE4IDIuNjksMS42NCA0LjAzLDAuNTcgNi42Nyw1Ljg4IDYuMzIsMC43NSAyLjI1LDEuNSAxNS41NiwtMy42NiAyLjM5LC0xLjAyIDcuMzMsMi4xMiAxLjg2LC0wLjQ0IDExLjUzLC02Ljk4IDYuNzYsLTEuMiAxMC42NiwwLjE4IDUuMTIsLTIuOTYgNy43OCwwLjM1IDcuMDcsMS42NCA2Ljc2LDQuMDYgMi40OCwwLjU4IDYuNDksMy44OSA2LjEsLTAuNjcgMy45OCwwLjQgLTAuMzUsMy42NyAtNC44NiwyLjEyIC0wLjE0LDEuNzcgNC4yNSwwLjk3IDEuMDYsMS40NiAtMC4xNCw1LjA4IC0yLjc0LDQuMjQgLTIuNTIsOC4wOSAxLjY0LDIuMzQgLTEuMTUsMy41NCAtNS4wNCwwLjQ0IC0xLjE1LDEuNTUgMC42MiwzIDEuNDIsMS4yNCAtMS4yNCwzLjU4IDAuNjYsMS45OSAzLjI3LDUuMyAyLjA4LDIuMzUgMC42Niw0LjQ2IDMuNTQsNC45IDMuMDksOS4wMiA4Ljk3LDAuODQgMi43OSwxLjcyIDMuNzUsMC43MSAzLjIzLDEuNzIgNC4yOSwwLjQgNC41OSwyLjUyIDQuNiw1IDQuOTksMS42MyAyLjc0LC0xLjQxIDIuNDgsMC4xNyAxLjI4LDIuMjYgNS4wOCwwLjEgNSwyLjc0IDEzLjE3LDAuMjIgMS43MiwwLjg4IDcuODIsMC41NyAzLjQ5LDEuNzcgMS45NSwzLjU0IDUuMTcsMy44NCAyLjgzLDEuMDYgMS41NCw2LjkgNC4wMywwLjg4IDQuMTUsMi45MiAyLjY1LDAuNDQgMi4zOSwtMS44MSAyLjA3LDAuMjIgNC41NiwyLjcgMS40MSwtMC42NyA4LjQsLTExLjQ5IDAuMzUsLTIuNjUgMi4wMywtMS45NCAtMC4xLC0zLjA1IC0wLjkzLC0xLjI5IDAuNDQsLTIuMTIgMy43MSwtMC45MiAyLjg3LDMuMzUgMy4xNCwyLjE3IDUuMjYsMS40MSA0LjIsMy4xNCAwLjQ5LDMuOCAyLjc0LDMuMTggMC4zOSw2LjEgMi45MiwzLjk0IDQuNDYsNC40MiAtMC4zMSwxLjU0IC0yLjM4LDEuNzcgLTEuNzMsMC4xMyAwLjM2LDIuMzUgMi41MiwzIDEuMDYsNC41MSAxLjU5LDEuNSAwLjM1LDEyLjk5IDEuMDYsMi43OSAtMC4yMiw0LjA2IC0wLjYyLDEuMTEgMS4wMiwxMS43MSAtMS45LC0wLjEzIC0xLjY4LDEuMzcgLTAuMjYsMy4yMiAtMS45OSwyLjQzIC0yLjg4LDAuODkgMC41MywzLjQ5IC0xLjI4LDIuNjUgMC42NywxLjQyIC0wLjE0LDUuNTIgLTMuNTgsMS42OCAtMi43OCwtMS44NiAtNC4yLDMuNTQgLTEuOSwtMi44NyAtMy4wMSwtMC41OCAtMi4zOCwtMy40OSAtMi41NiwtMC40OSAtNS42Niw1LjY2IC0zLjcxLC0zLjY3IC0yLjYxLDEuMDYgLTIuMDgsLTEuMDEgLTIuMTIsMC4xMyAtMy4zMSwtMi40MyAtMy45OCwxLjU1IC0xLjczLC0xLjIgMS42LC0zLjI3IDQuNTUsLTMuNTggLTAuMTQsLTEuNDYgLTIuNiwtNC44NiAtMi43LDAuOCAtMi4zOCwyLjEyIC0wLjg0LC0zLjk4IDMuNTgsLTEuNTkgMS4xNCwtMi4yMSAtMy4yNywtMC44OCAtMi4yMSwtMy40NSAtOS41LDMuOCAtMS45LDMuNDkgLTEuNjMsMC44NCAtMy4xNCwtMC41NyAtNC4xNiwtMi4yNiAtNC4zNywtMS4zNyAtMi4wOCwtMy4zMSAtMi4zLDEuNzIgLTIuOTYsMS4xNSAtNS4yMSwzLjg1IC0yLjQzLDAuMzkgMC4xMywxLjk5IC03LjIsMy43NiAtNy4wMywtMC4yNyAtMi4zLDAuOTMgLTEuNSw0LjQyIC00LjQyLDIuOTIgLTQuODIsMy4xOCAtMC4xNywzLjIzIC00LjY5LDEuODUgLTYuOTQsMC4xIC0xLjcyLDAuOTcgLTIuNjEsLTAuMTcgLTguNywtNC4xMSAtMy40MSwtMi44MyAtNy41MSwtMC4xMyAtNC42NCwtMS4zNyAtNC42OSwtNS44OCAtNi42NywtMi4wNCAtMTAuNDMsNC4zNCAtNi44OSw1Ljk2IC00LjAyLDUuNTMgLTIuOTcsMS42OCAtMi4wNywtMy41IDMuMzEsLTYuOTMgLTAuNjIsLTMuNDEgLTIuOTEsLTIuNzQgLTIuNzksMC40IC03LjkxLDIuMzQgLTkuMzIsMS41NSAtMy44LC0yLjMgLTMuODksMS40NiAtMTAuNzksLTguODQgLTQuODYsMi43OSAtMi41NiwtMC4zMSAtMi40MywtMy45NCAtNC4xNiwyLjYxIC0xLjU0LC00LjMzIC02LjEsLTQuOTkgLTUuODgsLTAuNzYgLTEuNDYsLTQuOTUgMS40NiwtMS45NCAtMS4xLC0xLjQ2IC00LjYsMS4xMSAtNS4yMiwtNC4xNiAtNy4yNCwtMy4zMSAwLjc5LC02LjU5IC0xLjA2LC00LjM3IC0yLjUyLC0xLjExIC0zLjQsNC40NyAtMS45OSwwLjQ0IC00LjI0LC00LjkxIC0wLjQ0LC01LjcgLTYuMTUsLTYuNSAtMi4yNSwtMS4wNiAtMy43MSwtNS44MyAtNC40MiwtMS44MSAtMy40OSwtNC4xMSAtNi41LC0zLjM2IC0wLjg4LC0zLjg5IC0xMC44OCw3LjA3IC0xLjU5LC01LjIxIC0zLjEzNSwtMi4xNyAtMi4xMjEsLTMuNTggLTcuMjkyLC02LjE0IDEuODEyLC0xLjc3IC0xLjI4MiwtMS40NiAtMS45ODksLTAuNDggLTMuMTgyLC00LjQyIC0zLjMxNCwtMS4zMyAtMy42NjksLTAuMjIgLTMuNTM1LC00LjY0IC0yLjE2NiwtNy45MSAtNS42NTYsMS42MyAtMC42NjMsLTMuNjYgMS43NjcsLTMuMzYgLTAuODgzLC0zLjE0IDEuOTg4LC01LjYxIC0zLjgsLTYuODUgMC43NTEsLTIuMTIgLTAuMjIxLC0yLjQ0IDEuMDYxLC0xLjcyIDQuODE3LDAuMTMgMC4zMDksMy42MyAyLjU2MywyLjQ3IDUuMzA0LC0xLjU5IDMuOTc3LC0wLjg0IDIuNjUyLC0zLjg0IC0xLjU5MSwtNC42IDEuMTQ5LC0zLjUzIC01Ljc0NSwtNC42OSAtMS4zNywtMy40NSAtMC42MzEsLTEuNzcgMS4zMjYsLTUuMDUgdi0zLjAyIGwtMC4zNzksLTMuOTEgMC4zNzksLTEuMzkgMS4zMjYsLTAuNDQgMi42NTEsLTAuMzggMS41MTUsLTEuMzMgMC4zNzksLTEuODMgLTAuNTY4LC0xLjU4IDMuMzM3LC0wLjY4IDIuMjMyLDAuNzcgMy4wNzEsLTAuNDQgMi43MDcsMS4yNDV6Ii8+CiAgICA8ZyBpZD0icFhaZCIgc3R5bGU9InN0cm9rZTpub25lIj4KCQk8cGF0aAoJCSAgIGlkPSJwWFpkMSIKCQkgICBkPSJtMTAyLjk5LDQyMS44NSB2LTIuODYgbDMuNjgsLTIuNyAzLjM1LC01LjEzIDEuNjksMS42MyAtMC43MywwLjg4IC0xLjY1LDMuNjcgLTEuNDMsMS4wNCAtMS44Nyw1IC0zLjUyLDQuOTMgLTEuOTgsLTAuOCAtMC42NCwtNC45N3oiLz4KCQk8cGF0aAoJCSAgIGlkPSJwWFpkMiIKCQkgICBkPSJtNzUuMTg4LDQ0OS45NiAtMC42MzEsLTEuNzcgMS44MjYsLTUuMDUgdi0xLjUyIGwtMC4zNzksLTMuOTEgMC4zNzksLTEuMzkgMS4zMjYsLTAuNDQgMi42NTEsLTAuMzggMS41MTUsLTEuMzMgMC4zNzksLTEuODMgLTAuNTY4LC0xLjU4IDMuMzM3LC0wLjY4IDIuMjMyLDAuNzcgMy4wNzEsLTAuNDQgMi43MDcsMS4yNDUgLTAuMzA5LDQuMzggLTAuNDg2LDEuMjMgLTAuNzA4LC0wLjEzIC0wLjEzMiwxLjY0IC0wLjY2MywwLjcgLTEuNjc5LDEuMTEgLTQuNjQxLC0xLjE1IC0xLjQxNCwwLjQ0IC0xLjcyNCwtMC44OCAtMS40NTgsMC42MiAtMC4xNzcsMS41IDAuMDQsMi4zNCAwLjk3MywxLjU1IC0wLjIyMSwyLjM0IC0yLjI5OCwtMC4yMiAtMC40ODYsMS45IC0wLjY2MywyLjU2eiIvPgoJPC9nPgoJPHBhdGgKICAgICAgIGlkPSJwU0MiCiAgICAgICBkPSJtNDEwLjc4LDUxMS40NyAyLjM0LC0wLjYgMSwtMi41OSAtMS4zMSwtMi4xMiAwLjQxLC0xLjk3IDQuODEsLTMuNSA0LjkxLC0xLjE5IDIuOSwxLjAzIDQuNiwtMC43NSAyLjUsMC43OCA0LjI1LC0wLjg3IDYuNjIsMy43NSAyLjAzLDAuNDcgMS45NywxLjQgNC41MywtMy4zNCBoMy45NyBsMS40NCwzLjMxIDEwLjA2LDEwLjcyIDMuNDcsMC42MiAyLC0wLjc4IDIuMjUsMC41NiAyLjAzLC0zLjI1IC0wLjIyLC0zLjU2IDEuODIsLTMuNDQgNS41MywtMy40MyAyLjQsMC4zNyAxLjc1LDEuOTcgMS4yMiwyLjUgaDEuMSBsMy45NiwtMy40MSBoMi43NSBsMS45MSwyLjA3IDIuMTMsLTAuMzUgMC41MywtMy4xNSAxLjksLTMuMzUgLTAuNDcsLTIuNDcgLTIuMDYsLTEuNSAtMS41OSwtNC44MSAtMC4yMiwtMi41OSAzLjAzLC0yLjMxIDQuNzIsLTEuMjUgNC4zNCwtMi40NCAxLjg4LC0wLjI4IDIuOSwxLjU2IC0wLjQ2LDUuMDYgMS41NiwzLjQ3IDQuMDMsMS4yMiAxLjQ3LDQuNDEgNi43NSw1LjkzIDIuMjIsMC4yOCAzLjU2LC0zLjAzIGgxLjMxIGwyLjE5LDUuMzUgMS4wNiwxLjg3IC0wLjE1LDMuOTcgMy42NSwzLjk0IDQuMzEsMC40IDEuNSwxLjA0IDEuMSwtMC42NiAyLjksMS43MiA1LjQ0LC0yLjY5IDAuMjIsLTMuOTcgMS4zOCwtMS4yNSA5LjI1LDAuMzggMS41NiwxLjA2IDAuNSwzLjE2IDIuMDksMS4xNSA4LjY2LC0xLjk0IDIuMjUsLTEuMDMgNC4zNCwwLjI1IDEuMzgsNC4wNyAxLjI4LDEuMTggMi4xNSwwLjEgMS42NiwtMS4yNSAyLjM0LDIuMzEgMi45NCwwLjUgNS4xNiw0LjAzIGgwLjk0IGw0LjksLTIuMjggMy45MSwtMC4zNCAzLjA2LDEuODcgLTAuMTIsMS4xOSAwLjM3LDIuMDYgLTIuMzcsMi44MSAwLjEsMS4xMyAzLjk0LDIuNjIgMC4xLDAuODUgLTAuNSwyLjA5IC0yLjcyLDEuODEgLTIuMjIsMyAtNS4yMiwxMi4xMyAtMS45MywxLjUgLTUuMTYsLTAuMzggLTEuNjksMS4wMyAtMS4xMiw2LjcyIC02LjIyLDkuMzggLTIuMzgsMC42OSAtNC4zNywtMC45MSAtNC40NCwtNS4zNCAtMS4xNiwwLjU2IC0xLjc1LDEuNSAtMi4yOCwwLjE1IC00LjU5LC0yLjg0IC0yLjYzLC0xLjAzIC0yLjM3LDAuNjYgLTIuODgsNSAyLjkxLDMuODQgLTAuMTYsMS4yMiAtMC42OCwwLjc1IC05LjAzLDcuNCA1LDYuMjkgMy4zNywwLjUzIDIuMjUsNi4zNyA3LjEzLDEuMTkgMi4yNSwyLjUgMC45LDMuNjYgLTAuNCwyLjY4IC02LjE5LC00LjgxIC0xLjI4LDAuNTMgLTAuNjksMi42NiAtMi42OSwwLjI4IC0xLjU5LDIuMjIgMC40LDMuODQgNy4xMywzLjAzIDIuODcsMC42MyAxLjI5LDMuNDQgMS45LDMuMTggLTEuMDYsMS41NyBoLTQgbC03LjEzLDIuNjYgLTIuOSwtMi4xOSAtNC42OSwwLjY5IC0xLjIyLC0xLjE5IDAuMzgsLTMuODQgLTEuMSwtMC4yMiAtMi4wNiwtMi4xNiAtMi4xMiwwLjM4IC0yLjA3LDQuMTIgLTQuNjUsMC45MSAtMy4zNSwtMC42MiAtMi41MywtMi4zNSAxLjE5LC0xLjY1IC0wLjMxLC0zLjY5IC0yLjQxLC0xLjY2IC0wLjY5LC00IDEuNTMsLTEuNzUgLTEuNzgsLTEuODEgLTMuNjgsMS40NCAtMy42LC0wLjc1IC0xLjcyLDIuODQgMS41LDMuNzIgLTEuMjIsMS42NiAtNS4wMywwLjg3IC0xLjQsMy45NCAxLjIyLDIuMDMgLTAuODgsNC4xOSAtNC44NCw0LjU2IC0yLjcyLDMuMjUgLTEuODUsMC4yMiAtMS4yMSwxLjM3IC0wLjg1LDEwLjE5IDIuODgsNC4xNiAtMC4zOCw2LjMxIC0wLjI4LDEgLTYuMzcsMy42OSAtMS41NywtMyAtMi4wMywwLjI4IC02Ljc1LDQuMTUgLTAuODcsMS41NCAtNi4xMywtMC4yMiAtMS43MiwtMi42OSAtMi4zNywtMC42NiAtMC4zOCwtNS40NyAtMi43MiwtMS45IDAuNjYsLTMuNjYgLTEuMTYsLTAuNzUgLTEuMjgsLTIuNjkgLTIuMzEsLTEuODEgLTAuNSwtNS43MiAtNC43MiwtNC42MiAtMC41LC0zLjQ0IC02LjA2LC02Ljg3IC0zLjA2LC0wLjEgLTYuMTksLTIuMTUgLTAuNTYsLTMuNjYgLTEuMzUsLTMuMDkgMS43NSwtMi42IHYtMi44NCBsLTIsLTEuMDYgLTIuNzEsMC41NiAtNS44Miw1LjY5IC0xLjc4LC0wLjMyIC0yLjU2LDIuNTMgLTMuNDEsLTQuNzEgLTIuNDcsLTMxLjE2IDAuNjYsLTEuNzIgdi0zLjcyIGwtMC45NCwtMi4zNCAtMC4zNCwtMTMuMjUgLTEuODEsLTEuMzUgLTAuOTcsLTQuNSAtMi4zNSwtMi44NCAtMC4zNywtMi4zNCAxLjUzLC0wLjE5IDIuNjMsLTEuODggMC4xLC0xLjQ2IC00LjMxLC00LjEzIC0yLjg1LC00LjU2IC0wLjQzLC01Ljc4IC0yLjcyLC0zLjA3IC0wLjUsLTMuODEgLTQuMjgsLTMuMzQgLTUuMzIsLTEuMjUgLTMuMjUsLTIuMzF6Ii8+Cgk8cGF0aAogICAgICAgaWQ9InBDUSIKICAgICAgIGQ9Im01NzkuNjEsNjA2LjkgMS42OCwtMC45NyAxLjA4LC0yLjM3IC0wLjMyLC0yLjU1IDIuMTksMS45NCAtMC4yMiwyLjU1IDIuNzcsMS41NCAxLjc5LC0xLjc5IDEuMzcsLTMuOTkgMS41NCwtMi42OSAyLjkxLC0xLjI2IDIuOCwxLjMgMi4xNSwtMC4yMiAyLjU4LC0yLjAxIC0xLjYxLC00LjA5IDAuNzIsLTIuNTEgMS4xMSwtMC4xNSAyLjY2LDEuNDQgMi4wMSwwLjMyIDEuMDcsMi40OCAxLjYyLDAuNjQgMi4zMywtMS45MyA1LjEsMC4xIDEuOTQsNS4yMSAtMC42MSwyLjMzIDEuNTQsMS4xNSAzLjU5LDAuOTMgMC4yMiwzLjc3IDAuNzksMi4zNyAxLjI1LC0xLjE1IC0wLjQ2LC0xLjkgMC43NSwtMC4zMiAxLjI5LDEuMzMgLTAuMjksMi4zMyAxLjU4LDEuNDQgNC4wMiwwLjIxIDEuOTQsLTIuNjYgdi0yLjE5IGwxLjgzLC0xLjE4IC0wLjksLTEzLjY0IC0yLjgsLTEuMjYgLTQuMjcsLTUuMTcgLTAuMzYsLTQuNjMgLTIuNjIsLTAuNzkgLTMuMjcsLTMuNTkgLTIuMTksMS43NiAxLjA4LC0xMC4zIC0zLjA1LC00LjIgNC4xMywtMy4wMiAyLjkxLDAuMSA0LjE2LC0xLjgzIDQuMzEsMC4yOCA0Ljg0LC0xLjU4IDUuNzUsLTYuMjggMy44LDEuNTEgMS40NywtMy4wOSAtMC42OCwtMy45NSAxLjAxLC0yLjI2IC0wLjc5LC0zLjU1IC0yLjM3LC0yLjkxIC0yLjE2LC0xLjQ0IC0wLjEsLTQuNDggLTUuNzEsLTAuMTggLTYuOTMsMS4yNSAtMS42MSwtMC4zOSAtMC44MywtMy4yIC01LjAzLC0wLjUzIC00LjczLC0zLjA5IC0wLjY1LDAuNTQgMC41NywyLjM3IC0yLjU0LDMuMDEgMC4yMSwwLjk0IDMuODQsMi44NyAwLjQsMC45MyAtMC43NiwxLjggLTIuODcsMS45MyAtMi4yMiwzLjMxIC00Ljg5LDExLjM4IC0yLjIyLDEuNzIgLTUuMTcsLTAuMjUgLTEuNjIsMC44MiAtMSw2Ljk3IC02LjUzLDkuMjIgLTIuMywwLjg2IC00LjM1LC0xLjE0IC00LjA1LC01LjE0IC0xLjMzLDAuNDMgLTIuMDgsMS42NSBoLTEuODMgbC01LjAzLC0zLjE1IC0yLjc2LC0wLjcyIC0yLjE2LDAuOTMgLTIuNCwzLjk1IHYxLjM2IGwyLjMzLDIuNTIgMC4zNiwxLjYxIC0xLjE4LDEuNCAtOC4zNyw2LjY4IHYwLjkgbDQuNDksNS45NSAzLjE5LDAuMjkgMS4yMiwxLjg3IDEuMzMsNC43NyA3LjE1LDEuMDggMi4zMywyLjQ0IDAuODYsMy44NCAtMC4yNSwyLjczeiIvPgoJPHBhdGgKICAgICAgIGlkPSJwR1oiCiAgICAgICBkPSJtNTc5LjQ1LDYwNi40NSAwLjU0LDAuMTEgMS42NSwtMC43MiAxLjE4LC0yLjI2IC0wLjY0LC0zLjA5IDIuNCwyLjA4IC0wLjM2LDIuODQgMi41NSwxLjM4IDIuMywtMS44MyAxLjAyLC00LjIyIDEuNjQsLTIuNDQgMi44MywtMS4xOSAzLjA0LDEuNDkgMi4xMSwtMC4zNyAyLjI1LC0xLjk0IC0xLjMzLC00LjI3IDAuODIsLTIuNDYgMS4yNCwwLjEyIDIuMTksMS4yOCAyLjA3LDAuMzQgMS4yNCwyLjU4IDEuNDksMC40OSAyLjMxLC0xLjg5IDUuMDEsMC4xNyAxLjY5LDMuMjggMC4yOCwxLjk2IC0wLjMyLDIuMTkgMS41MSwxLjExIDMuNDgsMC43NSB2My45NSBsMS4wMiwyLjMgMS4yNSwtMS4wNiAtMC40NiwtMi4wMSBoMC43MiBsMS40OSwxLjE4IC0wLjQ0LDIuNDEgMS44NSwxLjM2IDMuNzUsMC4xIDEuNjcsLTIuNTMgMC4yNywtMi40NiAxLjg3LC0wLjY4IDEuMDIsMi42OCAxLjYsMS44MSAtMC40OCwyLjMxIDAuMzUsNC42MyAwLjcyLDMuNjggMi4wMywyLjM2IC0wLjQzLDIuMzUgLTEuNTMsMS4yMiAtMS4xMSwxLjkgLTMsMS4yNyAtNS44MSw1LjY5IDEuMiwyIDEuMzgsMC4zNSAzLjIsLTIuMzEgMi4zMSwtMC4xNiAxLjgsLTAuODEgMS45MiwwLjE2IDEuNiwxLjQ0IDAuNjYsNC44MSAtMC41NCwxLjE4IC0zLDIuNSAyLjA5LDIuNzggLTAuNDcsMS44OCAtMS40LDEuOTQgdjIuMDggbDMuMTcsNC40MiAwLjQ1LDIuMDEgLTMuOTcsNS45NiAtMy4xNCwtMC45OSAtMi41MSwxLjE3IHYxLjI5IGwxLjQyLDEuMjkgLTAuNTgsMS44MiAtNC40NSwwLjE4IC0xLjU5LDAuOTEgdjAgbC0xLjUxLDMuNjEgLTQuNjUsLTIuNzcgLTIuNzYsMS4zIC0xLjczLDIuMDggLTEuMTgsMy44NiAtMi45NSwwLjM3IC0xLjc1LDEuNDggLTQuNCwtMy40OSAtMi43NywwLjYzIC0yLjQ1LC0xLjkgLTAuOTQsLTIuOTQgLTEuMjQsLTAuNzQgLTQuMjUsMy44OCAtMS40NSwyLjk2IC0xLjczLDEuNTYgLTMuODYsMC4zNiAtNy4zNCw0LjcyIC0yLjYsMC43NCAtMC4xLDMuODUgLTQuMTUsMi43NSAtMS4yNSwtMS4yMiAtMi4zNCwtMC4xIC0xLjM2LC0xLjExIC00Ljc2LC0wLjQ3IC0xLjM2LC0yLjgyIC01LjU3LC0wLjY2IC0xLjI3LDAuNzcgLTEuODEsMy4xNiAtMi4yMSwwLjY2IC0yLjQxLDIuMTIgLTIuOSwtMC4xMiAtMi4wNywtMC45MiAwLjc0LC0yLjUxIDIuMzMsLTMuMzQgMC40OSwtNS40OSAtMi4yOCwtMi45OCAtMy4zOSwtMS40NyAtMi42MSwtNS44NCAzLjcyLC03LjY2IDAuMjUsLTQuOSAyLjk0LC0zLjQxIC01LjExLC02LjMyIC0xLjc0LDEuMDggaC0zLjg2IGwtMS44NywyLjUgLTEuNTIsMC4xNiAtMy43OSwtMC43IHYtMy4xMiBsLTEuMzMsLTIuMyAxLjI0LC0yLjY2IC0wLjUsLTEuODEgLTIuOTYsLTEuMzMgNS41NCwtNi44IDIuMDUsLTAuMjUgMy40NiwxLjg2IDMsLTIuNzIgMy43LDEuNjggaDcuMzIgbDIuMjUsLTEuMDQgMi44NywtMC41NiAzLjI1LC04LjEzIDQuNTksLTAuNyAzLjE2LDEuOTQgNy4xNiwtMi4zNyAzLjcsLTAuMSAxLjIsLTEuNDIgLTIuMzUsLTMuODkgLTAuOTIsLTMgLTMuMjMsLTAuNjEgLTYuNjIsLTIuODkgLTAuNjEsLTMuNzMgMS42LC0yLjA4IDIuNiwtMC41OCAwLjc1LC0yLjM3IDEuNjQsLTAuNTV6Ii8+Cgk8cGF0aAogICAgICAgaWQ9InBZTiIKICAgICAgIGQ9Im00MjAuMTYsNjE0LjcyIDMuNzgsLTMuNDEgMi42OCwxLjYzIDMuNjksLTEuNiAwLjMxLC01LjEyIC0wLjc4LC0xLjg1IDEuMTMsLTIuNzUgLTAuNSwtMy41NiAzLjA2LC0wLjQgMS45MSwtMi41NCAwLjE4LC0zLjAzIDEuNjMsLTEuNTkgaDEuOTcgbDEuNDcsMTkuMjUgMy40Myw0Ljk3IDIuNjMsLTIuNiAyLjAzLDAuMjkgNS41MywtNS42OSAyLjg1LC0wLjU2IDEuNzUsMC45IDAuMjEsMy4xMyAtMS41OSwyLjM0IDEuMjgsMy4yNSAwLjM4LDMuNDcgNi4yOCwyLjQ0IGgzLjE1IGw1Ljg4LDYuODQgMC41OSwzLjM4IDQuNTcsNC42OCAwLjUzLDUuNjMgMi40NywyLjAzIDEuMjEsMi41OSAxLjEsMC40NCAtMC42MywzLjk0IDIuNTMsMS44NCAwLjYsNS4zNSAyLjUzLDEuMDYgMS40NCwyLjI4IDUuODQsMC40MSAxLjQ3LC0xLjY2IDYuNjksLTQgMS42NSwtMC4yMiAxLjY2LDMgNi40NywtMy45MSAwLjU5LC0yLjA5IHYtNSBsLTIuNjksLTQuMTIgMC44NSwtMTAuMTkgMS4yOCwtMS43MiAxLjgxLC0wLjE5IDcuNTYsLTcuNjUgMC43MiwtNC4xNiAtMS4xNSwtMi4xOSAxLjY1LC0zLjY1IDQuODEsLTAuODkgMS4xOSwtMS42NiAtMS40MiwtNC4wMiAxLjU4LC0yLjU3IDMuNjQsMC42OCAzLjgxLC0xLjMzIDEuNzUsMS43MiAtMS41LDEuNTUgMC41NSw0LjAyIDIuNDQsMS42NCAwLjIsMy44MSAtMS4yLDEuNyAzLjExLDIuNTMgMy40LDAuNDEgNC4xNywtMC45NSAxLjk3LC0zLjggMi4yMiwtMC42MyAyLjA5LDIuMjEgMC44NiwwLjI1IC0wLjI2LDMuNzggMS4zNCwxLjIyIC0zLjE1LDguMTkgLTMuMTgsMC4yOSAtMi4xOCwxLjQ0IC0yLjg1LC0wLjM5IC00LjMzLDAuMjYgLTEuODIsLTEuMzQgLTIuMjgsLTAuMzQgLTIuNzEsMi44NCAtMy40LC0yLjI2IGgtMS4yNyBsLTYuMDUsNi4zNCB2MS4wNSBsMi44LDEuMDQgMC42OSwxLjc1IC0xLjU2LDIuODggMS41MywyLjIgMC4yLDMuMTMgMy42OSwwLjkzIDEuNjgsLTAuNjggMS4yMiwtMS45NCAzLjk2LC0wLjIzIDEuODIsLTEuMTkgNS4zLDYuMzEgLTIuOCwzLjM4IC0wLjI2LDQuODkgLTMuOTcsNy44MiAyLjY2LDUuNzQgMy40MiwxLjQ4IDIuMDUsMy4wMyAtMC40Nyw1Ljg2IC0yLjE4LDIuNzcgLTEuMzcsNS4zNyAyLjU1LDQuNTggMS4yNSwwLjg1IDAuODksLTIgMy4yMiwtMC4xMyAxLjI4LDAuNzIgMS43OSwtMS4wNSAyLjg1LDIuMzIgMC42Nyw0LjcxIDUuMjcsMi4wMiAyLjcxLC0yLjMzIDIuNzUsMS44OCAyLjE0LDAuNjcgMi42LC0wLjg1IDEuMywtMC41NyAzLjg3LDQuMzIgLTEuNDEsOC41NSAtMi4wNCwwLjQ5IC0yLjYzLC0wLjU4IC03LjQsNy40NyAtNC4zMiwtMS44OCAtOC44Miw2LjE2IDAuMTUsNC42MiAtMTAuNzMsMy44MyAtMi41NywtMi42MiAtMi44MiwyLjQ1IC0yLjE5LDUuMjMgLTYuNDUsLTYuNSAtMi40NCw0LjUyIC0zLjMzLC00LjM4IC03LjY5LDcuNjQgLTguNzgsLTYuODEgLTIuNDQsMC42NiAtMS4xNSwyLjc2IC01LjAzLDQuNDMgLTkuNjYsLTEuMDggLTIuOTIsNS42NyA0LjAxLDcuNyAwLjg5LDguMzIgLTEuMDcsNy40MiAtMi42OCwtMS4yOCAtNi44NCwwLjEyIC0zLjc1LC0xMS43MyAtNi4xNCwyLjIyIC00LjcyLDMuOTYgLTQuMjIsLTEuNjEgLTMuNDcsMi4wNyAtMi4yOSwtNS43MSAtMi42OSwtMi4yMSAwLjI1LC02LjI1IC0xNi4wNiwtMy4wOCAxLjU2LC01LjQyIDIuNTUsLTMuNTQgLTAuMzksLTUuMTUgMy40NiwtMy43OCAtMC42OCwtMy43MiAtOC4yOCwtMC4xIC0zLjM4LC0yLjkxIC0xLjA4LC04LjE5IC0yLjYyLC03LjMgMi42NSwtNC40OCAtNC45NSwwLjE5IC02LjIsLTEuNDIgLTYuMTcsMS4xNyAtNC41Miw0LjIyIC0zLjAzLDAuMjggdi0yLjYxIGwyLjMsLTQuNjYgLTAuNzIsLTMuOTggLTEuNTUsLTEuNTYgLTAuODUsLTQuNTUgMS4yMywtMy4yMiAzLjYyLC0xLjE5IC0wLjc5LC0yLjQgMi40OCwtNi40MyA1LjM2LC0xLjM2IDEuODksLTQuNzkgMy4xNiwtMC4zNiAzLjM2LC00Ljc4IDIuNDIsLTAuNjYgMS4yMywtMS42NyAtMS43NSwtMy42OSAyLjc0LC0zLjk3IDEuNTUsLTE1LjUgLTEuNCwtNS45OCAwLjg2LC0zLjUzIC0wLjIsLTQuMjQgLTQuMTcsLTIuNyAtMi41MiwyLjg3IC00LjE0LC05LjIzeiIvPgoJPHBhdGgKICAgICAgIGlkPSJwQkoiCiAgICAgICBkPSJtNzM2LjUzLDMyMy4zNiAtMS4xNSwtNC4wOSAyLjA5LDAuNzIgdi0xLjE1IGwxLjY1LC0yLjczIDIuNTgsLTAuNzEgNS44Miw1LjQ1IDIuMTUsMC42MSAxLjQsLTEuMzMgMC45NywwLjU0IDIuOCwtMC41IDAuODMsMS43MiAtMi4wMSwxLjg3IC0wLjU0LDIuNDggMC45MywyLjE5IDIuNTksMi40NyAtMi43LDMuNzQgLTIuNDQsMC4xNCAtMS40LDAuODYgLTEuODMsMC4xNSAtMi4yNiwxLjY4IDEuNDcsMS44MyAyLjQxLDEuOTEgMC4yOCwyLjE1IC0xLjc5LDIuMTIgLTQuMiwwLjQzIC0xLjM2LDEuMzYgLTAuMzYsMS42OSAtMS40OCwwLjM5IC0zLjMzLC0xLjcyIC03LjQ3LDEuNzIgLTQuMDYsLTIuNjUgLTEuNzYsLTMuMjMgMS4wOCwtNS4wNiAxLjgzLC0yLjc3IDIuOTgsLTEuMTEgMC41LC0zLjA1IC0xLjc5LC0yLjI2IDAuNjUsLTIuMTkgMi44LC0yLjE5IDEsLTEuMDF6Ii8+Cgk8cGF0aAogICAgICAgaWQ9InBUSiIKICAgICAgIGQ9Im03NTMuOCwzNDMuNzggMC4zNiwtMy42OSAtMC4yMiwtNS4zOSAyLjMsLTMuNDggMi4xOSwtMC4zNiAyLjgsMS4yMiAtMC4xOCwzLjA1IC0xLjA4LDEuMDggMC41NCwzLjUyIDIuMzcsMy4xOSAyLjA1LC0wLjIxIDEuMjIsMS4xMSAwLjYxLDIuNjkgMi40NywwLjQgMS4zLDEuNDcgLTAuMjksNC40IC0wLjk1LDAuMjIgLTQuMTQsMi44NSAtMS44MSw0LjQxIDAuNDIsNS41NiAtMi42MiwwLjk1IC01LjY5LC0yLjI3IC0yLjMsMC44NiAtMS45NywtMC40IC0yLjY2LC0zLjA5IC0wLjI5LC0xLjkzIDEuNDgsLTMuMzEgLTAuMSwtMi44IC0xLjIyLC0yLjA4IDAuNjUsLTMuODcgLTAuNTQsLTIuNDUgMS42NSwtMS44M3oiLz4KCTxnIGlkPSJwSEUiPgoJCTxwYXRoCgkJICAgaWQ9InBIRV8xIgoJCSAgIGQ9Im03OTguNzIsMzI5LjE2IC0yLjIyLC0xLjE2IC0wLjcyLC0zLjE2IC0yLjc1LC0xLjkgLTEuMjUsLTQuMSAtNS4zNCwtMC41OSAtMS41MywtMi4xNiAtMywwLjIyIC0zLjQ0LC0zLjc4IDIuMTIsLTIuMTIgLTAuMjgsLTIuNzUgMi40NywtMi42OSB2LTEuNzIgbC0xLjAzLC0wLjUzIC0yLjYzLDAuMSAtMS42MiwwLjg4IC04LjY2LC0wLjEzIC0xLjE1LC0xLjA5IC0wLjMyLC0zLjAzIC00LjIyLC00Ljc1IDAuOTQsLTIuMTMgLTAuNTMsLTIuOTQgLTQuMTIsLTMuMzQgLTEuODgsLTQuMTIgLTMuNzgsLTQuMzUgLTIuNTMsMC4zOCAtMy4yOCwyLjkgLTIuNzgsMC4xNiAtNC41NCwzLjI1IC0wLjEyLDEuNjIgMS4yNSwyLjc5IC0wLjEzLDQuMjggLTEuMTUsMS4yNSAtNC4zNSwwLjEgLTIuMjgsLTAuODEgLTQuMzEsNC4yMiAtMS40MSwwLjQzIC0yLjUsLTEuMDMgLTYuMTgsNC43MiAtMyw0LjA2IC00LjkxLDAuNSAtMS4xOSwtMS41IC0wLjI1LC03LjEyIC0yLjA5LC0zLjI1IC00LjMxLDAuMSAtMi40NCw0Ljg4IC0yLjEzLDIuNjUgLTAuMTUsNC44MSAtMy4yMiwzLjMyIC0wLjU2LDMuNjIgMS42NSwxLjk3IC0xLjc1LDIuOTEgMC40NywxLjI4IDEuNzUsMS4yOCA2LjEsOSAwLjYyLDMuMzEgMi40MSwxLjAzIDAuMTUsMS4wNyAtMi42MiwxLjgxIC0yLjgzLDAuOTEgLTEuMTcsMi42MSAxLjAyLDIuMDMgMS45NCwxLjA2IDMuMDMsMC4yOSAwLjk3LDEuMTcgMC42NCwzLjIgMi4wMSwxLjkgMC44NCwyLjE5IC0xLjEzLDMuMiAtMC40OCw0LjY5IC0yLjUsMS42MyAtNS40OCwxLjE4IC0yLjE2LDIuNTYgMC4yNCwxLjg4IDEuMywxLjIzIC0wLjE3LDEuMTggLTQuMTQsNC40MiAwLjM2LDYuMTQgMS45LDEuNDggMy4yLDEuMzkgMS4xOSwzLjI1IDUuNjgsNy41MyAtMy4zOCw3LjIzIC0wLjQ4LDMuMTQgLTEuMDksMS4xIDAuMiwyLjU0IDAuNjIsMS45OSAtMi41MiwzLjc2IC0yLjE5LDAuNCB2My4xMSBsMi45OCw0LjE2IDIuMzQsMS4xIDUuMjQsMC40NCAxLjMzLDAuOTggNS45NCwwLjMzIDEuODgsMS41MiAxLjk0LDAuMjIgMS44MSwtMS4zOSAxLjM1LC0wLjIyIDIuNjgsMS43MiAyLjU0LC0yLjI3IDIuMjUsLTAuMSAzLjY1LDEuMjggMC4yMiwtMi4zNiAtMy42LC01LjE5IDAuMTcsLTQgMi43MiwtMy42MyAyLjE3LC0xLjUgMi44MiwtNi4zMiAxLjU3LC01Ljg4IDIuOTksLTEuMDggMC45OSwtMy43OCAxLjQyLC0xLjY4IDEuODMsMC45OCAxLjM5LC0wLjg3IDIuNzksLTMuOTEgMS41NiwtMi40MSAyLjE3LC0wLjczIDMuOTMsLTAuNSAyLjgzLDAuMjIgMS43NSwtMS4wNCB2LTIuNjEgbDIuNjksLTIuNjMgMS43MywtMi40IC0yLjgxLC0yLjI4IC0yLjgzLC01LjM4IC0wLjEsLTAuOTIgLTIuNDUsMC43NSAtNi4xNiwtMi40MSAtMS44NiwxLjA2IC0yLjMsLTAuNjQgLTIuNDcsLTIuNjkgLTAuMjQsLTIuNTkgMS4xOSwtMi44NyAwLjEsLTIuODUgLTEuMiwtMS44NCAwLjcxLC00LjI4IC0wLjczLC0yLjI2IC0zLjg3LDAuNCAtMS43OSwxLjUzIC0wLjExLDEuNzQgaC0yLjMgbC0yLjYzLC0xLjMyIC03LjQyLDEuNDggLTQuMDIsLTIuNTQgLTEuNTMsLTMuMjUgMC42LC00LjM4IDEuODYsLTMuMjkgMy4wOSwtMS4xNyAwLjgyLC0zLjIzIC0yLjE5LC0yLjM0IDAuOTEsLTIuMjEgMi43OCwtMi4xIDAuOTcsLTAuODIgMy4wNSwtMC42MSAtMC45NSwtMy44MyAxLjczLDAuMjUgMC4xNSwtMS4xNyAxLjg4LC0yLjcyIDIuNSwtMC40NCA1LjgxLDUuMzQgMS45NCwwLjU4IDEuODEsLTEuMjIgMC44OSwwLjYyIDIuNDUsLTAuNTUgMC45NSwxLjc0IC0yLjEyLDEuODQgLTAuNTMsMi4xOSAxLjAyLDIuNDMgMi44OSwyLjU4IGgxLjc3IGwyLjU0LDEgMC4xMSwzLjQyIC0xLjU1LDAuNjkgMC42NCwzLjk1IDIuMjQsMi42NiAyLjQ3LDAuMyAwLjkzLDAuOTEgMC42OCwyLjcyIDIuNzksMC40NiAwLjc5LDEgdjQuNjcgbDEuMzQsLTAuMjkgMy41MiwxLjc0IDIuMzcsLTEuMTkgMS41NCwtMS44IGgzLjU5IGwxLjU1LC0xLjA0IDEuMSwwLjQ0IDAuNzIsLTQuNzYgMS4yNywtNC42IDIuODMsLTQuNjIgMi40NiwtMS40OCB2LTIuMjV6Ii8+CgkJPHBhdGgKCQkgICBpZD0icEhFXzIiCgkJICAgZD0ibTc0Ni4xMSwzMzcuMjIgMi41OSwtMS42MyAxLjY5LC0wLjE3IDEuMTQsLTAuNSAyLjA2LC0wLjI2IDAuNzEsNS42MSAtMC41OCwzLjYyIC0zLjM5LC0wLjQxIC0wLjM5LC0yLjM5eiIvPgoJPC9nPgoJPHBhdGgKICAgICAgIGlkPSJwSEEiCiAgICAgICBkPSJtNjQ3LjA2LDQ2Ny40MyA1LjYsMC41IDIuODcsLTEuMTggMi40NSwtMi44MiAyLjc0LC0wLjcyIDEuOCwtMS40NSA0LjQ1LC0wLjQ1IDUuMDEsLTUuNCAyLjAyLC0xLjIxIGgyLjU3IGwxLjA2LC0yLjkzIDIuMywtMS4wOSA1LjYsMC4zNyAyLjAxLC0yLjA4IDMuNTEsMC42NSAzLjU2LC0yLjEgNS4wMSwtMy41NiAzLjY5LC0zLjA4IDAuMzEsLTguMzcgMC42NCwtMi40IHYtNi41NSBoNS42IGwxLjY1LDEuMjMgNS41NiwwLjM4IDEuOTEsMS4zMSAyLjE1LDAuMjMgMS44MSwtMS40MyAxLjYsMC4yOSAyLjQxLDEuMjUgMi42MiwtMi4zIDEuOTMsLTAuMTggMS40NiwwLjg4IDIuNjQsMC40NCB2MC45NiBsLTEuMjksMS4zOSAtMC43NCwzLjEgMS4xLDAuNzcgNS42LC00LjE4IDIuODEsLTEuMDkgMi45NSwtMi4yMyAwLjMyLDEuOTggLTMuNjYsMi44NyAtOC4xNSw4LjUyIC0wLjg4LDIuNDQgLTIuMjQsMS41MSAtMS43NiwxLjk2IC0wLjQ5LDIuMTcgLTEuODMsMi4wMyB2MS43NCBsMS4wOCwwLjY4IDQuNzQsMC40MyAzLjEsMi41IDIuNjEsMS4yMyAwLjMsMi42NiAyLjI4LDEuOCAzLjAzLC0xLjQ5IDMuOTUsMC4xMiAxLjQsLTAuOTMgMi4zOSwwLjUyIDAuNTQsMi4xMiA0LjE0LDMuMzcgMi41OSwwLjI5IDAuODgsMC44OCAwLjU5LDMuNDYgMS43OCwyLjA4IC0wLjc2LDEuNDYgLTEuMzEsMC44OSAtMS4yNCwxLjczIC0zLjUsMi4yNiBoLTEuNTYgbC0zLjAzLC00LjA2IC0yLjI0LC0xLjkgLTIuODYsLTAuMjIgLTEuNjUsMS4yNiAtMC42NSwyLjg5IDEuNDksNi42MiAtNC4wMiwxLjg4IC0xLjA3LDMuMjcgMC45OCwyLjMyIC0xLjI1LDMuMzQgLTIuMTIsMS40NyAtMy43LC0wLjM4IC0wLjQ1LDEuODcgMC42LDEuMjkgNC4zOCwxLjA5IDEuMjksMS4zMSAwLjE4LDMuMiAxLDEuNjkgMy4yLDAuNSAyLjk5LDIuNjUgMS45MSwwLjMxIDEuOSwtMi4zNSAyLjIzLC0xLjI0IC0wLjExLDIuMzMgMi40LDcuMTUgLTEsNyAtMy45MywxLjA0IC0yLjg5LDMuMjEgLTAuNTQsNS41NiAtMi45NiwtMC43OCAtMC42MSwtMi4wNyAtMS44NywtMC43NyAtMS4wNiwwLjk1IC0wLjQ1LDEuNjMgLTQuNjEsMC41NCAtNC42NywtMi4xMiAtMC40NiwtMi42NyAtMS42NywtMC4xNiAtMS41NSwwLjM5IC0yLjcxLC0xLjgxIGgtMC45MyBsLTEuNzIsMS42MSBoLTEuNzQgbC0xLjUxLC0xLjc2IC0yLjY0LC0yLjE0IC0wLjg0LC0yLjcxIC0wLjU2LC02LjIxIC0wLjkzLC0wLjcgLTEuNiwwLjYzIC0xLjk0LDEuOTIgLTIuMTksMC44NCAtNC4zOCwtMi4zMSAtMi44NSwwLjIxIC02LjA3LDIuNDMgLTIuMzksLTAuOTUgLTQuMzIsMS4zNCAtMTAuMiwtMi41NSAtMS44NiwtMS45OSAtMy43NCwtMC4zOCAtMi4yNywtMy4yMSAtMy41OCwtMi43MyAtMi44NSwtNC43MiAtMi41LC0yLjUxIDAuMTEsLTUuNDYgLTMuNTIsLTMuMDEgLTEuNDEsLTMgLTIuOCwtMS43NiAwLjI1LC0yLjQ2IC0wLjgzLC0zLjczIC0yLjc0LC0xLjEzIC0wLjQ5LC0yLjU3IC0xLjg3LC0xLjY3IC0wLjUzLC0yLjcyeiIvPgoJPHBhdGgKICAgICAgIGlkPSJwU0QiCiAgICAgICBkPSJtNzY5LjQ4LDM3NC42MSAtMS41OSwyLjUzIC0yLjYxLDEuOTIgLTAuMzYsMy40MSAtMS44LDAuODkgLTIuNDgsLTAuMjIgLTYuNDEsMS4xNCAtMS40MywyLjkxIC00LjE0LDQuNDcgLTEuODksLTEuMTEgLTEuMjUsMS44OSAtMC45NiwzLjU5IC0zLjA5LDEuMDYgLTIuMiw3LjY2IC0yLjQ2LDQuODQgLTIuNTQsMS44IC0yLjE2LDIuOTcgLTAuMjQsMy41MSAxLjYsMy4xIDIsMi40NCAwLjE5LDMuMTQgLTEuNjQsMS45OCAtMC4yNywyLjc1IDAuOCwwLjgzIDUuNywtNC4xNyAzLC0xLjMyIDIuODEsLTIuMTQgMC4zOSwxLjc3IC00LjY0LDMuODQgLTcuNDcsNy45NCAtMC41LDIuMjggLTQuMDksMy4wNiAtMC41LDIuNDcgLTEuOTQsMi4wOCAtMC4xNCwxLjkyIDUuNzQsMS4xOSAzLjY3LDIuNDQgMi4wOSwwLjkgMC4zOSwyLjgyIDIuNTIsMS42OCAzLjE0LC0xLjI4IDMuNjUsLTAuMiAxLjYzLC0wLjcyIDMuMzksMC4yOCAyLjkyLC0xLjYxIDAuNjcsLTUuOTUgNS4zLC0yLjIyIDIuNTIsMC44OCAzLjg0LDMuOTMgMS4zNCwzLjQzIDEuMzksMC45NiAyLjY4LC0xLjc4IDIuODQsMS41MyAxLjQ0LC0wLjIxIDIuNzUsLTIuMzYgMC44OSwtMi40NyAyLjksLTAuNzUgMy40OSwyLjE0IDAuMSwyLjMgMS4yOCwxIDIuNTYsLTEuNTggMS43LC01LjY0IDMuODMsLTAuODkgMS4zNiwtNi4xMyAxLjM4LC0yLjUxIDMuMzQsLTEuMjQgMi45MSwtMC4yMyAwLjQ5LC00LjExIDEuNTMsLTIuMjggMi4wNiwtNS4xNSAzLjI3LC0xLjAxIDAuNzIsLTIuNDEgMS41NCwtNC4xIDIuMzgsLTIuMTQgLTIuNzcsLTMuMDMgMS44MiwtMS44IDIuNjUsMS4zMiAzLjEyLDAuNDggMi42LC0yLjYxIC0wLjI1LC02LjAyIDEuNjEsLTIuOTQgMi4zMiwtMC41MiA0LjUyLC0zLjc2IDMuMzEsLTIuMyAxLjU3LC0xLjE5IDIuNjcsLTIuMDUgMi41OCwtMy4zNiAyLjgsMC41MSAxLjM0LC0xLjM0IDIuOCwyLjU0IDIuOTcsLTIuMjkgLTEuMjMsLTMuMTkgMS4wMywtMi41NyAtMC4yNCwtNC4zMyAtMy4wMywtMS4xNyAtMi43OCwxLjUyIC0zLjMxLC0xLjUyIC00Ljk1LDEuOTkgLTQuMTEsMi4wNSAtMi40NCwtMS4wNyAtMS43MSwtMS45NSAtMi4yMiwwLjQ5IC00LjM3LC0yLjgyIC0zLjE4LC0xLjQ3IC0zLjksMS40NyAtNC4yLDMuMiAtMC43Niw0LjA0IC00LjUzLDQuMDMgLTAuNzYsNC4yOSAtMy40MiwzLjY3IC03LjIyLC0wLjc3IC01LjQ4LC0yLjA5IC0wLjc3LC05LjY3IC0zLjE3LC0zLjQyIC00Ljc3LC0xLjI1IC0yLjk3LC0yLjIyIC0yLjYzLDAuOTUgLTMuNDEsMi4xIC0zLjE4LC0yLjY1eiIvPgoJPHBhdGgKICAgICAgIGlkPSJwU1giCiAgICAgICBkPSJtNzAwLjkxLDMyNy4yNSAtMC43NiwwLjQ3IC0xLjcyLDMuNzcgLTQuMTUsMS45MyAtNC4yLDMuMTUgLTIuMiwwLjEgLTIuNjIsLTEuNjYgLTEuOTIsMC41NyAtMi4yMSwyLjA4IC0wLjk5LDIuMDUgLTIuMzUsMS4zMSAtNC43OSwtMS45IC0yLjI2LDAuODkgLTMuNzcsOC4yNCAtMS44Myw1LjEgLTIuNjQsMS44NSAtMy44MywtMC42MSAtMS4xOCwxLjg4IC0wLjY1LDIuMzIgLTIuNTMsMi4wOCAtMC44OSwtMC4xOCAtMC4xLDUuMTIgLTAuMzcsMi4zOCAtMi40MSwyLjUgdjUuNTMgbC0xLjAxLDIuNTEgLTAuNTksNC4yNyAtMy41NSwzLjA5IC0xLjc4LDMuNjIgMC4xNCwzLjcyIDIuNzUsMi41MyAyLjY0LDMuNzkgLTAuMSwyLjc2IC0xLjIsMi4yNCAwLjE5LDMuMDkgLTMuNTMsNi42NiAtMC4xNiw3LjU3IDEuNjUsMi4yNSAwLjMsOS45OCAzLjk3LDEwLjQyIC0wLjM0LDMuMjQgLTIuNzEsNC41MiAtMS44OSw1LjY5IDAuMzMsNy4yNSAxLjA3LDIuMTcgNS44MiwwLjE4IDMuMjMsLTEuMiAxLjk2LC0yLjY0IDQuNzcsLTIuMDEgNC40MywtMC44MyA1LjMyLC01LjcgMS41OSwtMC43NCAyLjM3LC0wLjEgMS4wMywtMi42NCAyLjkyLC0xLjA0IDQuODYsMC4xIDIuNjEsLTIuMTcgMi43NiwwLjg4IDEuNjcsLTAuNDMgMi43NiwtMi4zMiA1LjgyLC0zLjk2IDIuNDgsLTIuNDEgMC4yNywtNy4xOCAwLjYxLC0yLjkyIC0wLjEsLTcuMDQgLTIuNjIsLTIuNDIgLTIuNCwtMy4zNCAwLjM2LC0yLjM3IDAuOTUsLTAuNzUgMS4wNywtMC4xNSAyLjQ4LC0zLjYyIC0wLjY2LC0zLjEzIDAuMjcsLTEuOTIgMC42OCwtMS4xNiAwLjY0LC0zLjQ1IDIuMDUsLTMuMTIgMS4wNCwtMy4wMiAtMC45NSwtMi4yOCAtNC4zOCwtNS4yNiAtMS4yNywtMy43MSAtMy44MywtMS40MiAtMS4xNiwtMS40NCAtMC42OSwtNS43NiAxLjQsLTEuNzcgMS4zOSwtMS4yNiAxLjQsLTEuNjcgMC4xLC0xLjQyIC0xLjE1LC0wLjk5IC0wLjMyLC0xLjQ4IDIuMjgsLTIuNjQgNC4yMiwtMC44NiAzLjMyLC0xLjgyIDAuNSwtMS4yOSAwLjQzLC0zLjg4IDEuMjIsLTMuMDUgLTAuOTksLTIuMzUgLTIuMSwtMS45NiAtMC41NSwtMy4wMyAtMS4wNCwtMS4xNSAtMy40MSwtMC4zMiAtMi4wMywtMS40IC0wLjQ5LC0xLjYyIDEuMTIsLTIuNTMgMy4yOCwtMS4wNCAyLjI2LC0xLjk3IHYtMC43IGwtMi41OCwtMS4yNCAtMC41NiwtMy4zNnoiLz4KCTxwYXRoCiAgICAgICBpZD0icFNOIgogICAgICAgZD0ibTYwNC41NiwzOTkuNTMgMi43OCwzLjcyIDQuMTYsLTAuMjggMiwtMS4xOSAxLjU2LC00Ljc4IDIsLTQuMjggMi44OCwtMi4wMyAzLjA5LC01LjM1IDEuODgsLTEuNTkgMS4zNywtMi43MiA0LjAzLC0xLjE2IDEuNDcsLTEuMjEgdi0xLjkxIGwtMS40LC0xLjcyIDAuNzUsLTUuNjIgMy44NCwtMy42MyAxLjYyLC0zLjc4IDAuOTcsMC42MiAwLjM4LDEgNC4xMiwtMC42OCAyLjcyLDEuNDcgMS4wNiwtMC45MSAxLC0xLjg0IDMuNjksLTMuODggMi44NSwzLjA5IDAuMzQsNC4yNSAtMC4zOCwyLjk0IC0yLjU5LDIuNTMgLTAuMSw1LjQ0IC0wLjgyLDIuNDQgLTAuNTMsNC4zNyAtMy43MiwzLjQ3IC0xLjc4LDMuNDEgMC4xNiwzLjM3IDIuOTEsMy4xOSAyLjQzLDMuNzIgdjIuNTkgbC0xLjE4LDIuNDEgMC4xNSwzIC0zLjUsNi42NiAtMC4yNSw3LjUzIDEuNTcsMi4zNCAwLjQ2LDkuOTcgMy43NSwxMC40MSAtMC4zMSwyLjk2IC0yLjUzLDQuNiAtMS44Nyw1Ljc4IDAuMjUsNy4zNCAxLjE4LDIuMjUgMC44OCwzLjU3IDEuODEsMS44NCAwLjQxLDIuMTIgMi43MiwxLjM1IDAuOTMsNC4zMSAtMC4xOCwxLjkxIDIuNTYsMS44MSAxLjk0LDMuMTYgMy4xNSwyLjg0IHY0LjgxIGwtMy45NCw0LjQ3IC0zLjY1LC0yLjYyIC0zLDIuMTUgaC00LjE5IGwtMS40MSwtMC43NSAtNi45NywtMC43OCAtMi40NiwwLjg0IC0wLjc5LDEuMSAwLjYsMS43NSAzLjc1LDAuNSAwLjYyLDMuMjggNC4yOCwwLjk0IDIuNjksMS44MSAtMC4zMSwyLjgxIC0zLjI4LDAuNjYgLTMuMTYsMS41MyAtMi43OCwwLjQgLTEuNjYsNS4zOCAxLjA0LDIuNTYgMi42NSwyLjY5IC0wLjg0LDIuMzcgdjMuMDQgbC02LjUsMS4yNSAtMS44NSwtMC41NCAtMC43MiwtMi44NyAtNC44MSwtMC43OCAtOC4xMiwtNS4xIC0zLjg1LDAuMzIgLTUuNzIsMi41IC01LjU5LC00LjM1IC0yLjk0LC0wLjM3IC0yLjA5LC0yLjM4IC0yLjEzLDEuMTYgLTIuNTMsLTAuMjggLTEuMDMsLTEuNTMgLTAuODEsLTMuMTYgLTQuNjMsLTAuNDcgLTIsMC45NyAtOC43MSwyLjEzIC0yLjE5LC0xLjIyIC0wLjY5LC0zLjQxIC0xLjQ3LC0wLjkxIC00LjgxLC0wLjM0IDMuNDEsLTMuNzggMS4wNiwtMy44NCAtMS4wMywtMi42IC0zLjEzLC0xLjY5IDEuMzUsLTIuMjEgMy42MiwtMS43MiA3LjQ0LC0wLjEgMC40LC0wLjkgLTAuMzQsLTEuMTYgdi00LjQ3IGwtMSwtMS42NSAyLjc1LC02LjIyIDEuNSwtMS40NyAtMC4xLC0xLjcyIC0yLjIyLC0yLjEzIC0zLjkxLC0xLjEyIC0wLjE5LC0xLjUgMi45NCwtMi42NiAwLjQ3LC0zIC0wLjk3LC0yLjE1IDAuNjksLTIuMTkgNC44NCwtMS4xOSAzLjY5LDAuNSAzLjQxLDMuMDYgOC44MSwtMS41MyAxLjkxLC0xLjE1IC0xLjI5LC0yLjMyIDAuMjIsLTMuNSAxLjM1LC0wLjIxIDIuNjIsMS4yMSAzLjEsLTEuNjUgNS41MywwLjMxIDIuMDksLTEuMzQgMC41LC00Ljc1IC0yLjAzLC0yLjcyIC0wLjQ3LC00LjYzIDMuMjUsLTIuODEgLTAuMjgsLTcuNTkgLTIuNTYsLTIuMzIgLTEuODUsLTAuNCAtMy45LC0yLjcyIC0yLjY5LDAuNzUgLTMuODQsLTMuNzUgLTYuNjMsLTEuOTEgLTAuNzUsLTAuNjggLTIuMTksLTAuNSAtMS42OCwtNC4yMiAwLjUzLC0yLjM4IC0xLjQ0LC0yLjcyIDEuMTIsLTUuMjUgMi42LC0yLjkzIDUuMjMsLTEuMzYgMy45OSwtMC4xIDIuMjgsLTEuNjd6Ii8+Cgk8cGF0aAogICAgICAgaWQ9InBBSCIKICAgICAgIGQ9Im03MzguMDgsNDkyLjcxIDIuMDgsLTEuNTggMC45MywtMy4xOSAtMC42OCwtMi42MiAwLjk3LC0zLjI3IDMuOTEsLTEuNTQgMC4xMSwtMS4yMiAtMS40NCwtNS41NyAwLjU4LC0yLjk4IDEuOTcsLTEuMDcgMi42NiwwLjIxIDIuMDgsMi4wNSAzLjI3LDMuODggMS41NCwtMC4xIDMuNDEsLTIuMDggMS4xNSwtMi4xNSAxLjY5LC0wLjk3IDAuNTcsLTEuMTkgLTEuOTcsLTIuMjYgLTAuMjIsLTMuMjMgLTAuOSwtMC45NyAtMi45NCwtMC4yMSAtNC4wOSwtMy4wNSAtMC4yOSwtMi41NSAxLjk0LC0wLjQ3IDIuMDQsLTEuMjkgMS45OCwwLjEgMi4wNCwyLjA1IDcuMTEsMi4yNiAwLjY4LDMuMDEgMy42MywyLjU5IDIuMDgsLTAuMjUgMi45NSwwLjgyIGgzLjQxIGwyLjksMi44NyAwLjY1LDIuMDEgMS40NCwwLjcyIDEuNzUsLTAuOSAyLjk4LC0wLjkzIDAuOTQsMC41OCB2My42NiBsLTEuOCw2LjM1IDAuMjIsMS43MiA0LjEzLDAuOTQgMi4wNCwyLjg3IC0wLjE4LDEuNDQgMS40NywyLjgzIDIuMDksMS41OCA1LjE3LC0xLjE1IDAuNzUsLTEuMzYgMC4zOSwtMS45OCAxLjM3LC0yLjAxIDEuMDQsLTAuMSA0LjYzLDIuMzMgMS43OSwzLjkxIC0yLjE1LDMuNzcgLTEuNDcsLTAuMjUgLTIuMTUsLTEuNjIgLTQuNzQsMC43NiAtMC40LDEuNTggMS42NSwyLjA0IDAuODYsMS45OCAtMC43NSwyLjMzIC0yLjMsMS44MyAtMS4zMiwyLjIzIC0wLjMzLDIuMDEgMS4zMywyLjA0IDIuMTIsMS42OSAzLjMsMS4xNSAxLjAxLDEuMDggMi44NywwLjgyIHY0LjI0IGwtMS4zNiwxLjQ3IDEuNCwyLjMzIDMuNTksLTAuMzIgMi45NCwtMS4yNiAyLjQ0LC0wLjI1IDIuMjcsMS4zMyA0LjIzLDAuNSB2NC44NSBsLTEuMjYsNC41OSAtMS4zNiwxLjgzIC0xLjk0LDEuNDQgMC4xOCwxLjA0IDEuNjUsMS4zMyAwLjUsMS43NiAtMS41MSwxLjkgLTIuMTEsMC43MiAtMy43NywtMC4yNSAtMS4xOSwwLjkzIDAuMjksMy43MyAwLjQ3LDAuNzYgMC4zMiw0LjgxIC0xLjg3LDEuMDggLTAuNSwzLjI2IC01LjEsNi4wNyAtMS43NiwwLjUgLTIuMDQsMS44NyAtMi4zLC0yLjUyIC0yLjAxLC0wLjU3IC0yLjU1LDAuOTcgLTUuNjMsLTAuNSAtMi40OCwtMS42NSAtMS43NiwtMi41MiAtMi4xMiwtMC4zMiAtMC4zOSwtMC42OCAtMS42MiwtMC4yOSAtMC45MywxLjAxIC0wLjQsMy4wNSAtMS4zNiwxLjA3IC0yLjAxLDMuNDkgLTIuOCwwLjIxIC0xLjIyLC0xLjY1IDAuNDcsLTEuOSAyLjA0LC0yLjE5IDAuMjIsLTEuOSAtMS43MywtMi40MSAtMS42OCwtMC45IC0yLjE2LDEuMyAtMC42NCwxLjgzIC0xLjg3LDEuOSAtNS4zOCwyLjQgLTAuNTgsLTIuOSAtMS4zMywtNC43MSAtMS40MywtMi43MiAtMi40OCwtMS42OSAwLjIyLC0zLjE2IC0yLjMsLTIuMTUgLTEuMzcsLTIuMTkgMS41MSwtMi45NSAxLjksLTIuNjkgMC4zNiwtMS42MiAtMy40NywtMi41NCAtMS41NCwwLjEgLTIuMjQsLTAuNjIgaC0yLjQ4IGwtMy4yNywtMy4zOSAwLjcxLC01LjggMi43OCwtMy4wMiAzLjk3LC0xLjA5IDAuOTYsLTcuMDYgLTIuMzQsLTYuNjYgMC4xMSwtMi43MiAtMi4wNiwwLjkyIC0yLjE2LDIuNDkgLTEuOTQsLTAuMSAtMy4xNSwtMi45MSAtMy4xMywtMC4zOCAtMC44NywtMS40NSAtMC4xOSwtMy41IC0xLjUyLC0xLjQ0IC00LjA5LC0wLjg0IC0wLjY5LC0xLjIzIDAuNjMsLTEuOTF6Ii8+Cgk8cGF0aAogICAgICAgaWQ9InBKUyIKICAgICAgIGQ9Im04MDYuNyw0MzcuOCBoLTMuMTcgbC0xLjM3LDEuMDkgLTEuODgsMC4zMiAtMS4wOSwyLjMxIC0xLjI4LDYuMTIgLTMuODgsMS4xNiAtMS41OSw1LjI4IC0yLjY5LDEuNjYgLTEuNTMsLTEuMSAtMC4xLC0yLjQgLTIuOTcsLTEuODggLTMuMTYsMC42OSAtMC44MSwyLjUzIC0zLjI4LDIuNzIgLTEuNSwtMC4xOSAtMiwtMS40MyAtMy4yOCwxLjcxIC0xLjgyLC0xLjk2IC0wLjk3LC0yLjYgLTQsLTQuMTkgLTIuNTYsLTAuMjggLTQuNTMsMS45MSAtMC45MSwzLjgxIDAuMSwyLjIyIDIuMjUsMC40MSAyLjA5LDEuOTcgNi42MywxLjc4IDAuOTYsMy4wNiAzLjU0LDIuOTQgMi4yNSwtMC4yMiA2Ljk2LDEuMDYgMi4xOSwyLjE2IDAuNjMsMi40NyAxLjA2LDAuNCA0Ljg0LC0xLjY1IDEuNDQsMC43OCAtMC4xNiwzLjQ3IC0yLDYuMTIgMC40NCwyLjA2IDQuMTMsMC43NSAxLjkzLDMgLTAuMTIsMS42NiAxLjUsMi40NyAyLDEuNjUgNS4zNywtMS4yOCAwLjg4LC0zLjQzIDIsLTIuMTkgNS4xOSwyLjUzIDEuNjUsMy44NyAtMi4wMywzLjg1IC0xLjM3LC0wLjE5IC0yLjM4LC0xLjcyIC00Ljk0LDEgLTAuNDMsMS40NCAxLjc1LDEuODEgMS4wMywyLjQ0IC0xLDIuNDQgLTIuMTYsMS40IC0xLjU5LDMuNTcgMC41OSwxLjkgMy4xOSwyLjk3IDMuMjIsMC44NCAwLjk3LDEuMTMgMi42OCwwLjg0IHY0LjI1IGwtMS4yOCwxLjUgMS4yNSwxLjk0IGgzLjcyIGwyLjY2LC0xLjUzIDIuOSwtMC4xIDIuMzIsMS40NiA0LjIyLDAuMzIgMS45LC0wLjc4IDIuNjMsLTAuMzIgNi40Myw0LjE5IDIuNjYsLTEuMjIgMS41NiwwLjEgMC45NCwxLjUgMiwwLjM3IDIuMjgsLTEuODQgMC44MSwtMi4xNiAyLjc1LC0yLjA2IDAuODIsLTIuMDYgMS44MSwtMS4zMiAwLjgxLC01LjAzIDEuNjQsLTIuODUgLTAuODQsLTAuNDcgLTEuOTksLTIuMjUgLTMuOTIsLTAuNzMgLTUuMDEsLTAuOCAtMC41MSwtMi43OCAtMy41MywtMC43IC0zLjk4LDEuOTggLTEuMywwLjQ0IC0wLjM3LC0wLjUyIDEuNjUsLTIuNjEgMy40MSwtMS41NyA0Ljk4LDAuNTIgMS43OSwyLjU1IDIuNjUsMC45NyBoNC43OCBsMy42MSwwLjUxIDMuNTQsMi4wMyA0LjQ2LDAuNzQgMi4xLC0wLjQ3IDAuNjQsLTEuMjcgLTIuNjgsLTMuNjUgLTUuMjQsLTQuNzQgLTQuODcsLTEuMjggLTEuNzcsLTUuMDcgLTQuNDIsLTEuNzIgLTUuMDgsLTEuMjcgLTEuOTQsLTEuMzkgMC43NywtMy4zNyAtMS4yMiwtMy4xOCAtNi4wNiwtOC44NCAtMy43NSwtNi4yNSAtNC44MSwtOS4xMiAtMi40NywtMi40NiAtMTIuMzgsLTMuNzkgLTIuMjYsLTIuNTIgLTUuNjUsLTEuMDIgLTAuNTUsLTQuODR6Ii8+Cgk8ZyBpZD0icFNIIj4KCQk8cGF0aAoJCSAgIGlkPSJwU0hfMSIKCQkgICBkPSJtODU2LjUsNTA5LjIgLTEuNjIsMi4yNiAtMS4wNyw1LjU2IC0xLjYyLDEuNDQgLTAuOTcsMi4wOCAyLjE2LDEuMzMgMC44NiwyLjI5IDQuMDIsMC44MyAxLjQzLDIuMTkgNC43MywtMy40IDMuMjQsLTMuOTkgMC43MSwtMy44MyAtMy4zOSwtMi45MSAtNS4yOSwtMi4wMXoiLz4KCQk8cGF0aAoJCSAgIGlkPSJwU0hfMiIKCQkgICBzdHlsZT0ic3Ryb2tlLXdpZHRoOjAuNSIKCQkgICBkPSJtODU5LjI2LDUwNi40IDYuMDQsMS41NCAwLjUsMS41NyAtMy45NiwtMC41NCAtMy45MSwtMC44OCAtMy41NSwtMi40NiAxLjc0LC0xLjEyeiIvPgoJCTxwYXRoCgkJICAgaWQ9InBTSF8zIgoJCSAgIHN0eWxlPSJzdHJva2Utd2lkdGg6MC41IgoJCSAgIGQ9Im04NjYuNTQsNTExLjY0IC0wLjEsMC42NyAtMy43MiwtMS4zM3oiLz4KICAgIDwvZz4KCTxwYXRoCiAgICAgICBpZD0icFpKIgogICAgICAgZD0ibTg1OS42Myw1MjcuMjUgLTEuNjksLTIuMjUgLTMuODgsLTAuOTQgLTAuNTYsLTIuMzQgLTIuMTMsLTEuMDYgLTIuNzgsMS43MSAtMC44NywyLjE5IC0yLjQ0LDIuMTkgLTEuNzIsLTAuNjMgLTAuODEsLTEuNTkgaC0yIGwtMi4zMSwxLjMxIC02LjY5LC00LjQgLTQuNDEsMS4xOCAtMC4xMiw1LjUgLTEuNjYsNC44NSAtMi45LDIuODQgMi40MywzLjY5IC0xLjQ3LDIgLTIuODcsMC44MSAtMy43OCwtMC4yNSAtMC40MSwwLjk0IDAuNzUsOS4zNyAtMS44NCwxLjEgLTAuMTksMy40NyAtNS40MSw1Ljg3IC0xLjg3LDAuMzggLTMuMzEsNC40MyAtMC4zMiw0LjIyIDYuMjIsNC45MSAyLjg4LDMuNDcgMiw3LjY5IDQuNjIsLTAuMjkgMS41LDEuMjIgMC4zNSwzLjMyIC0wLjM1LDEuMDYgMi4yMiwyLjUzIDMsNi45NCAwLjQxLDEuODEgNS4wOSwwLjU5IDQuMTksLTIuNTMgMS40NCwtMy4wNiAwLjc1LC0wLjg0IDEuNDcsMC41NiAyLjksNS4wOSAyLjA2LDEuMjggNS42NiwtMi4zNCAxLjUsLTAuOTQgMywwLjU2IDIuMTgsMS40MyAxLjU5LC0yLjE0IC0wLjI1LC0zLjcyIDAuMjUsLTIuMzIgMS43OCwtNS4wOCAxLjU1LC0zLjYyIDEuNzMsLTEuMjMgMC41MSwtNi4xIDMuNDYsLTEuNDQgMC43Miw0Ljc3IDIuNDQsLTMuMzQgMy4xNSwtMi4xOCAtMS45MiwtNC4wOCAtMS44NywtMy4yIDIuODUsLTIuNTkgdi0zLjUxIGwyLjc1LC0zLjc1IC0xLjAyLC0zLjA3IDEuNzcsLTEuNTEgLTAuOTcsLTMuNjUgLTAuNDMsLTUuMDggLTEuNDMsMy40OSAtMy40OCwwLjMxIDMuODksLTUuMjcgNC4zMSwtMy4zMSAzLjQxLC0xLjcgLTAuNDQsLTIuMjEgLTUuMzUsLTIuMTkgLTIuMDgsMC43IC0xLjUxLDMuNTIgLTIuNzUsMS4xIC0zLjM5LC0yLjM1IC00LjQ4LC0zLjQ4IC0zLjYsMC40OCAtNC43Nyw0LjI3IC0yLjYzLDEuMDYgLTQuNjMsLTAuNzcgLTQuMTUsLTEuMDQgLTAuOTMsLTEuNTggMy41NCwtMS45MSA1LjMzLC0wLjUxIDIuODUsLTAuOTUgMC4yNCwtMi45N3oiLz4KCTxwYXRoCiAgICAgICBpZD0icEpYIgogICAgICAgZD0ibTczNS4zMyw2NjMuMDMgMS43OCwxLjM5IDAuMzQsMS4zOCA0LjI1LDAuMiAzLjEzLC0xLjc4IDIuNzUsLTAuNjkgMS43OCwwLjg2IDEuMzcsMi41NiAtMC44NCwyLjUzIC0zLjgxLDIuNjggLTEuMDUsMy45MiAtMi44LDMuNzIgNC40OSwzLjAxIDE0LjE1LC01LjUgNS41MiwtMi44NCA0Ljk4LDMuNzYgMi41NSwtMC4xNCAwLjY3LC0xLjY3IC0xLjQzLC00IDIuODEsLTIuMTIgLTEuODEsLTMuNzggLTAuMTEsLTIuMjkgMS42NSwtMS41NiAxLjA3LC05LjMxIDEuNDIsLTEuOTkgMC4xMiwtMy41NiAyLjYsLTEuNDggMS44MSwtMy44OSAtMS4xNiwtNC4xNiAzLjIyLC0zLjMzIHYtMS4yNSBsLTEuOTcsLTMuOTUgMC40OCwtNS41MyAyLjM4LC0xLjgzIDQuNjcsLTEuOTggMi45NSwtNC45MSAtMS44NCwtNi4wMyAyLjE0LC00Ljk5IDAuNTEsLTMuMTUgMy43OSwtMi4yMSAyLDAuMjEgMS4yLDEuMTkgMi4xNCwwLjI4IDAuNjEsLTEuOCAzLjA2LC0yLjMxIDcuMDYsLTMuMzYgLTAuMiwtMi45OSAxLjgsLTIuNDcgLTIuMDIsLTcuNjcgLTMuMjgsLTMuNjggLTUuOTUsLTQuNzQgMC4yLC0zLjc1IDEuNzIsLTIuOTggLTIuMzQsLTIuNzIgLTIuMTgsLTAuNSAtMi4yLDAuODkgLTUuODEsLTAuMzYgLTIuNjksLTEuOTIgLTEuNDUsLTIuMTkgLTIuMTQsLTAuMjMgLTAuNSwtMS4wOCAtMS42NywtMC4xMyAtMC44NiwxLjEzIC0wLjU0LDMuMDQgLTEuMzEsMS4zIC0xLjg5LDMuMjUgLTIuNSwwLjI3IC0xLjQ0LC0xLjY2IDAuMzgsLTIuMDkgMS45NywtMi4wMiAwLjM2LC0yLjI1IC0xLjg1LC0yLjIgLTEuNTcsLTAuNjcgLTIuMjcsMS4wMSAtMC41NSwyLjA4IC0yLjA5LDEuOCAtOS41Niw0LjcgLTMuMTgsLTEuNTUgLTMuNTcsLTAuMiAtMi4wNSwwLjUzIC0wLjQ3LDMuNDQgLTEuNjksMC44NyAtMi42MiwtMC4zNCAtMS4zOSwxLjAyIDAuNzIsMS44MiAtMi41MiwwLjYgLTIuMTYsMS45NSAtMC42NCwxLjY2IC01Ljk4LDIuMDYgLTMuODgsMC4zNyAtMS4yMywxLjc3IC00LjgsMy4xNiAtMC4zNCwxLjQ4IDQuODcsNi4zMSAwLjEzLDQuMjUgMi40OCwzLjkyIC0wLjU2LDEuODggLTIuMTcsMi4zIC0xLjg5LDQuNzMgLTMuNjksMS4yOCAtMC4zNiwzLjI4IC0xLjQ4LDIuMTkgLTAuMjUsMy44MyAxLjE1LDQuMzQgMS4xOCwwLjY0IDEuODEsLTEuMzkgMS4zNCwxLjExIDAuNDYsMS4zIC0xLjQ3LDIuOTEgMC41NiwxLjQgMi45MiwyLjQ3IC0xLjU4LDMuMjcgMC41MywxLjk1IDIuMzUsMi4wMSAyLjU2LDAuODMgMC4zOCwyLjk2IC0xLjEsMS44MiAtMC40LDMuNjYgMS41MSwwLjcgMi4xMywtMS4zNiAwLjkzLDAuNjggLTIuNSwzLjM0IDAuMTQsMy4wOSAtMi4xOCw0Ljc4IDEuNTMsMi4xOHoiLz4KCTxwYXRoCiAgICAgICBpZD0icEhCIgogICAgICAgZD0ibTY2MS4yMiw0OTYuMjYgMi40NCwyLjI0IDMuNTksNS43OCAzLjA5LDEuNzggMi4yMiwzLjM0IDMuNjEsMC40MyAxLjk0LDEuNzIgMy45OCwwLjg1IDUuODcsMi4wMSA0LjcyLC0xLjM3IDIuMjUsMC42MSA2LjM3LC0yLjE3IDMuMDgsLTAuMTEgNC4xMywyLjM3IDEuOTIsLTAuOTMgMS43NCwtMi4wMSAxLjcxLC0wLjcgMS4wMiwwLjU3IDAuNDEsNi45NyAxLjI0LDIuMzMgNC4xMSwzLjY2IDEuNDgsLTAuMjkgMi4wOCwtMS40OSAzLjQzLDEuOTMgMi40LC0wLjQ0IDEuMDQsMC43OSAwLjEsMS45NiA0LjY3LDIuNDEgNC40NywtMC43OCAxLjUyLC0yLjU4IDIuMDEsMC43NyAwLjU0LDIuMDcgMi44OSwwLjkzIDMuNywzLjggMi4zMywtMC40MyA0LjA2LDAuOTkgMywyLjE0IC0wLjUxLDIuMTcgLTMuMyw0LjgzIDEuODksMy4xOSAxLjg0LDEuMzEgLTAuMTgsMy4zNCAyLjUzLDEuNjEgMi40NSw2LjQ4IDAuOCw0LjA0IC00LjQ3LDIuMTIgLTIuOTcsLTEuNDkgLTMuNjgsLTAuNDEgLTIuMTIsMC40OCAtMC4zNCwzLjM5IC0yLjEsMS4xOSAtMi4yOCwtMC4yMiAtMS4yMiwwLjk5IDAuNDYsMS44IC0yLjE5LDAuMzQgLTIuMzMsMi4xIC0wLjc0LDEuODMgLTUuOSwxLjkyIC0zLjk1LDAuMiAtMS42LDIuMjQgLTQuMjMsMi43MyAtMC43NywxLjQyIC0yLjY2LC0wLjUzIC0xLjQ1LDAuNzIgLTAuNiwtMi4zMyAtMS43NywtMS42NyAwLjEyLC0zLjE4IDEuMjQsLTEuOTQgLTAuNTksLTIuNDUgLTIuMDgsLTIuMzYgLTAuMjQsLTIuMDggLTMuOTgsMi44OSAtNC44OCw2LjI1IC0yLjg4LC0wLjM0IC0wLjYxLC0yLjE2IDEuMTQsLTIuODEgLTEuMjgsMC4zNSAtMS4xOCwtMS4yMiAtMi4yMywwLjgxIC0zLjA5LDIuOTEgaC0yLjYyIGwtMi40NywxLjcxIC05LjE4LC02LjI3IC04Ljc5LC0wLjQzIC0zLjE2LC0xLjk1IC01LjY3LC0wLjg2IC0zLDAuMzIgLTEuODMsMS4xMyAtMy42MiwwLjY1IC0wLjM2LDEuMzYgMy4yOCwyLjczIDAuNTQsMi4wNiAtNC4wNCwyLjUxIGgtMy4zNyBsLTEuODMsMC41OSAtMS44OSwtMi42NSAtMy40NCwwLjQxIC0zLjM4LDIuMzUgLTEuOTQsMC45MiAtMy4yOCwyLjk5IC0wLjQ1LDIuODQgLTEuODEsMi4yNCAtMC41MSwzLjg4IC0yLjg1LC0wLjkgLTQuMTgsLTUuMzYgLTAuMjksLTQuNTEgLTIuOTEsLTAuNzkgLTMuMSwtMy40OCAtMi4zNSwxLjU2IDAuNzcsLTMuMjcgMC4xNiwtNy42MSAtMi43NiwtMy42NCAzLjkzLC0yLjk4IDMuNDMsMC4xMSAzLjUxLC0xLjgzIDMuMTMsMC4yOCAzLjg5LC0wLjQ0IDMuNjMsLTIuMTIgNC42NSwtNS4yMiAzLjg1LDEuNDMgMS4zNywtMy4xNCAtMC42MSwtMy40OCAxLjA0LC0yLjkzIC0wLjg4LC0zLjEyIC0xLjQyLC0yLjQ2IC0zLjE5LC0yLjEgdi00LjQ3IGwtNi4wNSwtMC40NSAwLjE4LC0zLjM0IDAuNjgsLTEuOTkgLTIuNzgsLTIuOTQgLTEsLTIuMjUgMS44NiwtNS4zNiAzLjM4LC0wLjYzIDIuNDQsLTEuNDIgMy4zMiwtMC42NCAwLjUsLTIuODkgLTIuODIsLTEuOCAtNC42MSwtMC44MiAtMC4zLC0zLjQzIC0zLjc2LC0wLjM2IC0wLjY2LC0xLjUzIDAuOTUsLTEuMzMgMi41NywtMC43IDYuOTMsMC43OCAxLjYxLDAuNzcgMy45MywtMC4xNSAyLjUyLC0yLjExIDMuODQsMi41MXoiLz4KCTxwYXRoCiAgICAgICBpZD0icEhOIgogICAgICAgZD0ibTYzNS42Miw1OTAuODcgMC41NCwtMy44MSAyLjgxLC01LjgxIDIuNjIsLTIuNTkgNS42LC0zLjQxIDMuNCwtMC4yOCAxLjg4LDIuMzcgMi41NiwtMC41OSAyLjgxLDAuMjUgMy43MiwtMi40NCAtMC41LC0yLjI1IC0zLjQ3LC0yLjgxIDAuNDEsLTEuMzQgMy44NCwtMC40MSAxLjY2LC0xLjU2IDguNDQsMC41NiAzLjU5LDIuMTYgOC42MywwLjQzIDkuMzEsNi40NyAyLjUsLTEuNzUgMi42NSwtMC41MyA0LjMyLC0zLjI4IDMuMTUsMS4xMiAtMC43OCwyLjM4IDAuNTMsMi4xNiAyLjc1LDAuMzEgNC45NCwtNS44NSAzLjc4LC0zLjQ2IDAuNTYsMi4zNyAyLjA0LDIuNzggMC41LDEuODggLTEuMjUsMi4yNSB2Mi45IGwxLjYyLDEuNzUgMC43MiwyLjQ3IDEuMTksLTAuNjUgMy4wOSwwLjQ2IDQuNjMsNi4xIDAuNCw0LjYyIDIuNTMsMy42MyAtMC43MiwxLjkgLTIuMTgsMi42IC0xLjgyLDQuNTMgLTIuNzUsMC43OCAtMS4xNSwwLjkxIC0wLjE5LDMuMDkgLTEuNSwxLjg4IC0wLjMxLDMuOTMgMS4zNCw0LjUzIDEuMDYsMC4zOCAxLjc5LC0xLjI4IDEuNzUsMS41IDAuMTgsMS4yMiAtMS43OCwyLjU2IDAuNjYsMS4zMSAzLjEyLDIuNTMgLTEuNTMsMy4zOCAwLjQxLDEuNzUgMi4zNywyLjA5IDIuNjMsMC45NyAwLjM0LDIuOTEgLTEuMTIsMS43OCAtMC40MSwzLjc1IDEuNDEsMC43MiAyLjM3LC0xLjU3IDAuNzUsMC42NiAtMC4zNywxIC0yLjIyLDIuMzggMC4xMiwzLjA2IC0yLjA2LDUgMS42OSwyLjMxIHYyLjgxIGwtMi45NywyLjcyIC02Ljc4LDAuMjggLTQuMSwtMi40MyAtNi4wMyw0Ljc1IHYxLjE4IGwxLjMxLDIuMTkgLTAuMjUsNC43NSAtMy4xNSwwLjM4IC00Ljg4LC00LjIyIC03LjY1LDAuNDMgLTAuNzIsNC4zMiAwLjksMi4wOSAtMS4yOCwyLjQ3IC0yLjksMS4wMyAtNi4yOSwtMC4xOSAtMi40MywzLjEgLTAuNzUsMC4zNCAtMC44OCwtMS4zNCAwLjMxLC0yLjUgLTAuNzEsLTQuNjMgLTEuNzUsLTEuODcgLTIsMC4xNSAtMi4zMiwyLjIyIC0xLjksMS45NCAtMS4yOCwtMS41IDAuMSwtMi4zNCAyLjQ0LC0zLjQ0IDAuOTcsLTIuMTkgMS44NywtMS42OSAwLjYzLC02LjQgMS4yOCwtMS41MyAwLjIyLC0yLjI5IC0xLjM1LC0wLjU2IC0yLjY1LDAuNSAtMS4wNywtMS43NSAwLjYzLC02LjI1IC0yLjY2LC0wLjY5IC0xLjU5LC0xIC0yLjE2LDAuMjUgLTEuOSwxLjc1IC00LjM1LC0wLjg0IC0xLjgxLDIuOTEgLTIuODQsMi43OCAtMS4xLDEuOTQgLTIuNjIsMC42OCAtMS4wNywtMC42NSAwLjEsLTMuMTYgLTEuODUsLTEuNzUgLTEuNzIsMC4zNCAtMS41OSwyLjk3IC0wLjcyLDIuNDEgLTEuOTcsMS45NyAtMS40NywtMC4zMSAtMS4zMSwtMS4zMiBoLTIuNzUgbC0wLjQ3LC0yLjI4IC0zLjA5LC00IC0wLjI1LC0yLjEyIDEuOTQsLTIuNTcgMC4xMiwtMS4xOCAtMS45NCwtMi45NCAzLjA3LC0yLjkxIDAuMzEsLTEuNSAtMC41MywtNC4xNSAtMS42LC0xLjM1IC0yLjMxLC0wLjEgLTEuNzgsMC44MSAtMi4xOSwtMC4xMiAtMywyLjI4IC0xLjQsLTAuMjUgLTEuMzUsLTEuNzIgNS44MiwtNi4wOSAzLjEyLC0xLjE2IDEuMDMsLTEuODEgMS41NiwtMS4xMyAwLjI1LC0yLjMxIC0xLjgxLC0yLjQ0IC0wLjg0LC0zLjg0IC0wLjIyLC01LjUzIDAuMzcsLTEuNDQgLTEuNDMsLTEuNjYgLTEsLTMuNDd6Ii8+Cgk8ZyBpZD0icEZKIj4KCQk8cGF0aAoJCSAgIGlkPSJwRkpfMSIKCQkgICBkPSJtODA0LjU2LDY5NS4xOCAtMC40OSwtMC45OSAtMS40MiwtMC45NCAtMC4zNiwtMS40MiAtMi45MiwtNS4xMSAtMC41NSwtNC44OCAtMy4xNywtNC4zNCAtMS41NSwtMS4xMSAtMC44OSwtMi42NiAtMS44NywtMC4yMSAtMi41NSwxLjM1IC0yLjc4LC0zLjA0IC0yLjg4LC0xLjU2IC0yLjg5LDAuNzggLTEuNTYsLTAuODggLTIuNTgsMC4xNiAtMS45NywtMy44IC0wLjEsLTIuMzMgMS44MywtMS41IDAuOCwtOS42MiAxLjUxLC0xLjcxIHYtMy43OSBsMi41NywtMS4zIDIuMDYsLTMuODYgLTEuMywtMy44OSAxLjQxLC0yLjEyIDEuNzUsLTEuNDMgdi0xLjQgbC0xLjk5LC0zLjQ0IDAuNDcsLTUuODcgMi41NSwtMi4wNCA0LjM2LC0xLjY4IDIuMjMsLTIuOTYgMC45MywtMi41NCAtMS42MywtNC43MSAwLjc4LC0zLjk1IDEuMTYsLTEuNjQgMC41MSwtMy4zMSAyLjQzLC0xLjQxIDEuNTEsLTEuMTIgMS44OSwwLjM5IDEuMTQsMS40MiAxLjk2LDAuMTUgMC45NSwtMS45NiAzLjExLC0yLjA3IDYuOTQsLTMuNTMgLTAuMjEsLTIuOTggMS40NywtMi4zNSA0Ljc3LC0wLjI1IDEuMjYsMC44OCAwLjc0LDMuNTMgLTAuNSwxLjAyIDIuMjksMi41NyAxLjc3LDQuNzcgMS41OSwzLjExIDAuMTYsMC45NSAzLjU5LDAuMjggMS4yMiwwLjQzIDQuMDUsLTIuNTggMi4zNywtNC4wNyAxLjQ3LDAuNzcgMy4zLDUuMDUgMi4wNSwxLjE4IDIuNDYsLTEuNCA0Ljc3LC0xLjg2IDIuNzUsMC41MyAyLjA0LDEuNDUgLTEuMDUsMS40MyBoLTMuMTcgbDIuMTYsMS41NSAtMS44OCwxLjg4IC0wLjI2LDMuNTEgLTEuNDIsMS4xOSAtMy4zNiwyLjMzIC0wLjY3LDMuNjEgLTAuNzMsLTAuOTIgLTMuNiwtMC41NSAtMC44NiwzLjE0IDMuODcsMy4zNSAwLjkxLDEuNTkgLTEuNjksMi4xNyAtMS4zMSw0LjIgMS41MiwyLjU0IC0wLjUxLDIuMjYgMS4yNCwyLjIzIC0yLjI4LDMuNTQgMi4zLDMuMzMgLTAuNDEsMS40MyAtMi4wMSwtMC40NSAtMi45MSwtMS44NSAtMS45NSwyLjIzIC0wLjU0LDIuOTYgMi4xMiwyLjU5IC0xLjk5LDAuNjYgLTQuMjIsMy43IDEuNTQsMi44MyAtMC44OCwxLjUzIC01LjUsMC4yNiAwLjkxLDIuNDIgMS45MSwxLjE5IC0wLjkyLDIuMDcgLTEuMTcsMS42MiBoLTQuMjMgbC0zLjEzLDEuNTYgLTEuNzUsMi41IC00LjQ0LDAuODMgMi42MSwyLjMzIDEuMTcsMi4zMiAtMS45MiwxLjkyIC0xLjk2LDMuMTkgaC0yLjg5IHY0LjIyIGwtMy44NywtMS4wMyAxLjAyLDQuNTggLTIuNjQsLTAuNDggLTAuNzcsMy41NnoiLz4KCQk8cGF0aAoJCSAgIGlkPSJwRkpfMiIKCQkgICBzdHlsZT0ic3Ryb2tlLXdpZHRoOjAuNSIKCQkgICBkPSJtODUwLjQxLDYxNy4zNyAtMC43MiwyLjUgMS4yNSwxLjc4IDEuMDcsLTIuMTR6Ii8+CgkJPHBhdGgKCQkgICBpZD0icEZKXzMiCgkJICAgc3R5bGU9InN0cm9rZS13aWR0aDowLjUiCgkJICAgZD0ibTg0OC45OCw2NDMuMDggLTAuMzYsMi4zMiAxLjYxLDEuOTcgMS42MSwtMS43OSAtMS4wOCwtMi4xNHoiLz4KCTwvZz4KCTxnIGlkPSJwR0QiPgoJCTxwYXRoCgkJICAgaWQ9InBHRF8xIgoJCSAgIGQ9Im02NTYuNTksNzU5LjYyIDEuMDIsLTMuMjggMi40MSwtMC45NyAxLjI5LC0zLjk2IDEuNDEsLTEuMjEgNi45MiwtMC44MyAtMS4wMiwtMS42NCAwLjE1LC00LjIxIDQuMiwtMC42NSAzLjUzLC0yLjcgLTEuNDUsLTMuNzIgMS4xNSwtMi4zOSA0LjE3LC0xLjczIDYuOTcsLTYgMS41MywtMS45MSAwLjE1LC0zLjUxIC0wLjk0LC0yLjE2IC0wLjEsLTQuMTQgMS43MiwtNS40NCAyLjIyLC0yLjAxIDAuMjgsLTMuMSAyLjUzLC0wLjc2IDIuMjIsLTMuMTMgLTAuNzUsLTUuMTIgMi41MSwtMi40NyAwLjEsLTIuNDcgLTAuOTEsLTEuOCAtMC4xNCwtMS41MyAtMS4yNSwtMS45NyAtMC4xMSwtMS45OCAyLjgxLC0xLjAzIDEuNzQsLTIuNDYgLTEuMDYsLTIuMjggMC44OSwtNC4wNiA3LjU3LC0wLjU5IDQuOTYsNC41IDMuMTUsLTAuNSAwLjE2LC00Ljk0IC0xLjYyLC0yLjI3IDAuNTcsLTEuNSA1LjkzLC00LjM3IDMuOTUsMi41NiA2Ljg2LC0wLjQxIDMuMDMsLTIuNTYgMS42MiwxLjQ5IDAuNjEsMS41MyAzLjkxLDAuMSAzLjQ1LC0xLjk1IDIuNjYsLTAuNDQgMi4wMywxLjE2IDEuMDksMi40NSAtMC45LDIuNjEgLTMuNzIsMi41MSAtMC45NywzLjY4IC0yLjgxLDMuNjIgNC4yOCwzLjAzIDE0LjIyLC01LjA4IDQuMjksLTIuODEgaDEuNDQgbDUuMSwzLjUgMS45NiwtMC4yNSAwLjk0LC0xLjg3IC0xLjI4LC0zLjE5IDAuNjksLTEuNTkgMy44MSwtMS4zOCAyLjQ3LDAuOTcgMy4yOCwtMC42NiAyLjgxLDEuNiAyLjQxLDIuOSAzLjUsLTEuNDcgMC45MSwwLjM4IDAuODcsMi41IDIuMjIsMS45NCAyLjg0LDMuOSAwLjMyLDUuMDMgMy4wMyw1LjA0IDAuMSwxLjA5IDEuNTYsMS4wMyAwLjMyLDAuODcgLTEuOTgsMi44MyAxLjksMS42NyAtMy40LDEuNTggLTUuNzcsMC41MSAtMC4xLDAuNDcgMS45MywwLjczIDEuMzMsMi4yMSAtMy45MiwxLjcyIC0wLjQ5LDUuMjUgLTQuNjcsMC43NCAtMy4wNCwyLjI3IC0yLjI3LDAuNTEgLTMuNywyLjcxIC00LjA5LC0yLjI5IC0xLjE4LDEuNDggLTAuNzMsNC4xNCBoLTIuMzUgbC0wLjI0LC0yLjE4IC0xLjQ0LC0wLjg2IC0zLjIsMC4yNiAtMy42MiwzLjM3IC0xLjQ3LDIuNDUgLTIuOTIsMC4yMiAtMC41MiwtMy45IC0zLjk3LDEuOTkgLTAuMjYsMy41NyAtMi42NywtMS4yNiAtMy43NywxLjUgLTMuOTMsMS4zNSAtMi42NywwLjE2IC0yLjI0LC0yLjEgLTEuMDQsLTIuNTIgLTIuMjgsMC4yMSAtMS4yOSwtMS4yOCAtMC45OSwtMC43NCAtMC44NywyLjMgMC43NywxLjIxIDAuMjIsMS4wNyAwLjI2LDIuNjEgMS40MSwzLjY4IDAuMjQsMS43MiAtMC4xMSwwLjE5IC0yLjM1LDEuMzkgLTIuMzksLTIuMyAtMC40LDAuMjggMS4yNCwzLjA3IC0zLjI2LDQuMTkgLTMuNDUsLTQuNDMgLTEuMTQsMi41NiAwLjM5LDUuNyBoLTMuODYgbC00LjI2LDMuMDEgLTMuOSwtMS4wNCAtMC43OCwyLjMyIGgtNy4yIGwtMi4zMiwxLjI5IC0zLjE4LDEuMDYgdjIuMzIgbC0zLjExLDIuMTUgaC0zLjI5IGwtMS43OCwxLjUyIC01LjU4LDAuMjYgLTEuNzcsMi4yNyAtNC4wNSwwLjI2IC0zLjUzLDQuOCAtMi40OSwwLjI1IC0zLjYsMi41NyAtMi4zOSwyLjQgMS4wOSwzLjU0IDIuNzYsMSAwLjc1LDMuNDggMy40OSwzLjQ5IC0wLjIyLDEuMzIgLTMuNDEsMy40IC03LjI4LDAuMjUgLTAuNjYsLTIuMTkgMS40MywtMS4xMyAtNC41MSwtMi4zOSAtMC41MSwtNS44NSAtMi43MywtMC43NCAwLjk3LC03LjgyIDIuNzYsLTQuMjYgMS40NCwtMi42eiIvPgoJCTxnIGlkPSJwR0RpIiBzdHlsZT0ic3Ryb2tlLXdpZHRoOjAuNSI+CgkJCTxwYXRoCgkJCSAgIGlkPSJwR0RfMiIKCQkJICAgZD0ibTY3Mi41NSw3NjcuOSAtMS42MSwxLjA3IDAuNTQsMC45IDIuNSwtMC4xOCAwLjUzLC0xLjk3eiIvPgoJCQk8cGF0aAoJCQkgICBpZD0icEdEXzMiCgkJCSAgIGQ9Im03MzEuODUsNzM5LjkzIC0wLjg2LDEuMjEgMS4wNiwwLjI2eiIvPgoJCQk8cGF0aAoJCQkgICBpZD0icEdEXzQiCgkJCSAgIGQ9Im03MTkuMSw3NDkuMjggdjEuNTIgbDEuMjQsMC41IDAuMSwtMy4wNHoiLz4KCQkJPHBhdGgKCQkJICAgaWQ9InBHRF81IgoJCQkgICBkPSJtNzE2LjI3LDc0OS43IC0xLjA5LDEuOTggMS4xNCwtMC4xIDAuODgsLTEuMDd6Ii8+CgkJCTxwYXRoCgkJCSAgIGlkPSJwR0RfNiIKCQkJICAgZD0ibTcwMS4xNyw3NTQuMDggLTAuMTMsMS4wMSAxLjUyLC0wLjc2IHYtMS44OXoiLz4KCQk8L2c+Cgk8L2c+Cgk8cGF0aAogICAgICAgaWQ9InBHWCIKICAgICAgIGQ9Im01NjcuNzUsNzI1LjU5IDcuMTYsLTcuMTUgMi45LDAuNSAxLjg1LC0wLjY2IDAuNTksLTYuODQgMC41LC0xLjQ3IC0zLjYzLC00LjUzIC00LjE4LDEuNjggLTQuNiwtMi4zNCAtMy4yNSwyIC00LjY4LC0yLjE5IC0wLjY2LC0zLjkzIC0yLjcyLC0zLjE5IC0yLjE2LDEuMzQgLTEuMjgsLTAuOSAtMy4yNSwwLjI4IC0wLjcyLDEuOTcgLTEuNCwtMSAtMi42LC00LjYgMC44NSwtMi40IDQuMzQsMS4xNSA1LjI4LC0zLjM0IDIuNjYsLTMuNiA1LjgxLDAuNzIgMS43OCwyLjc4IDMuOTQsMC40NCAyLjEzLDEuMzEgMi4wOSwtMC4xMiAxLjE5LDEuMTYgNC4zMSwtMi43NSAtMC4xMywtMy44NSAyLjgyLC0wLjQgNy4xOCwtNC45NCAzLjkxLC0wLjM4IDEuOTEsLTEuODcgMS41MywtMi45NyAzLjgxLC0zLjU2IDEuNDcsMC44MSAwLjg3LDIuNjYgMi44MiwyLjA5IDIuNTksLTAuNTYgNC4xOSwzLjM0IDIuMTUsLTEuNDcgMi41NCwtMC40NCAxLjQzLC0zLjgxIDEuNiwtMi4xMiAyLjU5LC0xLjMyIDQuNzUsMi45NyAyLjQxLC00LjQ3IDQuNzgsLTAuMTIgMS4wMywtMS43NSAtMS41NiwtMS45NCAwLjY1LC0xLjE1IDIuMjUsLTEuMDcgMi42MywxLjAzIDQuMjIsLTUuNzUgMi4zNywtMC4xIDEuODEsMS40MSBoMS41IGwxLjc1LC0xLjg1IDAuNjYsLTIuMzcgMS45MSwtMy4wNiAxLjUsLTAuMjIgMS41LDEuNTMgMC4xMiwzLjUgMy4zMSwwLjIyIDUuMjIsLTYuNDQgMS4wMywtMS40NCA0LjE5LDAuNzUgMi42OSwtMi4wOSA1LjY5LDEuODQgLTAuMzgsNi40NCAxLjEzLDEuMjggMy41NiwwLjE2IC0wLjEsMi4zNCAtMS4zNSwxLjk0IC0wLjQ3LDYuMjIgLTIuMTUsMS4zNyAtMC40NywyLjM1IC0yLjcyLDMuMjUgLTAuMzEsMi40IDEuNjIsMS42NiAzLjk0LC00LjE5IGgyLjA2IGwxLjg4LDEuOTQgMC42NSw3LjMxIDAuNzUsMC43NSAxLjYzLC0xLjAzIDEuMTYsLTIuMTIgNS45NiwwLjIxIDAuNTQsMi4yNSAxLjI4LDIuMjUgMC4xMiwxLjY2IDAuOTEsMS41IC0wLjI4LDIuMDkgLTIuMzgsMi4yMiB2Mi4zNSBsMC42OSwzLjA5IC0yLjI1LDMuMDkgLTIuNTYsMC43NSAtMC4zOCwzLjA3IC0yLjE1LDIuMDMgLTEuNjMsNS41MyAwLjEsNC4yNSAxLjEsMi4xNiAtMC4zNSwzLjYyIC01LjU2LDUuNSAtNC41MywyLjg0IC0yLjYzLDAuODggLTEuMDMsMi40NyAxLjQxLDMuNTMgLTMuNjksMi44NyAtNCwwLjYzIC0wLjIyLDQuMDkgMC44NSwxLjQ3IC0xLjc4LDAuOTcgLTQuNTcsMC4yMiAtMS45MywxLjQ3IC0xLjE5LDMuODEgLTIuNDEsMC44OCAtMC45LDMuMjEgaC0wLjUxIGwtMy4wOCwtMy44NCAtMS42NiwwLjM0IDEuMDIsNC4zIC01Ljg3LDEuMjEgLTEuNTEsMS4wOSAtMC45NywtMy44MyAtMi44NywtMC43OCAtMi45MiwtMS42IC0xLjQ2LDEuNDYgLTIuMzEsLTMuMDMgLTAuODIsLTMuMjMgLTMuMiwwLjg3IHY0LjgxIGwtMi43LDAuNzQgLTEsMi4yMyBoLTEuNzYgbC0wLjU4LC0wLjUzIC0zLjUxLDEuMzkgLTQuMTQsLTIgLTYuMjUsMS42NSAtNy45NywtMy45MyAtMi40LC0yLjcyIC02LjUzLC0xLjQ3IC0xLjM1LC03LjAzIC0xLjUzLC0xLjUgMC40MSwtMy4xMyAzLjQzLC0zLjE5IC0wLjM0LC0zLjE1IC01LjQxLC0yLjQxIC00LjIxLDEuNiAtNC4xMywtMi44MiAtNC4zNCwxLjY2IC03LjM1LC00LjV6Ii8+Cgk8cGF0aAogICAgICAgaWQ9InBISSIKCSAgIGQ9Im02NTguMjYsNzk0LjMzIDUuMTgsMC44OSAzLjIyLC0wLjcxIDAuODksLTEuNjEgNi42MSwtMC44OSA0LjI4LC0xLjI1IDQuODIsLTIuMTQgMS40MywwLjUzIHYzLjU3IGwxLjQzLDMuOTMgMC41NCwzLjQgLTIuNSwyLjE0IC0yLjY4LDMuNzUgLTIuNjgsNS43MSAtMC44OSw2LjI1IC0wLjcyLDQuNjUgLTIuMzIsMS4wNyBoLTIuMTQgbC0zLjU3LDQuNDYgLTAuMTgsMS45NyAtMy4yMiwwLjE3IC0zLjU3LDAuOSB2My41NyBsLTQuNDYsMC43MSAtMi4xNCwtMS45NiAtNi4wOCwwLjM2IC00LjI4LC0xLjk3IC01LjM2LC0yLjMyIC0wLjcxLC00LjI5IC0xLjI1LC0zLjAzIC0wLjksLTQuODIgMC45LC0yLjMyIC0wLjcyLC0yLjUgMS4yNSwtMi42OCA3LjY4LC01LjM2IDIuNjgsLTAuNzEgMS40MywtMi4zMyAtMi41LC0wLjE3IHYtMi4xNSBsMi4xNCwtMS40MyAzLjkzLDAuMTggMS40MywtMC43MSB2LTEuNzkgbDEuNzgsLTAuODl6Ii8+Cgk8ZyBpZD0icEhLIj4KCQk8cGF0aAoJCSAgIGlkPSJwSEtfMSIKCQkgICBkPSJtNzQ0LjE0LDcyOC40OCAzLjkxLC0xLjMgMi45LDIuNDYgLTEuOTEsMS4xOCAwLjUxLDEuNiAtMi40MiwtMC40NCAtMS43LC0wLjQ1IC0yLjIyLDAuMjJ6Ii8+CgkJPHBhdGgKCQkgICBpZD0icEhLXzIiCgkJICAgc3R5bGU9InN0cm9rZS13aWR0aDowLjUiCgkJICAgZD0ibTc0NC4xNCw3MzQuMjkgLTMuNDIsMC41NyAzLjE0LC0yLjMxeiIvPgoJCTxwYXRoCgkJICAgaWQ9InBIS18zIgoJCSAgIHN0eWxlPSJzdHJva2Utd2lkdGg6MC41IgoJCSAgIGQ9Im03NDkuMzEsNzMzLjQxIC0wLjk3LDAuODIgLTEuMjksLTEuMDZ6Ii8+CiAgICA8L2c+Cgk8ZyBpZD0icE1PIj4KCQk8cGF0aAoJCSAgIGlkPSJwTU9fMSIKCQkgICBkPSJtNzMzLjMxLDczNi40IDEuODIsLTEuMzkgLTAuNjEsMS4xNnoiLz4KCQk8cGF0aAoJCSAgIGlkPSJwTU9fMiIKCQkgICBzdHlsZT0ic3Ryb2tlLXdpZHRoOjAuNSIKCQkgICBkPSJtNzM1Ljc3LDczNi40OCAtMS43OSwxLjQzIDEuNjEsMC44OXoiLz4KCTwvZz4KICA8L2c+CiAgPGcKICAgICBpZD0ibGF5ZXI3IgoJIGNsYXNzPSJib3JkZXJzIgogICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOm5vbmU7c3Ryb2tlLW9wYWNpdHk6MSI+CiAgICAgIDxnCgkJaWQ9IkNsYWltZWRfYm9yZGVycyIKCQlzdHlsZT0ic3Ryb2tlOiM4MDgwODA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5OjIsNDsiPgoJCTxwYXRoCgkJCWlkPSJiU291dGhUaWJldF83MTkiCgkJCWQ9Im0gMzAwLjg5LDYzNS4wMSAzLjU2LDAuMjkgNC4wNywtMC43NSAyLjk0LC0xLjAxIDIuNjcsMi4wMyAzLjQ3LDAuMTggMy4zOCwwLjc1IDMuNDUsLTAuNTEgMS44OCwwLjM1IDAuNjgsLTAuMjIgNi42MSwtMS4zOSAwLjg0LC0zLjM2IDMuMjUsLTMgMi42OSwtMS41OSAyLjc0LC0zLjA4IDEwLjg1LC0yLjE2IDMuMDEsLTEuODEgMi41MiwtMC42MiAxLjk5LC0xLjI4IDIuMjUsLTAuOCAxLjQ0LC0zLjQ3IDExLjA5LC0zLjQ3IDAuNzEsMS4zOSAxLjU0LDEuMDQgMi45LC0wLjEgMS42MywtMC42NCAxLjI4LDIuMDQgMS41MywwLjMxIDAuMzMsLTAuNDcgNy41OCw2LjEgMi43OCwxLjExIDEuNDIsMS41NCAwLjEsMS4zMyIvPgoJCTxwYXRoCgkJCWlkPSJiQWtzYWlfNzIxIgoJCQlkPSJtIDc2LjM3NSw0NTAuNSAwLjc1LC0zLjYzIGgxLjkzOCBsMC4yNSwtMS41NiAwLjMxMiwtMC44NyAtMC45MzcsLTIgdi0xLjQ0IGwtMC4zNzUsLTEuMTMgMS45MzcsLTEuMzcgMS42MjUsMSAwLjgxMywtMC4yNSAxLjEyNSwwLjEgaDEuNDM3IGwyLjcwMywwLjg2IDIuNTQ3LC0xLjggLTAuMTQxLC0xLjQgMC4zMjksLTAuNDEgMC43NSwwLjMxIDAuMjgxLC0wLjU2IDAuMDUsLTMuNDggMC4yMDMsLTAuODUgMS4wNzgsLTAuMzcgMi4zNTksMC43OCAwLjY3MiwtMC41NSAtMC4yODEsLTEuMjkgMC4zNTksLTAuNTggMS43ODIsLTAuMTkgMS45MjEsLTEuODYgMi40MTgsMC41OCAxLjcsLTIuNzIgMS42OSwtMS4zMyAwLjg5LC0zLjY4IDAuMTEsLTEuNSAyLjI0LC0xLjgyIDAuMzcsLTAuNzYgLTAuMTUsLTEuNTggMC42LC0xLjAzIDEuNjgsLTAuOTIgMC43OCwtMi4wNCAtMC42MSwtMC41IC0wLjk5LDAuMjEgLTAuOTYsLTEuMjggLTAuODUsLTAuMSAtMC44OSwxLjY5IC0xLjg5LDAuOTcgLTAuNzgsLTAuNTggdi0yLjc4IGwtMC44NSwtMS43NiAtMS4xNSwwLjk4IC0wLjc1LC0wLjMzIC0wLjI3LC0xLjQ4IC0xLjgxLC0wLjU1IC0wLjY1NCwtMi44NCAwLjc5NCwtMC43MiAtMC4zNCwtMC44MyAtMC42MSwtMC4xNCAtMC4xNDEsLTAuOCAtMS41MzEsMC4xIC0wLjk2OSwtMC44IDAuNDIyLC0xLjU1IC0wLjM5LC0wLjY4IC0xLjQ1NCwtMC41NCAtMS42MjUsMC4zMiBoLTEuMDMxIGwtMS40MDYsLTAuNDMgLTMuNTYzLDAuNjggLTEuNDA2LC0xLjExIC0xLjMyOCwtMC40IC0xLjE3MiwwLjI2IC0wLjg1OSwxLjI4IC0zLjAxNiwwLjkxIC0xLjI5NywtMC4xNCAtMS4yMDMsMC42MiAtMS40NTMsMC4xMyAtMS4zNTksMS4wOCAtMS4xODgsMC4xIC0wLjk2OSwwLjYzIC0wLjQwNiwwLjk3IC0wLjg3NSwtMC4xMyAtMS4yMzQsLTAuODQgaC0wLjYyNSBsLTAuOTUzLDEuMDYiLz4KCQk8cGF0aAoJCQlpZD0iYkFrc2FpXzcyMyIKCQkJZD0ibSA3Ny42ODgsNDcxLjIyIDAuNzIzLC0xLjczIHYtMS4xMyBsMC42LC0xLjg4IC0wLjQ1OCwtMS41NSAwLjcyMiwtMS4wNSAtMC4xODYsLTIuMjkgLTEuMTU2LC0xLjQgMS4xMjUsLTIuNSIvPgoJCTxwYXRoCgkJCWlkPSJiQWtzYWlfNzI1IgoJCQlkPSJtIDY0LjgzOSw0ODMuMzMgLTMuMDksLTUuNTQgLTAuNzgsMC4xMiAtMC4wOSwtMS42OSAxLjQzOCwtMC41Ii8+CgkJPHBhdGgKCQkJaWQ9ImJTb3V0aEFrc2FpXzcyNyIKCQkJZD0ibSA3MS4zMzksNTAzLjM2IC0xLjc2LC0wLjEgLTMuMTExLC0xLjE0IC0wLjQ5OSwtMS4yOSAtMC40MDYsLTEuOSAtMC41NjMsLTEuNTciLz4KCQk8cGF0aAoJCQlpZD0iYlNvdXRoQWtzYWlfNzI5IgoJCQlkPSJtIDg1LjYyLDUxNi4zIC0wLjU0MSwtMC41NiAtMS4wMTgsLTAuMjMgMC4xNTgsLTIuOTUiLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=\"","<script setup lang=\"ts\">\nimport { nextTick, reactive, ref } from \"vue\";\nimport {\n  clearArray,\n  deleteArrayItem,\n  flushArray,\n  randomInt,\n  toObjectString,\n  withinErrorMarginNumber\n} from \"@zyzgroup/core-common\";\nimport {\n  ArrowShape,\n  BallShape,\n  Color,\n  ConfettiShapeCombo,\n  CrossShape,\n  CurveShape,\n  DrawShape,\n  EllipseShape,\n  FoxShape,\n  HeartShape,\n  HeartVariantShape,\n  LineShape,\n  PointsShape,\n  RabbitShape,\n  RectShape,\n  SegmentShapeCombo,\n  Shape,\n  ShapeCombo,\n  ShipShapeCombo,\n  SliderShapeCombo,\n  StarShape,\n  TextShape,\n  Timeline,\n  TreeShapeCombo,\n  angle,\n  animateShapes,\n  distance,\n  followMouseShape,\n  polymorphTween,\n  targetToAfterDropShape,\n  toDegree\n} from \"@zyzgroup/core-web\";\nimport Page from \"../components/base/Page.vue\";\nimport FPSStats from \"../components/fps/FPSStats.vue\";\nimport Box from \"../components/base/Box.vue\";\nimport Button from \"../components/form/Button.vue\";\nimport InputRange from \"../components/form/InputRange.vue\";\n\nconst SVGShapes = ref([]);\nlet svgStart = (d) => {};\nlet svgFrame = (d) => {};\n\nconst CanvasShapes = ref([]);\nlet canvasStart = (d) => {};\nlet canvasFrame = (d) => {};\n\nimport SVGRawString from \"@root/assets/svgs/china_blank_province_map.svg\";\n// import SVGRawString from \"@root/assets/svgs/userwork.svg\";\nconst linePicture = new ShapeCombo({\n  svg: SVGRawString,\n  forceWidth: 300,\n  attrs: {\n    \"stroke-width\": \"1\"\n    // stroke: \"#ff0000\",\n    // fill: \"none\"\n  },\n  drag: {\n    enable: true,\n    followSibling: true\n  }\n});\nconst linePictureClone = linePicture.clone();\n\nconst strokeDashPath = new Shape({\n  initD:\n    \"M62.9 14.9c-25-7.74-56.6 4.8-60.4 24.3-3.73 19.6 21.6 35 39.6 37.6 42.8 6.2 72.9-53.4 116-58.9 65-18.2 191 101 215 28.8 5-16.7-7-49.1-34-44-34 11.5-31 46.5-14 69.3 9.38 12.6 24.2 20.6 39.8 22.9 91.4 9.05 102-98.9 176-86.7 18.8 3.81 33 17.3 36.7 34.6 2.01 10.2.124 21.1-5.18 30.1\",\n  attrs: {\n    stroke: \"#ff0000\",\n    strokeWidth: \"4\"\n  }\n});\nconst totalLength = ref(+strokeDashPath.pathD().getTotalLength().toFixed(0)); // 988\nconst dasharray = ref(totalLength.value);\nconst dashoffset = ref(Math.floor(totalLength.value / 2));\nstrokeDashPath.setAttr({\n  strokeDasharray: `${dasharray.value} ${dasharray.value}`,\n  strokeDashoffset: `${dashoffset.value}`\n});\nfunction changeDasharray(v: number) {\n  dasharray.value = v;\n  strokeDashPath.setAttr(\n    \"strokeDasharray\",\n    `${dasharray.value} ${dasharray.value}`\n  );\n}\nfunction changeDashoffset(v: number) {\n  dashoffset.value = v;\n  strokeDashPath.setAttr(\"strokeDashoffset\", `${dashoffset.value}`);\n}\n\nconst currentType = ref(\"\");\nconst cases = [\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        degree: 0,\n        attrs: { stroke: \"#0000ff\", 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        attrs: { stroke: \"#ff0000\", strokeWidth: \"1\" },\n        drag: {\n          enable: true\n        }\n      });\n      tree.comboMove(100, 100);\n      tree.comboScale(0.8);\n      const treeClone = tree.clone();\n\n      const treeRotate = tree.clone();\n      treeRotate.setAttr(\"stroke\", \"#00ff00\");\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 rect2 = rect.clone() as RectShape;\n      rect2.update({\n        rectBorderRadius: 0\n      });\n      rect2.moveY(40);\n      const rectClone = rect.clone();\n      const rect2Clone = rect2.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        showFlame: true,\n        attrs: {\n          stroke: Color.random().toString()\n        },\n        drag: {\n          enable: true\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        segmentWidth: 100,\n        segmentHeight: 20,\n        // segmentCornerRadius: 5\n        attrs: {\n          stroke: Color.random().toString()\n        },\n        drag: {\n          enable: true\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: 100,\n        sliderWidth: 200\n      });\n      slider.comboMove(350, 200);\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      const ellipse = new EllipseShape({\n        x: 500,\n        y: 100,\n        rx: 50,\n        ry: 10,\n        drag: {\n          enable: true\n        },\n        attrs: {\n          fill: Color.random().toString()\n        }\n      });\n      const ellipseClone = ellipse.clone();\n\n      const text = new TextShape({\n        x: 500,\n        y: 140,\n        // text: \"你好世界！Hello World!\",\n        text: \"你好世界！\\nHello World!\",\n        drag: {\n          enable: true\n        },\n        attrs: {\n          fill: Color.random().toString()\n        }\n      });\n      const textClone = text.clone();\n\n      const curve = new CurveShape({\n        attrs: {\n          stroke: \"#00ff00\",\n          \"stroke-width\": \"2\"\n        },\n        drag: {\n          enable: true\n        },\n        isLineThrough: false,\n        x: 0,\n        y: 0,\n        toX: 100,\n        toY: 0,\n        cx: 50,\n        cy: -50\n      });\n      curve.moveTo(300, 200);\n      const curveClone = curve.clone();\n\n      SVGShapes.value = [\n        line,\n        lineDegree,\n        tree,\n        treeRotate,\n        rect,\n        rect2,\n        heart,\n        heartVariant,\n        star,\n        fox,\n        rabbit,\n        cross,\n        ship,\n        segment,\n        segmentRotate,\n        slider,\n        ellipse,\n        text,\n        curve,\n        marker\n      ];\n      CanvasShapes.value = [\n        lineClone,\n        lineDegreeClone,\n        treeClone,\n        treeRotateClone,\n        rectClone,\n        rect2Clone,\n        heartClone,\n        heartVariantClone,\n        starClone,\n        foxClone,\n        rabbitClone,\n        crossClone,\n        shipClone,\n        segmentClone,\n        segmentRotateClone,\n        sliderClone,\n        ellipseClone,\n        textClone,\n        curveClone,\n        markerClone\n      ];\n\n      svgStart = (d) => {};\n      canvasStart = (d) => {};\n      svgFrame = (d) => {};\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"曲线\",\n    onClick: () => {\n      currentType.value = \"曲线\";\n      const gap = 50;\n      const shape1SVG = new CurveShape({\n        attrs: {\n          stroke: \"#ff0000\",\n          \"stroke-width\": \"2\"\n        },\n        isLineThrough: false\n      });\n      const shape2SVG = new CurveShape({\n        attrs: {\n          stroke: \"#00ff00\",\n          \"stroke-width\": \"2\"\n        },\n        isLineThrough: true\n      });\n      const shape1Canvas = new CurveShape({\n        attrs: {\n          stroke: \"#ff0000\",\n          \"stroke-width\": \"2\"\n        },\n        isLineThrough: false\n      });\n      const shape2Canvas = new CurveShape({\n        attrs: {\n          stroke: \"#00ff00\",\n          \"stroke-width\": \"2\"\n        },\n        isLineThrough: true\n      });\n      SVGShapes.value = [shape1SVG, shape2SVG];\n      CanvasShapes.value = [shape1Canvas, shape2Canvas];\n      svgStart = (d) => {\n        const x = gap;\n        const y = d.rect.height - gap;\n        shape1SVG.update({\n          toX: d.rect.width - gap * 2,\n          toY: 0\n        });\n        shape1SVG.moveTo(x, y);\n        shape2SVG.update({\n          toX: d.rect.width - gap * 2,\n          toY: 0\n        });\n        shape2SVG.moveTo(x, y);\n      };\n      canvasStart = (d) => {\n        const x = gap;\n        const y = d.rect.height - gap;\n        shape1Canvas.update({\n          toX: d.rect.width - gap * 2,\n          toY: 0\n        });\n        shape1Canvas.moveTo(x, y);\n        shape2Canvas.update({\n          toX: d.rect.width - gap * 2,\n          toY: 0\n        });\n        shape2Canvas.moveTo(x, y);\n      };\n      svgFrame = (d) => {\n        shape1SVG.update({\n          cx: d.mpg.current.x - shape1SVG.x,\n          cy: d.mpg.current.y - shape1SVG.y\n        });\n        shape2SVG.update({\n          cx: d.mpg.current.x - shape2SVG.x,\n          cy: d.mpg.current.y - shape2SVG.y\n        });\n      };\n      canvasFrame = (d) => {\n        shape1Canvas.update({\n          cx: d.mpg.current.x - shape1Canvas.x,\n          cy: d.mpg.current.y - shape1Canvas.y\n        });\n        shape2Canvas.update({\n          cx: d.mpg.current.x - shape2Canvas.x,\n          cy: d.mpg.current.y - shape2Canvas.y\n        });\n      };\n    }\n  },\n  {\n    name: \"多边形\",\n    onClick: () => {\n      currentType.value = \"多边形\";\n      const points: { x: number; y: number }[] = [];\n      const ps = new PointsShape({\n        attrs: { stroke: \"#ff0000\", fill: \"rgba(0,0,0,0.1)\" },\n        drag: { enable: true },\n        isStraight: true\n      });\n      const psClone = ps.clone() as PointsShape;\n      psClone.update({\n        isStraight: false\n      });\n      SVGShapes.value = [ps];\n      CanvasShapes.value = [psClone];\n      svgStart = (d) => {\n        const nums = 10;\n        for (let i = 0; i < nums; i++) {\n          const point = {\n            x: Math.random() * d.rect.width,\n            y: Math.random() * d.rect.height\n          };\n          points.push(point);\n          const rect = new RectShape({\n            x: point.x,\n            y: point.y,\n            rectWidth: 6,\n            rectHeight: 6,\n            attrs: {\n              fill: i == 0 ? \"#ff0000\" : i == nums - 1 ? \"#00ff00\" : \"#666666\"\n            }\n          });\n          SVGShapes.value.unshift(rect);\n          CanvasShapes.value.unshift(rect);\n        }\n        ps.update({ points });\n        psClone.update({ points });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {};\n      canvasFrame = (d) => {};\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      });\n      const arrowClone = arrow.clone();\n      const arrowLine = new LineShape({\n        lineLength: 0,\n        attrs: {\n          \"stroke-width\": \"1\",\n          stroke: \"#666666\"\n        }\n      });\n      const arrowLineClone = arrowLine.clone() as LineShape;\n      SVGShapes.value = [arrowLine, arrow];\n      CanvasShapes.value = [arrowLineClone, arrowClone];\n      svgStart = (d) => {\n        const centerX = d.rect.width * 0.5;\n        const centerY = d.rect.height * 0.5;\n        arrowLine.moveTo(centerX, centerY);\n      };\n      canvasStart = (d) => {\n        const centerX = d.rect.width * 0.5;\n        const centerY = d.rect.height * 0.5;\n        arrowLineClone.moveTo(centerX, centerY);\n      };\n      svgFrame = (d) => {\n        followMouseShape(arrow, d.mpg);\n        arrowLine.lineToAbsolutePoint(arrow);\n      };\n      canvasFrame = (d) => {\n        followMouseShape(arrowClone, d.mpg);\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        drag: {\n          enable: true\n        }\n      });\n      const dragBallClone = dragBall.clone();\n      SVGShapes.value = [dragBall];\n      CanvasShapes.value = [dragBallClone];\n      const centerSVG = { x: 0, y: 0 };\n      const centerCanvas = { x: 0, y: 0 };\n      svgStart = (d) => {\n        const centerX = d.rect.width * 0.5;\n        const centerY = d.rect.height * 0.5;\n        dragBall.moveTo(centerX, centerY);\n        centerSVG.x = centerX;\n        centerSVG.y = centerY;\n      };\n      canvasStart = (d) => {\n        const centerX = d.rect.width * 0.5;\n        const centerY = d.rect.height * 0.5;\n        dragBallClone.moveTo(centerX, centerY);\n        centerCanvas.x = centerX;\n        centerCanvas.y = centerY;\n      };\n      svgFrame = (d) => {\n        targetToAfterDropShape(dragBall, centerSVG);\n      };\n      canvasFrame = (d) => {\n        targetToAfterDropShape(dragBallClone, centerCanvas);\n      };\n    }\n  },\n  {\n    name: \"球体碰撞检测\",\n    onClick: () => {\n      currentType.value = \"球体碰撞检测\";\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 ball2 = new BallShape({\n        ballRadius: 30,\n        attrs: {\n          fill: Color.random().toString()\n        },\n        mass: 1,\n        vx: -2\n      });\n      SVGShapes.value = [ball1, ball2];\n      CanvasShapes.value = [ball1, ball2];\n      svgStart = (d) => {\n        const centerY = d.rect.height * 0.5;\n        ball1.moveTo(50, centerY);\n        ball2.moveTo(d.rect.width - 50, centerY);\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        // ball1.checkCollision(ball2);\n        // ball1.animate();\n        // ball2.animate();\n        animateShapes([ball1, ball2], { enableCollision: true });\n      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"球体回弹检测\",\n    onClick: () => {\n      currentType.value = \"球体回弹检测\";\n      const numBalls = 15;\n      const balls: BallShape[] = [];\n      for (let i = 0; i < numBalls; i++) {\n        const ballRadius = Math.random() * 20 + 15;\n        const ball = new BallShape({\n          ballRadius,\n          attrs: {\n            fill: Color.random().toString()\n          },\n          mass: ballRadius,\n          vx: Math.random() * 10 - 5,\n          vy: Math.random() * 10 - 5\n        });\n        balls.push(ball);\n      }\n      const wall = {\n        x: 0,\n        y: 0,\n        width: 0,\n        height: 0\n      };\n      SVGShapes.value = [...balls];\n      CanvasShapes.value = [...balls];\n      svgStart = (d) => {\n        balls.forEach((b) => {\n          b.moveTo(Math.random() * d.rect.width, Math.random() * d.rect.height);\n        });\n        wall.width = d.rect.width;\n        wall.height = d.rect.height;\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        animateShapes(balls, { enableCollision: true, wall });\n      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"物体引力\",\n    onClick: () => {\n      currentType.value = \"物体引力\";\n      const sun = new BallShape({\n        ballRadius: 50,\n        attrs: {\n          fill: Color.random().toString()\n        },\n        mass: 10000\n      });\n      sun.mass = 10000;\n      const planet = new BallShape({\n        ballRadius: 10,\n        attrs: {\n          fill: Color.random().toString()\n        },\n        mass: 1,\n        vy: 7\n      });\n      SVGShapes.value = [sun, planet];\n      CanvasShapes.value = [sun, planet];\n      svgStart = (d) => {\n        const centerX = d.rect.width * 0.5;\n        const centerY = d.rect.height * 0.5;\n        sun.moveTo(centerX, centerY);\n        planet.moveTo(centerX + 200, centerY);\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        animateShapes(SVGShapes.value, { enableGravityBetweenObjects: true });\n      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"万有引力\",\n    onClick: () => {\n      currentType.value = \"万有引力\";\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          mass: radius\n        });\n        balls.push(ball);\n      }\n      SVGShapes.value = [...balls];\n      CanvasShapes.value = [...balls];\n      svgStart = (d) => {\n        balls.forEach((b, i) => {\n          b.moveTo(Math.random() * d.rect.width, Math.random() * d.rect.height);\n        });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        animateShapes(balls, {\n          enableCollision: true,\n          enableGravityBetweenObjects: true\n        });\n      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"Spring1\",\n    onClick: () => {\n      currentType.value = \"Spring1\";\n      const lines: LineShape[] = [];\n      const balls: BallShape[] = [];\n      for (let i = 0; i < 3; i++) {\n        lines.push(\n          new LineShape({ attrs: { stroke: \"#666666\" }, interactive: false })\n        );\n        balls.push(\n          new BallShape({\n            ballRadius: 10,\n            attrs: {\n              fill: Color.random().toString()\n            },\n            drag: {\n              enable: true\n            }\n          })\n        );\n      }\n      const point = new BallShape({\n        ballRadius: 20,\n        attrs: {\n          fill: \"#ff0000\"\n        }\n      });\n      SVGShapes.value = [...lines, ...balls, point];\n      CanvasShapes.value = [...lines, ...balls, point];\n      svgStart = (d) => {\n        balls.forEach((handle) => {\n          handle.moveTo(\n            Math.random() * d.rect.width,\n            Math.random() * d.rect.height\n          );\n        });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        point.animateSpringTo(balls, {\n          spring: 0.03\n        });\n        balls.forEach((handle, index) => {\n          lines[index].moveTo(point.x, point.y);\n          lines[index].lineToAbsolutePoint(handle);\n        });\n      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"Spring2\",\n    onClick: () => {\n      currentType.value = \"Spring2\";\n      const lines: LineShape[] = [];\n      const balls: BallShape[] = [];\n      for (let i = 0; i < 3; i++) {\n        lines.push(\n          new LineShape({ attrs: { stroke: \"#666666\" }, interactive: false })\n        );\n        balls.push(\n          new BallShape({\n            ballRadius: 20,\n            attrs: {\n              fill: Color.random().toString()\n            },\n            drag: {\n              enable: i == 0\n            },\n            interactive: i == 0\n          })\n        );\n      }\n      SVGShapes.value = [...lines, ...balls];\n      CanvasShapes.value = [...lines, ...balls];\n      svgStart = (d) => {\n        balls.forEach((b) => {\n          b.moveTo(d.rect.width / 2, d.rect.height / 2);\n        });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        animateShapes(balls, {\n          spring: 0.03,\n          friction: 0.9,\n          gravity: 2\n        });\n        balls.forEach((ballB, i) => {\n          if (i === 0) {\n            lines[i].moveTo(d.mpg.x, d.mpg.y);\n            lines[i].lineToAbsolutePoint(ballB);\n          } else {\n            const ballA = balls[i - 1];\n            lines[i].moveTo(ballA.x, ballA.y);\n            lines[i].lineToAbsolutePoint(ballB);\n          }\n        });\n      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"SpringConnect\",\n    onClick: () => {\n      currentType.value = \"SpringConnect\";\n      const lines: LineShape[] = [];\n      const balls: BallShape[] = [];\n      for (let i = 0; i < 3; i++) {\n        lines.push(\n          new LineShape({ attrs: { stroke: \"#666666\" }, interactive: false })\n        );\n        balls.push(\n          new BallShape({\n            ballRadius: 10,\n            attrs: {\n              fill: Color.random().toString()\n            },\n            drag: {\n              enable: true\n            }\n          })\n        );\n      }\n      SVGShapes.value = [...lines, ...balls];\n      CanvasShapes.value = [...lines, ...balls];\n      svgStart = (d) => {\n        balls.forEach((b) => {\n          b.moveTo(Math.random() * d.rect.width, Math.random() * d.rect.height);\n        });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        animateShapes(balls, {\n          springLength: 120\n        });\n        lines[0].moveTo(balls[0].x, balls[0].y);\n        lines[0].lineToAbsolutePoint(balls[1]);\n        lines[1].moveTo(balls[1].x, balls[1].y);\n        lines[1].lineToAbsolutePoint(balls[2]);\n        lines[2].moveTo(balls[2].x, balls[2].y);\n        lines[2].lineToAbsolutePoint(balls[0]);\n      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"喷泉\",\n    onClick: () => {\n      currentType.value = \"喷泉\";\n      const numBalls = 80;\n      const balls: BallShape[] = [];\n      for (let i = 0; i < numBalls; i++) {\n        const ball = new BallShape({\n          ballRadius: 2,\n          attrs: {\n            fill: Color.random().toString()\n          },\n          vx: Math.random() * 2 - 1, // [-1,1]\n          vy: Math.random() * -10 - 10 // [-20,-10]\n        });\n        balls.push(ball);\n      }\n      SVGShapes.value = [...balls];\n      CanvasShapes.value = [...balls];\n      svgStart = (d) => {\n        balls.forEach((b, i) => {\n          b.moveTo(d.rect.width * 0.5, d.rect.height);\n        });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        animateShapes(balls, { gravity: 0.5 });\n        balls.forEach((ball) => {\n          if (\n            ball.x - ball.ballRadius > d.rect.width ||\n            ball.x + ball.ballRadius < 0 ||\n            ball.y - ball.ballRadius > d.rect.height ||\n            ball.y + ball.ballRadius < 0\n          ) {\n            ball.moveTo(d.rect.width * 0.5, d.rect.height);\n            ball.vx = Math.random() * 2 - 1;\n            ball.vy = Math.random() * -10 - 10;\n          }\n        });\n      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"俄罗斯方块\",\n    onClick: () => {\n      currentType.value = \"俄罗斯方块\";\n      SVGShapes.value = [];\n      CanvasShapes.value = [];\n      const boxes: RectShape[] = [];\n      function createBox(width: number) {\n        const box = new RectShape({\n          x: Math.random() * width,\n          y: 0,\n          rectWidth: 50,\n          rectHeight: 50,\n          attrs: {\n            fill: Color.random().toString()\n          },\n          drag: {\n            enable: true\n          }\n        });\n        boxes.push(box);\n        SVGShapes.value.push(box);\n        CanvasShapes.value.push(box);\n        // SVGShapes.value = [...boxes];\n        // CanvasShapes.value = [...boxes];\n        return box;\n      }\n      let activeBox: RectShape;\n      svgStart = (d) => {\n        activeBox = createBox(d.rect.width);\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        if (d.mpg.current.isDown) {\n          // drag:暂停\n        } else {\n          if (activeBox) {\n            activeBox.animate({ gravity: 0.1 });\n          }\n          // 触底\n          if (\n            activeBox &&\n            activeBox.y + activeBox.rectHeight >= d.rect.height\n          ) {\n            activeBox.y = d.rect.height - activeBox.rectHeight;\n            activeBox = createBox(d.rect.width);\n          }\n          boxes.forEach((box) => {\n            // 相碰\n            if (activeBox && activeBox !== box && activeBox.intersection(box)) {\n              activeBox.y = box.y - activeBox.rectHeight;\n              if (activeBox.y >= activeBox.rectHeight) {\n                activeBox = createBox(d.rect.width);\n              } else {\n                activeBox = null;\n              }\n            }\n          });\n        }\n      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"物体距离\",\n    onClick: () => {\n      currentType.value = \"物体距离\";\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          interactive: false,\n          vx: Math.random() * 6 - 3,\n          vy: Math.random() * 6 - 3,\n          mass: size\n        });\n        springMassBalls.push(particle);\n      }\n      SVGShapes.value = [...springMassLines, ...springMassBalls];\n      CanvasShapes.value = [...springMassLines, ...springMassBalls];\n      svgStart = (d) => {\n        springMassBalls.forEach((b, i) => {\n          b.moveTo(Math.random() * d.rect.width, Math.random() * d.rect.height);\n        });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        animateShapes(springMassBalls, {\n          wall: {\n            x: 0,\n            y: 0,\n            width: d.rect.width,\n            height: d.rect.height,\n            cycle: true\n          },\n          // spring: 0.0005, 参数替换?\n          enableSpringMassAlpha: true\n        }).forEach(([fromX, fromY, toX, toY, alpha], i) => {\n          if (!springMassLines[i]) {\n            const l = new LineShape({\n              x: fromX,\n              y: fromY,\n              lineLength: distance(fromX, fromY, toX, toY),\n              degree: toDegree(angle(fromX, fromY, toX, toY)),\n              attrs: {\n                strokeWidth: \"1\",\n                stroke: color0.setAlpha(alpha).toString()\n              },\n              interactive: false\n            });\n            springMassLines.push(l);\n            SVGShapes.value.unshift(l);\n            CanvasShapes.value.unshift(l);\n            // SVGShapes.value = [l, ...SVGShapes.value];\n            // CanvasShapes.value = [l, ...CanvasShapes.value];\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      };\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"generateRosetta\",\n    onClick: () => {\n      currentType.value = \"generateRosetta\";\n      const rosetta = Shape.generateRosetta(120, 120, 55, 35, 6);\n      const rect = new RectShape({\n        x: 0,\n        y: 0,\n        rectWidth: 20,\n        rectHeight: 10,\n        attrs: {\n          stroke: \"none\",\n          fill: \"rgba(0,255,0,0.2)\"\n        }\n      });\n      const trail = new Shape({\n        attrs: {\n          stroke: \"red\",\n          \"stroke-width\": \"3\",\n          fill: \"none\"\n        }\n      });\n      SVGShapes.value = [trail, rect];\n      CanvasShapes.value = [trail, rect];\n      svgStart = (d) => {\n        const tl = new Timeline({ frameDuration: 15000 });\n        const st = 0.5;\n        const et = 1;\n        tl.addTween(\n          { progress: st },\n          { progress: et },\n          {\n            onUpdate: (obj) => {\n              const { point, subPathD } = rosetta.trailPath(st, obj.progress);\n              trail.pathD(subPathD);\n              rect.moveTo(point.x, point.y);\n              rect.rotateTo(point.alpha + 90);\n            }\n          }\n        );\n        tl.play();\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {};\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"Confetti\",\n    onClick: () => {\n      currentType.value = \"Confetti\";\n      if (\n        SVGShapes.value.findIndex((s) => s instanceof ConfettiShapeCombo) < 0\n      ) {\n        SVGShapes.value = [];\n        CanvasShapes.value = [];\n      } else {\n        SVGShapes.value = [...SVGShapes.value];\n        CanvasShapes.value = [...CanvasShapes.value];\n      }\n      svgStart = (d) => {\n        function fire(particleRatio: number, opts?: Record<string, any>) {\n          return new ConfettiShapeCombo({\n            shapeCreator: () =>\n              new RectShape({ rectWidth: 10, rectHeight: 10 }),\n            // shapeCreator: () => new BallShape({ ballRadius: 5 }),\n            // shapeCreator: () => new HeartShape({ heartRx: 3, heartRy: 3 }),\n            width: d.rect.width,\n            height: d.rect.height,\n            y: 0.7,\n            particleCount: Math.floor(200 * particleRatio),\n            ...opts\n          });\n        }\n        // const confetti = fire(0.5, {\n        //   particleCount: randomInt(50, 100),\n        //   spread: 70,\n        //   y: 0.6\n        // });\n        const confetti = fire(1, {\n          y: 0.6,\n          particleCount: randomInt(50, 100),\n          angle: randomInt(55, 125),\n          spread: randomInt(50, 70)\n        });\n        // const confetti = fire(0.25, {\n        //   spread: 26,\n        //   startVelocity: 55\n        // });\n        // const confetti = fire(0.2, {\n        //   spread: 60\n        // });\n        // const confetti = fire(0.35, {\n        //   spread: 100,\n        //   decay: 0.91,\n        //   scalar: 0.8\n        // });\n        // const confetti = fire(0.1, {\n        //   spread: 120,\n        //   startVelocity: 25,\n        //   decay: 0.92,\n        //   scalar: 1.2\n        // });\n        // const confetti = fire(0.1, {\n        //   spread: 120,\n        //   startVelocity: 45\n        // });\n        const confettiClone = confetti.clone();\n        SVGShapes.value.push(confetti);\n        CanvasShapes.value.push(confettiClone);\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {\n        const deletes = [];\n        SVGShapes.value.forEach((s) => {\n          if (s instanceof ConfettiShapeCombo) {\n            if (!s.update()) {\n              deletes.push(s);\n            }\n          }\n        });\n        deletes.forEach((s) => deleteArrayItem(SVGShapes.value, s));\n      };\n      canvasFrame = (d) => {\n        const deletes = [];\n        CanvasShapes.value.forEach((s) => {\n          if (s instanceof ConfettiShapeCombo) {\n            if (!s.update()) {\n              deletes.push(s);\n            }\n          }\n        });\n        deletes.forEach((s) => deleteArrayItem(CanvasShapes.value, s));\n      };\n    }\n  },\n  {\n    name: \"LinePicture\",\n    onClick: () => {\n      currentType.value = \"LinePicture\";\n      const redPoint = new BallShape({\n        x: 0,\n        y: 0,\n        ballRadius: 5,\n        attrs: { fill: \"rgba(255,0,0,1)\" }\n      });\n      const redPointClone = redPoint.clone();\n      const greenPoint = new BallShape({\n        x: 0,\n        y: 0,\n        ballRadius: 3,\n        attrs: { fill: \"rgba(0,255,0,0.8\" }\n      });\n      const greenPointClone = greenPoint.clone();\n      const boundingRect = new RectShape({\n        x: 0,\n        y: 0,\n        rectWidth: 0,\n        rectHeight: 0,\n        attrs: { fill: \"none\", stroke: \"#0000ff\", strokeWidth: \"2\" }\n      });\n      const boundingRectClone = boundingRect.clone() as RectShape;\n      SVGShapes.value = [linePicture, boundingRect, redPoint, greenPoint];\n      CanvasShapes.value = [\n        linePictureClone,\n        boundingRectClone,\n        redPointClone,\n        greenPointClone\n      ];\n      svgStart = (d) => {\n        let prevColor;\n        let prevShape;\n        d.shapeTap$.subscribe((s) => {\n          if (!s) {\n            return;\n          }\n          if (!prevColor) {\n            prevColor = s.getAttr(\"fill\");\n          }\n          if (prevShape && prevShape !== s) {\n            prevShape.setAttr(\"fill\", prevColor);\n            prevColor = s.getAttr(\"fill\");\n          }\n          s.setAttr(\"fill\", \"pink\");\n          prevShape = s;\n          const rect = s.getRealBoundingClientRect();\n          boundingRect.update({\n            rectWidth: rect.width,\n            rectHeight: rect.height\n          });\n          boundingRect.moveTo(rect.x, rect.y);\n        });\n      };\n      canvasStart = (d) => {\n        let prevColor;\n        let prevShape;\n        d.shapeTap$.subscribe((s) => {\n          if (!s) {\n            return;\n          }\n          if (!prevColor) {\n            prevColor = s.getAttr(\"fill\");\n          }\n          if (prevShape && prevShape !== s) {\n            prevShape.setAttr(\"fill\", prevColor);\n            prevColor = s.getAttr(\"fill\");\n          }\n          s.setAttr(\"fill\", \"pink\");\n          prevShape = s;\n          const rect = s.getRealBoundingClientRect();\n          boundingRectClone.update({\n            rectWidth: rect.width,\n            rectHeight: rect.height\n          });\n          boundingRectClone.moveTo(rect.x, rect.y);\n        });\n      };\n      let t1 = 0;\n      let t2 = 0;\n      const tGap = 0.01;\n      let interpolationPathIndex1 = 0;\n      let interpolationPathIndex2 = 0;\n      let totalLengthOfPath1 =\n        linePicture.shapes[interpolationPathIndex1].getTotalLength();\n      let totalLengthOfPath2 =\n        linePictureClone.shapes[interpolationPathIndex2].getTotalLength();\n      svgFrame = (d) => {\n        if (t1 > 1) {\n          interpolationPathIndex1++;\n          t1 = 0;\n          if (interpolationPathIndex1 > linePicture.shapes.length - 1) {\n            interpolationPathIndex1 = 0;\n          }\n          totalLengthOfPath1 =\n            linePicture.shapes[interpolationPathIndex1].getTotalLength();\n        }\n        t1 += tGap;\n        // 一种方式\n        let { x: x1, y: y1 } = linePicture.shapes[\n          interpolationPathIndex1\n        ].getPointAtLength(t1 * totalLengthOfPath1);\n        redPoint.moveTo(x1, y1);\n        // 另一种方式\n        let { x: x2, y: y2 } =\n          linePicture.shapes[interpolationPathIndex1].interpolate(t1);\n        greenPoint.moveTo(x2, y2);\n      };\n      canvasFrame = (d) => {\n        if (t2 > 1) {\n          interpolationPathIndex2++;\n          t2 = 0;\n          if (interpolationPathIndex2 > linePictureClone.shapes.length - 1) {\n            interpolationPathIndex2 = 0;\n          }\n          totalLengthOfPath2 =\n            linePictureClone.shapes[interpolationPathIndex2].getTotalLength();\n        }\n        t2 += tGap;\n        // 一种方式\n        let { x: x1, y: y1 } = linePictureClone.shapes[\n          interpolationPathIndex2\n        ].getPointAtLength(t2 * totalLengthOfPath2);\n        redPointClone.moveTo(x1, y1);\n        // 另一种方式\n        let { x: x2, y: y2 } =\n          linePictureClone.shapes[interpolationPathIndex2].interpolate(t2);\n        greenPointClone.moveTo(x2, y2);\n      };\n    }\n  },\n  {\n    name: \"StrokeDash\",\n    onClick: () => {\n      currentType.value = \"StrokeDash\";\n      SVGShapes.value = [strokeDashPath];\n      CanvasShapes.value = [strokeDashPath];\n      svgStart = (d) => {};\n      canvasStart = (d) => {};\n      svgFrame = (d) => {};\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"strokeDashTween\",\n    onClick: () => {\n      currentType.value = \"strokeDashTween\";\n      SVGShapes.value = [strokeDashPath];\n      CanvasShapes.value = [strokeDashPath];\n      svgStart = (d) => {\n        strokeDashPath.strokeDashTween(4000, {\n          // easeFunction: props.easeFunction\n        });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {};\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"strokeDashTweenSequence\",\n    onClick: () => {\n      currentType.value = \"strokeDashTweenSequence\";\n      const s = linePicture.clone();\n      s.setAttr({\n        stroke: \"none\",\n        strokeWidth: \"4\",\n        fill: \"none\"\n      });\n      SVGShapes.value = [s];\n      CanvasShapes.value = [s];\n      svgStart = (d) => {\n        s.setAttr({\n          stroke: \"#ff0000\"\n        });\n        s.strokeDashTween(300, {\n          type: \"sequence\",\n          // easeFunction: props.easeFunction,\n          onGroupStart: () => {}\n        });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {};\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"strokeDashTweenParallel\",\n    onClick: () => {\n      currentType.value = \"strokeDashTweenParallel\";\n      const s = linePicture.clone();\n      s.setAttr({\n        stroke: \"none\",\n        strokeWidth: \"4\",\n        fill: \"none\"\n      });\n      SVGShapes.value = [s];\n      CanvasShapes.value = [s];\n      svgStart = (d) => {\n        s.setAttr({\n          stroke: \"#ff0000\"\n        });\n        s.strokeDashTween(3000, {\n          type: \"parallel\",\n          // easeFunction: props.easeFunction,\n          onGroupStart: () => {}\n        });\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {};\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"线条动画\",\n    onClick: () => {\n      currentType.value = \"线条动画\";\n      const ball = new BallShape({\n        x: 100,\n        y: 100,\n        ballRadius: 4,\n        attrs: {\n          stroke: Color.random().toString()\n        }\n      });\n      const arrow = new ArrowShape({\n        x: 200,\n        y: 200,\n        attrs: {\n          stroke: Color.random().toString()\n        }\n      });\n      const rect = new RectShape({\n        rectWidth: 100,\n        rectHeight: 60,\n        rectBorderRadius: 10,\n        x: 150,\n        y: 170,\n        attrs: {\n          stroke: Color.random().toString()\n        }\n      });\n      const fox = new FoxShape({\n        x: 200,\n        y: 200,\n        scale: 3,\n        attrs: {\n          stroke: Color.random().toString()\n        }\n      });\n      const before = PointsShape.generate(100, 100, 100, 3);\n      before.moveTo(100, 100);\n      before.setAttr({\n        stroke: Color.random().toString()\n      });\n      const after = PointsShape.generate(100, 100, 100, 6);\n      after.moveTo(100, 100);\n      after.setAttr({\n        stroke: Color.random().toString()\n      });\n      const shapes = [before, after, ball, arrow, rect, fox];\n      SVGShapes.value = [];\n      CanvasShapes.value = [];\n      svgStart = (d) => {\n        const s = polymorphTween(shapes, 6000);\n        // s.enableDrag = true;\n        // s.attrs.stroke = \"#ff0000\";\n        SVGShapes.value.unshift(s);\n        CanvasShapes.value.unshift(s);\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {};\n      canvasFrame = (d) => {};\n    }\n  },\n  {\n    name: \"线条动画Combo\",\n    onClick: () => {\n      currentType.value = \"线条动画Combo\";\n      const arrow = new ArrowShape({\n        x: 200,\n        y: 200,\n        attrs: {\n          stroke: Color.random().toString()\n        }\n      });\n      const rect = new RectShape({\n        rectWidth: 100,\n        rectHeight: 60,\n        rectBorderRadius: 10,\n        x: 150,\n        y: 170,\n        attrs: {\n          stroke: Color.random().toString()\n        }\n      });\n      const fox = new FoxShape({\n        x: 200,\n        y: 200,\n        scale: 3,\n        attrs: {\n          stroke: Color.random().toString()\n        }\n      });\n      const before = PointsShape.generate(100, 100, 100, 3);\n      before.moveTo(100, 100);\n      before.setAttr({\n        stroke: Color.random().toString()\n      });\n      const after = PointsShape.generate(100, 100, 100, 6);\n      after.moveTo(100, 100);\n      after.setAttr({\n        stroke: Color.random().toString()\n      });\n      const ship = new ShipShapeCombo({\n        showFlame: true,\n        attrs: {\n          stroke: Color.random().toString()\n        }\n      });\n      ship.comboMove(400, 100);\n      ship.comboRotate(30);\n      ship.comboScale(2);\n      console.log(ship.shapes[0].transformPathD().getPolymorphPoints());\n      // const shapes = [before, after, arrow, rect, ship, fox];\n      const shapes = [linePicture, ship];\n      // const shapes = [before, after, arrow, rect, linePicture, ship, fox];\n      SVGShapes.value = [];\n      CanvasShapes.value = [];\n      // SVGShapes.value = [ship];\n      // CanvasShapes.value = [ship];\n      svgStart = (d) => {\n        const s = polymorphTween(shapes, 10000, {\n          shapeOrCombo: (s, t) => {\n            if (t == 0 || withinErrorMarginNumber(0.05)(t, 0.5) || t == 1) {\n              console.log(\"t =\", t);\n              // ship-flame\n              console.log(\n                s.shapes[0].transformPathD().getPolymorphPoints(),\n                s.shapes[0].pathD().prevPathX,\n                s.shapes[0].pathD().prevPathY,\n                s.shapes[0].transformPathD().prevPathX,\n                s.shapes[0].transformPathD().prevPathY\n              );\n              // console.log(toObjectString(s));\n            }\n          }\n        });\n        // s.enableDrag = true;\n        // s.attrs.stroke = \"#ff0000\";\n        SVGShapes.value.unshift(...s.shapes);\n        CanvasShapes.value.unshift(...s.shapes);\n      };\n      canvasStart = (d) => {};\n      svgFrame = (d) => {};\n      canvasFrame = (d) => {};\n    }\n  }\n];\n</script>\n\n<template>\n  <Page>\n    <FPSStats></FPSStats>\n\n    <div class=\"btns\">\n      <Button\n        v-for=\"item in cases\"\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    <div\n      v-show=\"currentType == 'StrokeDash'\"\n      class=\"btns sub-btns\"\n    >\n      <div style=\"width: 100%\">\n        <div>stroke-dasharray: {{ dasharray }},{{ dasharray }}</div>\n        <InputRange\n          :max=\"totalLength\"\n          :defaultValue=\"dasharray\"\n          @change=\"changeDasharray\"\n        ></InputRange>\n      </div>\n      <div style=\"width: 100%\">\n        <div>stroke-dashoffset: {{ dashoffset }}</div>\n        <InputRange\n          :max=\"totalLength\"\n          :defaultValue=\"dashoffset\"\n          @change=\"changeDashoffset\"\n        ></InputRange>\n      </div>\n    </div>\n\n    <Box\n      type=\"svg\"\n      :shapes=\"SVGShapes\"\n      :loop=\"true\"\n      style=\"width: 100%; height: 300px; background-color: rgba(0, 0, 0, 0.1)\"\n      @start=\"svgStart\"\n      @frame=\"svgFrame\"\n    ></Box>\n\n    <Box\n      type=\"canvas\"\n      :shapes=\"CanvasShapes\"\n      :loop=\"true\"\n      style=\"width: 100%; height: 300px; background-color: rgba(0, 0, 0, 0.2)\"\n      @start=\"canvasStart\"\n      @frame=\"canvasFrame\"\n    ></Box>\n  </Page>\n</template>\n\n<style scoped>\n.btns {\n  display: flex;\n  flex-wrap: wrap;\n}\n.btns > * {\n  margin-right: 10px;\n  margin-bottom: 10px;\n}\n.sub-btns {\n  padding-top: 10px;\n  background-color: #dbffff;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref, watchEffect } from \"vue\";\nimport { mouseEnter$, mouseLeave$ } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(defineProps<{}>(), {});\n\nconst emits = defineEmits<{\n  (event: \"enter\", e: MouseEvent): void;\n  (event: \"leave\", e: MouseEvent): void;\n}>();\n\nconst r = ref();\n\nconst isEnter = ref(false);\n\nlet s1;\nlet s2;\nwatchEffect(() => {\n  if (!r.value) {\n    return;\n  }\n  s1?.unsubscribe();\n  s1 = mouseEnter$(r.value).subscribe((e) => {\n    isEnter.value = true;\n    emits(\"enter\", e);\n  });\n  s2?.unsubscribe();\n  s2 = mouseLeave$(r.value).subscribe((e) => {\n    isEnter.value = false;\n    emits(\"leave\", e);\n  });\n});\n\nonUnmounted(() => {\n  s1?.unsubscribe();\n  s2?.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    ref=\"r\"\n    class=\"mouse\"\n    :style=\"{ display: 'inline-block', cursor: isEnter ? 'pointer' : 'auto' }\"\n  >\n    <slot></slot>\n  </div>\n</template>\n\n<style></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  emits(\"complete\", barPercent.value);\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, onMounted, inject } from \"vue\";\nimport {\n  useScroll$,\n  getVerticalScrollTopPercentInPage,\n  Context\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    showText?: boolean;\n  }>(),\n  {\n    bgColor: \"#efefef\",\n    progressColor: \"#07B56D\",\n    borderColor: \"transparent\",\n    borderRadius: \"4px\",\n    showText: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"progress\", percent: number): void;\n}>();\n\nconst bar = ref();\n\nfunction set() {\n  const percent = getVerticalScrollTopPercentInPage();\n  emits(\"progress\", percent);\n  bar.value?.goto(percent);\n}\n\nconst subscription = useScroll$().subscribe((e) => {\n  set();\n});\n\n// ce 中 编译-运行 失败\n// const context = inject<Context>(\"context\");\n// context.eb.on(\"globalResize\", () => {\n//   set();\n// });\n\nonMounted(() => {\n  set();\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      :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\">\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 SVGDown from \"../svg/SVGDown.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { 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 open = ref(true);\n\nconst content = ref();\nconst contentMaxHeight = ref(Number.MAX_SAFE_INTEGER + \"px\");\n\nfunction computeHeight() {\n  if (content.value) {\n    contentMaxHeight.value =\n      content.value.getBoundingClientRect().height + \"px\";\n  }\n}\n\nonMounted(() => {\n  nextTick(() => {\n    computeHeight();\n    open.value = props.initOpen;\n  });\n});\n\nfunction toggleOpen() {\n  computeHeight();\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  <div>\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        :style=\"{\n          margin: `0 ${props.padding}`,\n          transition: `max-height ${props.duration}ms ease-in-out`,\n          maxHeight: open ? contentMaxHeight : '0'\n        }\"\n      >\n        <div ref=\"content\">\n          <slot name=\"content\"></slot>\n        </div>\n      </div>\n    </div>\n  </div>\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=\"ts\">\nimport { onUnmounted, ref, watch } from \"vue\";\nimport { lerpMap, maxDotNumber, stepMap } from \"@zyzgroup/core-common\";\nimport {\n  __color,\n  injectStyle,\n  usePointerDownMovePoint$\n} from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    min?: number;\n    max?: number;\n    step?: number;\n    defaultValue?: number;\n    unit?: string;\n    showValue?: boolean;\n    bgColor?: string;\n    barColor?: string;\n    barHeight?: number;\n  }>(),\n  {\n    min: 0,\n    max: 100,\n    step: 1,\n    defaultValue: 0,\n    unit: \"\",\n    showValue: false,\n    bgColor: \"#2d2d2d\",\n    barColor: \"#2FA1D6\",\n    barHeight: 20\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", value: number): void;\n}>();\n\nconst getStep = stepMap(props.min, props.max, props.step);\nconst getPercent = lerpMap(props.min, props.max, 0, 100);\n\nconst value = ref(getStep(props.defaultValue));\nconst percent = ref(maxDotNumber(getPercent(value.value), 2));\n\nlet mouseSubscription: any;\n\nfunction mount(box) {\n  const lerp = lerpMap(0, box.rect.width, props.min, props.max);\n  const change = (clientX: number) => {\n    value.value = getStep(lerp(clientX));\n    percent.value = maxDotNumber(getPercent(value.value), 2);\n    emits(\"change\", value.value);\n  };\n  mouseSubscription = usePointerDownMovePoint$(box.el, {\n    start: (e, mpg) => {\n      // document.activeElement.blur();\n      // e.preventDefault();\n      change(mpg.current.x);\n    }\n  }).subscribe((mpg) => {\n    change(mpg.current.x);\n  });\n}\n\nconst r = ref();\nwatch(r, () => {\n  if (!r.value) {\n    return;\n  }\n  /// for ce\n  injectStyle(\n    `\n  :root {\n    --input-range-box-background-hover-color: ${__color\n      .set(props.bgColor)\n      .lighten(0.05)\n      .toString()};\n    --input-range-box-foreground-hover-color: ${__color\n      .set(props.barColor)\n      .lighten(0.05)\n      .toString()};\n  }\n  :host {\n    --input-range-box-background-hover-color: ${__color\n      .set(props.bgColor)\n      .lighten(0.05)\n      .toString()};\n    --input-range-box-foreground-hover-color: ${__color\n      .set(props.barColor)\n      .lighten(0.05)\n      .toString()};\n  }\n  `,\n    r.value\n  );\n});\n\nonUnmounted(() => {\n  mouseSubscription?.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"input-range-box\"\n    ref=\"r\"\n  >\n    <div\n      class=\"box\"\n      :style=\"{ height: props.barHeight + 'px', cursor: 'ew-resize' }\"\n    >\n      <Box\n        display=\"full\"\n        @mount=\"mount\"\n      >\n        <div\n          class=\"background\"\n          :style=\"{\n            backgroundColor: props.bgColor,\n            width: '100%',\n            height: '100%'\n          }\"\n        ></div>\n        <div\n          class=\"foreground\"\n          :style=\"{\n            backgroundColor: props.barColor,\n            width: percent + '%',\n            height: '100%'\n          }\"\n        ></div>\n      </Box>\n    </div>\n    <slot :value=\"value\">\n      <label\n        class=\"label\"\n        v-if=\"showValue\"\n      >\n        {{ value }}{{ props.unit }}\n      </label>\n    </slot>\n  </div>\n</template>\n\n<style scoped>\n.input-range-box {\n  position: relative;\n  box-sizing: border-box;\n  font-size: 1em;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%;\n  overflow: hidden;\n}\n.label {\n  min-width: 3em;\n  text-align: right;\n}\n.box {\n  flex: 1 1 auto;\n  position: relative;\n}\n.foreground {\n  position: absolute;\n  left: 0;\n  top: 0;\n}\n.box:hover .background {\n  background-color: var(--input-range-box-background-hover-color) !important;\n}\n.box:hover .foreground {\n  background-color: var(--input-range-box-foreground-hover-color) !important;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref, watchEffect } from \"vue\";\nimport { useDrop } 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    placeholder?: string;\n  }>(),\n  {\n    placeholder: \"drop file\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"drop\", files: File[]): void;\n  (event: \"yz-drop\", files: File[]): void;\n}>();\n\nconst zone = ref();\nconst isOver = ref(false);\nlet remove: () => void;\n\nwatchEffect(() => {\n  if (!zone.value || remove) {\n    return;\n  }\n  remove = useDrop(zone.value, {\n    onEnter: () => {\n      isOver.value = true;\n    },\n    onLeave: () => {\n      isOver.value = false;\n    },\n    onDrop: (e, files) => {\n      emits(\"drop\", files);\n      emits(\"yz-drop\", files);\n      // console.log(files);\n      isOver.value = false;\n    }\n  });\n});\n\nonUnmounted(() => {\n  remove?.();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    ref=\"zone\"\n    class=\"input-file-drop\"\n    :class=\"[isOver ? 'over' : '']\"\n  >\n    <slot>{{ props.placeholder }}</slot>\n  </div>\n</template>\n\n<style scoped>\n.input-file-drop {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  border: 2px dashed var(--yz-gap-common);\n  color: var(--yz-gap-common);\n}\n.input-file-drop.over {\n  border-color: var(--yz-font-common);\n  color: var(--yz-font-common);\n}\n</style>\n","<script setup lang=\"ts\">\nconst bg = `${import.meta.env.YZ_IMAGE_PATH}/bg-grid.gif`;\n</script>\n\n<template>\n  <div\n    class=\"bg-grid\"\n    :style=\"{\n      background: `url(${bg}) repeat scroll 0 0 white`\n    }\"\n  >\n    <slot></slot>\n  </div>\n</template>\n\n<style scoped>\n.bg-grid {\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"\" | \"slide\";\n    dur?: number;\n    perspective?: string;\n  }>(),\n  {\n    type: \"\",\n    dur: 500,\n    perspective: \"600px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"click\", isFlipped: boolean): void;\n}>();\n\nconst flip = ref(false);\nconst click = () => {\n  flip.value = !flip.value;\n  emits(\"click\", flip.value);\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"card-flip-scene\"\n    :style=\"{ perspective: props.perspective }\"\n  >\n    <div\n      class=\"card\"\n      :class=\"[props.type, { flip }]\"\n      :style=\"{\n        transition: `transform ${props.dur}ms`\n      }\"\n      @click=\"click\"\n    >\n      <div class=\"face front\"><slot name=\"front\">front</slot></div>\n      <div class=\"face back\"><slot name=\"back\">back</slot></div>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  border: 1px solid v-bind(borderColor);\n-->\n<style scoped>\n.card-flip-scene {\n  width: 100%;\n  height: 100%;\n  cursor: pointer;\n}\n.card {\n  width: 100%;\n  height: 100%;\n  position: relative;\n  transform-style: preserve-3d;\n}\n.card.slide {\n  transform-origin: center right;\n}\n.card.flip {\n  transform: rotateY(180deg);\n}\n.card.slide.flip {\n  transform: translateX(-100%) rotateY(-180deg);\n}\n.face {\n  position: absolute;\n  height: 100%;\n  width: 100%;\n  backface-visibility: hidden;\n}\n.face > :nth-child(1) {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.back {\n  transform: rotateY(180deg);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch, watchEffect } from \"vue\";\nimport { ColorPattern } from \"@zyzgroup/core-web\";\nimport { context, mapState, getColors } from \"../../context/context\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {}\n});\n\nexport type BooleanBoxModePattern =\n  | \"primary-rect\"\n  | \"primary-round\"\n  | \"transparent-rect\"\n  | \"transparent-round\"\n  | \"double-round\";\n\nconst props = withDefaults(\n  defineProps<{\n    mode?: BooleanBoxModePattern;\n    colorPattern?: ColorPattern;\n    selected?: boolean;\n    disabled?: boolean;\n  }>(),\n  {\n    mode: \"primary-round\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n    selected: false,\n    disabled: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", value: boolean): void;\n}>();\n\nconst realSelected = ref(props.selected);\nconst realDisabled = ref(props.disabled);\n\nconst transparentColor = \"rgba(0,0,0,0)\";\n\nconst backgroundColor = ref(transparentColor);\nconst outlineColor = ref(transparentColor);\nconst contentColor = ref(transparentColor);\n\nfunction changeColor() {\n  const { primaryPattern, foregroundPattern, gapPattern } = getColors(\n    props.colorPattern\n  );\n\n  switch (props.mode) {\n    case \"primary-round\":\n    case \"primary-rect\":\n      backgroundColor.value = realDisabled.value\n        ? gapPattern\n        : realSelected.value\n        ? primaryPattern\n        : foregroundPattern;\n      outlineColor.value =\n        realDisabled.value || realSelected.value\n          ? transparentColor\n          : gapPattern;\n      contentColor.value = foregroundPattern;\n      break;\n    case \"transparent-round\":\n    case \"transparent-rect\":\n      backgroundColor.value = realDisabled.value\n        ? gapPattern\n        : foregroundPattern;\n      outlineColor.value = gapPattern;\n      contentColor.value =\n        realSelected.value && !realDisabled.value\n          ? primaryPattern\n          : foregroundPattern;\n      break;\n    case \"double-round\":\n      backgroundColor.value = foregroundPattern;\n      outlineColor.value =\n        realSelected.value && !realDisabled.value ? primaryPattern : gapPattern;\n      contentColor.value = realDisabled.value\n        ? gapPattern\n        : primaryPattern;\n      break;\n  }\n}\n\nconst mappedState = mapState([\"theme.theme\"]);\nlet currentTheme;\nwatchEffect(() => {\n  const nextTheme = mappedState[\"theme.theme\"].value;\n  if (currentTheme == nextTheme) {\n    return;\n  }\n  currentTheme = nextTheme;\n  changeColor();\n});\n\nwatch(\n  () => [props.mode],\n  () => {\n    changeColor();\n  },\n  { immediate: true }\n);\n\nconst click = () => {\n  if (realDisabled.value) {\n    return;\n  }\n  toggleValue();\n  emits(\"change\", realSelected.value);\n};\n\n// 被动变化\nconst toggleValue = () => {\n  realSelected.value = !realSelected.value;\n  changeColor();\n};\n\n// 被动变化\nconst forceValue = (v: boolean) => {\n  realSelected.value = v;\n  changeColor();\n};\n\ndefineExpose({ toggleValue, forceValue });\n</script>\n\n<template>\n  <div\n    class=\"boolean-box\"\n    :class=\"realDisabled ? 'disabled' : ''\"\n    @click=\"click\"\n  >\n    <slot\n      :selected=\"realSelected\"\n      :disabled=\"realDisabled\"\n    >\n      <svg\n        width=\"24\"\n        height=\"24\"\n        viewBox=\"0 0 24 24\"\n        fill=\"none\"\n        class=\"icon\"\n      >\n        <rect\n          v-if=\"\n            props.mode == 'primary-rect' || props.mode == 'transparent-rect'\n          \"\n          x=\"2\"\n          y=\"2\"\n          width=\"20\"\n          height=\"20\"\n          rx=\"4\"\n          strke-width=\"2\"\n          :stroke=\"outlineColor\"\n          :fill=\"backgroundColor\"\n        />\n        <circle\n          v-if=\"\n            props.mode == 'primary-round' || props.mode == 'transparent-round'\n          \"\n          cx=\"12\"\n          cy=\"12\"\n          r=\"10\"\n          strke-width=\"2\"\n          :stroke=\"outlineColor\"\n          :fill=\"backgroundColor\"\n        />\n        <path\n          v-if=\"\n            realSelected &&\n            (props.mode == 'primary-rect' ||\n              props.mode == 'transparent-rect' ||\n              props.mode == 'primary-round' ||\n              props.mode == 'transparent-round')\n          \"\n          fill-rule=\"evenodd\"\n          clip-rule=\"evenodd\"\n          d=\"M17.7301 8.26776C17.3702 7.91075 16.7843 7.91075 16.4198 8.26776L10.1961 14.4309C9.83621 14.7879 9.83621 15.3704 10.1961 15.7274C10.5559 16.0844 11.1419 16.0844 11.5063 15.7274L17.7301 9.56428C18.09 9.20726 18.09 8.62947 17.7301 8.26776Z\"\n          :fill=\"contentColor\"\n        />\n        <path\n          v-if=\"\n            realSelected &&\n            (props.mode == 'primary-rect' ||\n              props.mode == 'transparent-rect' ||\n              props.mode == 'primary-round' ||\n              props.mode == 'transparent-round')\n          \"\n          fill-rule=\"evenodd\"\n          clip-rule=\"evenodd\"\n          d=\"M11.5063 14.431L7.58016 10.5415C7.2203 10.1845 6.63437 10.1845 6.2699 10.5415C5.91003 10.8985 5.91003 11.481 6.2699 11.838L10.2007 15.7322C10.5606 16.0893 11.1465 16.0893 11.511 15.7322C11.8708 15.3705 11.8708 14.7927 11.5063 14.431Z\"\n          :fill=\"contentColor\"\n        />\n\n        <!-- double-round -->\n        <circle\n          v-if=\"props.mode == 'double-round'\"\n          cx=\"12\"\n          cy=\"12\"\n          r=\"9\"\n          :fill=\"backgroundColor\"\n          :stroke=\"outlineColor\"\n          stroke-width=\"2\"\n        />\n        <circle\n          v-if=\"realSelected && props.mode == 'double-round'\"\n          cx=\"12\"\n          cy=\"12\"\n          r=\"6\"\n          :fill=\"contentColor\"\n        />\n      </svg>\n    </slot>\n  </div>\n</template>\n\n<style scoped>\n.boolean-box {\n  position: relative;\n  display: inline-flex;\n  justify-content: flex-start;\n  align-items: center;\n  cursor: pointer;\n}\n.boolean-box.disabled {\n  cursor: not-allowed;\n  /* pointer-events: none; */\n}\n.boolean-box .icon {\n  flex: 0 0 auto;\n  box-sizing: border-box;\n  display: inline-flex;\n  justify-content: flex-start;\n  align-items: center;\n  transition: border-color 0.2s ease-in-out, background-color 0.2s ease-in-out;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends string\">\nimport { ref } from \"vue\";\nimport { context } from \"../../context/context\";\nimport BooleanBox, { type BooleanBoxModePattern } from \"./BooleanBox.vue\";\nimport { ColorPattern } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { BooleanBox }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    options: Array<T>;\n    disabledIndexs?: Array<number>;\n    initIndex?: number;\n\n    mode?: BooleanBoxModePattern;\n    colorPattern?: ColorPattern;\n\n    itemPadding?: string;\n    labelPadding?: string;\n  }>(),\n  {\n    initIndex: 0,\n\n    mode: \"primary-round\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n\n    itemPadding: \"10px\",\n    labelPadding: \"2px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", values: T): void;\n}>();\n\nconst booleanBoxRefs = ref<any[]>([]);\nconst setRef = (el: any, index: number) => {\n  if (el) {\n    booleanBoxRefs.value[index] = el;\n  }\n};\n\nlet selectedIndex = ref(props.initIndex);\n\nconst change = (index: number, selected: boolean) => {\n  if (selectedIndex.value !== index) {\n    booleanBoxRefs.value[selectedIndex.value].toggleValue();\n    if (selected) {\n      selectedIndex.value = index;\n      emits(\"change\", props.options[selectedIndex.value]);\n    }\n  } else {\n    if (!selected) {\n      // 强制选择\n      booleanBoxRefs.value[selectedIndex.value].forceValue(true);\n    }\n  }\n};\n</script>\n\n<template>\n  <div\n    class=\"radio-group\"\n    v-for=\"(option, index) in options\"\n    :key=\"index\"\n    :style=\"['margin-left:' + (index > 0 ? props.itemPadding : 0)]\"\n  >\n    <BooleanBox\n      :ref=\"(el) => setRef(el, index)\"\n      :mode=\"props.mode\"\n      :colorPattern=\"props.colorPattern\"\n      :selected=\"selectedIndex == index\"\n      :disabled=\"\n        disabledIndexs && disabledIndexs.findIndex((i) => i === index) >= 0\n      \"\n      @change=\"(v) => change(index, v)\"\n    ></BooleanBox>\n    <span\n      v-if=\"option\"\n      :style=\"['font-size:1em', 'margin-left:' + props.labelPadding]\"\n    >\n      {{ option }}\n    </span>\n  </div>\n</template>\n\n<style scoped>\n.radio-group {\n  position: relative;\n  display: inline-flex;\n  justify-content: flex-start;\n  align-items: center;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends string\">\nimport { reactive } from \"vue\";\nimport { context } from \"../../context/context\";\nimport BooleanBox, { type BooleanBoxModePattern } from \"./BooleanBox.vue\";\nimport { ColorPattern } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { BooleanBox }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    options: Array<T>;\n    disabledIndexs?: Array<number>;\n    initIndexs?: Array<number>;\n\n    mode?: BooleanBoxModePattern;\n    colorPattern?: ColorPattern;\n\n    itemPadding?: string;\n    labelPadding?: string;\n  }>(),\n  {\n    mode: \"primary-round\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n\n    itemPadding: \"10px\",\n    labelPadding: \"2px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", values: T[]): void;\n}>();\n\nconst selectedIndexes = reactive(props.initIndexs ?? []);\n\nconst change = (index: number, selected: boolean) => {\n  const findIndex = selectedIndexes.findIndex((i) => i === index);\n  let isChange = false;\n  if (findIndex >= 0 && !selected) {\n    selectedIndexes.splice(findIndex, 1);\n    isChange = true;\n  } else if (findIndex < 0 && selected) {\n    selectedIndexes.push(index);\n    isChange = true;\n  }\n  if (isChange) {\n    emits(\n      \"change\",\n      selectedIndexes.map((index) => props.options[index])\n    );\n  }\n};\n</script>\n\n<template>\n  <div\n    class=\"checkbox-group\"\n    v-for=\"(option, index) in options\"\n    :key=\"index\"\n    :style=\"['margin-left:' + (index > 0 ? props.itemPadding : 0)]\"\n  >\n    <BooleanBox\n      :mode=\"props.mode\"\n      :colorPattern=\"props.colorPattern\"\n      :selected=\"selectedIndexes.findIndex((i) => i === index) >= 0\"\n      :disabled=\"\n        disabledIndexs && disabledIndexs.findIndex((i) => i === index) >= 0\n      \"\n      @change=\"(v) => change(index, v)\"\n    ></BooleanBox>\n    <span\n      v-if=\"option\"\n      :style=\"['font-size:1em', 'margin-left:' + props.labelPadding]\"\n    >\n      {{ option }}\n    </span>\n  </div>\n</template>\n\n<style scoped>\n.checkbox-group {\n  position: relative;\n  display: inline-flex;\n  justify-content: flex-start;\n  align-items: center;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport { injectStyle } from \"@zyzgroup/core-web\";\nimport RadioGroup from \"../form/RadioGroup.vue\";\nimport CheckboxGroup from \"../form/CheckboxGroup.vue\";\nimport InputRange from \"../form/InputRange.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { RadioGroup, CheckboxGroup, InputRange },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    width?: number;\n    height?: number;\n    dur?: number;\n    perspective?: number; // perspective 定义摄像机（也就是作为观众的我们）到屏幕的距离 : 100px ~ 2000px | none\n  }>(),\n  { width: 200, height: 200, dur: 1000, perspective: 400 }\n);\n\nconst emits = defineEmits<{\n  // (event: \"click\", isFlipped: boolean): void;\n}>();\n\nconst hW = ref(Math.floor(props.width / 2));\n// const hH = ref(Math.floor(props.height / 2));\nconst styleSheet = `\n  :root {\n    --spin-cube-z: -${hW.value}px;\n  }\n  :host {\n    --spin-cube-z: -${hW.value}px;\n  }\n`;\nconst container = ref();\nwatch(container, () => {\n  if (!container.value) {\n    return;\n  }\n  injectStyle(styleSheet, container.value);\n});\n\n/// perspective: 400px;\nconst p = ref(props.perspective + \"px\");\nconst perspectiveChange = (v: number) => {\n  p.value = v == 2000 ? \"none\" : v + \"px\";\n};\n\n/// perspective-origin 定义摄像机观察到的画面中的灭点（vanishing point）的位置\n/// perspective-origin: 50% 50%;\nconst pox = ref(\"50%\");\nconst perspectiveOriginXChange = (v: number) => {\n  pox.value = v + \"%\";\n};\nconst poy = ref(\"50%\");\nconst perspectiveOriginYChange = (v: number) => {\n  poy.value = v + \"%\";\n};\n\n/// cube transform\nconst b = `translateZ(-${hW.value}px)`;\nconst cubeT = ref(b);\nconst sideChange = (side: string) => {\n  switch (side) {\n    case \"front\":\n      cubeT.value = b + \" rotateY(0deg)\";\n      break;\n    case \"right\":\n      cubeT.value = b + \" rotateY(-90deg)\";\n      break;\n    case \"back\":\n      cubeT.value = b + \" rotateY(-180deg)\";\n      break;\n    case \"left\":\n      cubeT.value = b + \" rotateY(90deg)\";\n      break;\n    case \"top\":\n      cubeT.value = b + \" rotateX(-90deg)\";\n      break;\n    case \"bottom\":\n      cubeT.value = b + \" rotateX(90deg)\";\n      break;\n    default:\n      cubeT.value = b;\n      break;\n  }\n};\n\n/// animation: spinCube 8s infinite ease-in-out;\nconst cubeA = ref(false);\nconst spinCubeChange = (a: string[]) => {\n  if (a.length) {\n    cubeA.value = true;\n  } else {\n    cubeA.value = false;\n  }\n};\n\n/// backface-visibility: hidden;\nconst bv = ref<\"visible\" | \"hidden\">(\"visible\");\nconst backVisibleChange = (a: string[]) => {\n  if (a.length) {\n    bv.value = \"visible\";\n  } else {\n    bv.value = \"hidden\";\n  }\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <div ref=\"container\">\n    <div\n      class=\"cube-scene\"\n      :style=\"{\n        width: `${props.width}px`,\n        height: `${props.height}px`,\n        perspective: `${p}`,\n        perspectiveOrigin: `${pox} ${poy}`\n      }\"\n    >\n      <div\n        class=\"cube\"\n        :class=\"{ spinning: cubeA }\"\n        :style=\"{\n          transformStyle: `preserve-3d`,\n          transform: cubeT,\n          transition: `transform ${props.dur}ms`\n        }\"\n      >\n        <div\n          class=\"face front\"\n          :style=\"{\n            transform: `rotateY(0deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"front\">front</slot>\n        </div>\n        <div\n          class=\"face back\"\n          :style=\"{\n            transform: `rotateY(180deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"back\">back</slot>\n        </div>\n        <div\n          class=\"face right\"\n          :style=\"{\n            transform: `rotateY(90deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"right\">right</slot>\n        </div>\n        <div\n          class=\"face left\"\n          :style=\"{\n            transform: `rotateY(-90deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"left\">left</slot>\n        </div>\n        <div\n          class=\"face top\"\n          :style=\"{\n            transform: `rotateX(90deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"top\">top</slot>\n        </div>\n        <div\n          class=\"face bottom\"\n          :style=\"{\n            transform: `rotateX(-90deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"bottom\">bottom</slot>\n        </div>\n      </div>\n    </div>\n    <div>\n      <RadioGroup\n        :options=\"['front', 'right', 'back', 'left', 'top', 'bottom']\"\n        @change=\"sideChange\"\n      ></RadioGroup>\n    </div>\n    <div>\n      <CheckboxGroup\n        :options=\"['Backface visible']\"\n        @change=\"backVisibleChange\"\n      ></CheckboxGroup>\n    </div>\n    <div>\n      <CheckboxGroup\n        :options=\"['spin cube']\"\n        @change=\"spinCubeChange\"\n      ></CheckboxGroup>\n    </div>\n    <div>\n      perspective:\n      <InputRange\n        :min=\"1\"\n        :max=\"2000\"\n        :defaultValue=\"props.perspective\"\n        unit=\"px\"\n        @change=\"perspectiveChange\"\n      ></InputRange>\n    </div>\n    <div>\n      perspective-origin x:\n      <InputRange\n        :min=\"0\"\n        :max=\"100\"\n        :defaultValue=\"50\"\n        unit=\"%\"\n        @change=\"perspectiveOriginXChange\"\n      ></InputRange>\n    </div>\n    <div>\n      perspective-origin y:\n      <InputRange\n        :min=\"0\"\n        :max=\"100\"\n        :defaultValue=\"50\"\n        unit=\"%\"\n        @change=\"perspectiveOriginYChange\"\n      ></InputRange>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  border: 1px solid v-bind(borderColor);\n-->\n<style scoped>\n.cube {\n  position: relative;\n  width: 100%;\n  height: 100%;\n}\n.face {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n}\n.front {\n  background: hsla(0, 100%, 50%, 0.7);\n}\n.right {\n  background: hsla(60, 100%, 50%, 0.7);\n}\n.back {\n  background: hsla(120, 100%, 50%, 0.7);\n}\n.left {\n  background: hsla(180, 100%, 50%, 0.7);\n}\n.top {\n  background: hsla(240, 100%, 50%, 0.7);\n}\n.bottom {\n  background: hsla(300, 100%, 50%, 0.7);\n}\n\n.spinning {\n  animation: spinCube 8s infinite ease-in-out;\n}\n@keyframes spinCube {\n  0% {\n    transform: translateZ(var(--spin-cube-z)) rotateX(0deg) rotateY(0deg);\n  }\n  100% {\n    transform: translateZ(var(--spin-cube-z)) rotateX(360deg) rotateY(360deg);\n  }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { getViewport } from \"@zyzgroup/core-web\";\nimport Pop from \"./Pop.vue\";\nimport Button from \"../form/Button.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Pop, Button, Box },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    gap?: number;\n    global?: boolean;\n    closeWhenClickOverlay?: boolean;\n  }>(),\n  {\n    gap: 10,\n    global: true,\n    closeWhenClickOverlay: true\n  }\n);\n\nconst buttonRef = ref();\n\nconst absolute = ref({ left: \"0px\", top: \"0px\" });\nlet buttonLeft = 0;\nlet buttonTop = 0;\nlet buttonWidth = 0;\nlet contentWidth = 0;\nlet contentHeight = 0;\n\nconst popOpen = () => {\n  const rect = buttonRef.value.getRect();\n  buttonLeft = rect.x;\n  buttonTop = rect.y;\n  buttonWidth = rect.width;\n};\n\nconst contentResize = (box) => {\n  contentWidth = box.rect.width;\n  contentHeight = box.rect.height;\n  computeLocation();\n};\n\nconst computeLocation = () => {\n  const viewport = getViewport();\n  absolute.value = {\n    left:\n      Math.max(\n        props.gap,\n        Math.min(\n          buttonLeft + buttonWidth + props.gap,\n          viewport.width - contentWidth - props.gap\n        )\n      ) + \"px\",\n    top:\n      Math.max(\n        props.gap,\n        Math.min(buttonTop, viewport.height - contentHeight - props.gap)\n      ) + \"px\"\n  };\n};\n\nconst popRef = ref();\nfunction open() {\n  popRef.value?.open();\n}\nfunction close() {\n  popRef.value?.close();\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <div>\n    <Box\n      ref=\"buttonRef\"\n      class=\"popover-button\"\n      display=\"shrink\"\n      @throttledClick=\"open\"\n    >\n      <slot name=\"button\">\n        <Button>popover</Button>\n      </slot>\n    </Box>\n    <Pop\n      ref=\"popRef\"\n      :direction-from=\"absolute\"\n      :global=\"props.global\"\n      :closeWhenClickOverlay=\"props.closeWhenClickOverlay\"\n      @open=\"popOpen\"\n      @resize=\"contentResize\"\n    >\n      <slot name=\"panel\">\n        <div>...</div>\n      </slot>\n    </Pop>\n  </div>\n</template>\n\n<style scoped></style>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref } from \"vue\";\nimport {\n  __color,\n  Color,\n  useClipboard,\n  useCompatableDownMovePoint$\n} from \"@zyzgroup/core-web\";\nimport { clamp } from \"@zyzgroup/core-common\";\nimport Popover from \"../pop/Popover.vue\";\nimport Box from \"../base/Box.vue\";\n// import { toast } from \"../../globalTeleport\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Popover }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: \"#5a82f0\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"color\", color: string): void;\n}>();\n\nconst popover = ref();\n\nconst color = new Color(props.color);\nconst rightColor = new Color(props.color);\n\nconst colorString = ref(\"\");\nconst oppositeColorString = ref(\"\");\nconst rightColorString = ref(\"\");\nconst oppositeRightColorString = ref(\"\");\n\nconst h = ref(0);\nconst s = ref(0);\nconst v = ref(0);\n\nconst hTop = ref(0);\nconst sLeft = ref(0);\nconst vTop = ref(0);\n\nfunction set() {\n  colorString.value = color.toString();\n  oppositeColorString.value = __color.set(color).opposite(true).toString();\n  rightColorString.value = rightColor.toString();\n  oppositeRightColorString.value = __color\n    .set(rightColor)\n    .opposite(true)\n    .toString();\n  const rightColorHSV = rightColor.getHSV();\n  const colorHSV = color.getHSV();\n  h.value = rightColorHSV.h;\n  s.value = colorHSV.s;\n  v.value = colorHSV.v;\n  hTop.value = (1 - h.value) * 100;\n  sLeft.value = 100 * s.value - 6;\n  vTop.value = 100 * (1 - v.value) - 6;\n}\n\n// 初始化\nset();\n\nlet s1;\nlet s2;\n\n// 右侧竖行选择区-指示棒-h\nconst hueFieldReady = (ctx, box) => {\n  const setH = () => {\n    if (!ctx.mpg.current.isDown) {\n      return;\n    }\n    const h = clamp(1 - ctx.mpg.current.y / ctx.rect.height, 0, 1);\n    rightColor.setHSV(h, s.value, v.value);\n    color.setHSV(h, s.value, v.value);\n    set();\n  };\n  if (s1) {\n    s1.unsubscribe();\n  }\n  s1 = useCompatableDownMovePoint$(box.el, {\n    start: setH\n  }).subscribe(setH);\n};\n\n// 正方形选择区-叠加黑白渐变背景-s+v\nconst saturationFieldReady = (ctx, box) => {\n  const setSV = () => {\n    if (!ctx.mpg.current.isDown) {\n      return;\n    }\n    color.setHSV(\n      h.value,\n      ctx.mpg.current.x / ctx.rect.width,\n      1 - ctx.mpg.current.y / ctx.rect.height\n    );\n    set();\n  };\n  if (s2) {\n    s2.unsubscribe();\n  }\n  s2 = useCompatableDownMovePoint$(box.el, {\n    start: setSV,\n    end: () => {\n      emits(\"color\", colorString.value);\n      popover.value.close();\n      useClipboard(colorString.value).then(() => {\n        // toast(`${colorString.value} 已复制`);\n      });\n    }\n  }).subscribe(setSV);\n};\n\nonUnmounted(() => {\n  s1?.unsubscribe();\n  s2?.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <Popover\n    ref=\"popover\"\n    :closeWhenClickOverlay=\"false\"\n  >\n    <template #button>\n      <slot>\n        <span\n          style=\"\n            display: inline-block;\n            vertical-align: middle;\n            font-size: 1em;\n            padding: 0.3em 0.8em;\n            border-radius: 0.3em;\n            cursor: pointer;\n            outline: 'none';\n            text-align: 'center';\n            border: 0;\n          \"\n          :style=\"{\n            backgroundColor: colorString,\n            color: oppositeColorString\n          }\"\n        >\n          {{ colorString }}\n        </span>\n      </slot>\n    </template>\n    <template #panel>\n      <div\n        class=\"selector\"\n        style=\"\n          position: relative;\n          width: 124px;\n          height: 106px;\n          padding: 3px;\n          background-color: #222222;\n          box-sizing: border-box;\n        \"\n      >\n        <!-- 正方形选择区 -->\n        <div\n          class=\"saturation-field\"\n          style=\"\n            position: relative;\n            width: 100px;\n            height: 100px;\n            display: inline-block;\n            cursor: pointer;\n            box-sizing: border-box;\n          \"\n          :style=\"{\n            background: `linear-gradient(\n              to right,\n              rgb(255, 255, 255) 0%,\n              ${rightColorString} 100%\n            )`\n          }\"\n        >\n          <Box\n            display=\"full\"\n            @start=\"saturationFieldReady\"\n          >\n            <!-- 正方形选择区-叠加黑白渐变背景 -->\n            <div\n              style=\"\n                width: 100%;\n                height: 100%;\n                background: linear-gradient(\n                  to bottom,\n                  rgba(0, 0, 0, 0) 0%,\n                  rgb(0, 0, 0) 100%\n                );\n                box-sizing: border-box;\n              \"\n            ></div>\n            <!-- 圆形选择点 -->\n            <div\n              class=\"field-knob\"\n              style=\"\n                position: absolute;\n                width: 12px;\n                height: 12px;\n                box-shadow: rgba(0, 0, 0, 0.5) 0px 1px 3px;\n                border-radius: 12px;\n                z-index: 1;\n                cursor: pointer;\n                box-sizing: border-box;\n              \"\n              :style=\"{\n                left: sLeft + 'px',\n                top: vTop + 'px',\n                backgroundColor: colorString,\n                border: `2px solid ${oppositeColorString}`\n              }\"\n            ></div>\n          </Box>\n        </div>\n        <!-- 右侧竖行选择区 -->\n        <div\n          class=\"hue-field\"\n          style=\"\n            width: 15px;\n            height: 100px;\n            cursor: ns-resize;\n            position: absolute;\n            top: 3px;\n            right: 3px;\n            background: linear-gradient(\n              to bottom,\n              rgb(255, 0, 0) 0%,\n              rgb(255, 0, 255) 17%,\n              rgb(0, 0, 255) 34%,\n              rgb(0, 255, 255) 50%,\n              rgb(0, 255, 0) 67%,\n              rgb(255, 255, 0) 84%,\n              rgb(255, 0, 0) 100%\n            );\n            box-sizing: border-box;\n          \"\n        >\n          <Box\n            display=\"full\"\n            @start=\"hueFieldReady\"\n          >\n            <!-- 右侧竖行选择区-指示棒 -->\n            <div\n              class=\"hue-knob\"\n              style=\"\n                position: absolute;\n                width: 15px;\n                height: 2px;\n                z-index: 1;\n                box-sizing: border-box;\n              \"\n              :style=\"{\n                marginTop: hTop + 'px',\n                borderRight: '4px solid ' + oppositeRightColorString\n              }\"\n            ></div>\n          </Box>\n        </div>\n      </div>\n    </template>\n  </Popover>\n</template>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    width?: string;\n    color?: string;\n  }>(),\n  {\n    width: \"10px\",\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n</script>\n\n<template>\n  <svg\n    :style=\"['transform-origin: center', 'width: ' + props.width]\"\n    viewBox=\"0 0 7 5\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <path\n      d=\"M0.153989 2.49994C-0.0513296 2.28468 -0.0513296 1.93567 0.153989 1.72041C0.359307 1.50514 0.692194 1.50514 0.897512 1.72041L3.12808 4.05902C3.3334 4.27428 3.3334 4.62329 3.12808 4.83855C2.92276 5.05382 2.58988 5.05382 2.38456 4.83855L0.153989 2.49994Z\"\n      :fill=\"props.color\"\n    />\n    <path\n      d=\"M6.10249 0.161447C6.30781 -0.0538159 6.64069 -0.0538157 6.84601 0.161447C7.05133 0.376711 7.05133 0.725721 6.84601 0.940984L3.12808 4.83855C2.92276 5.05382 2.58988 5.05382 2.38456 4.83855C2.17924 4.62329 2.17955 4.27439 2.38487 4.05913L6.10249 0.161447Z\"\n      :fill=\"props.color\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, reactive } from \"vue\";\nimport { flushArray } from \"@zyzgroup/core-common\";\nimport { getDocumentElement } from \"@zyzgroup/core-web\";\nimport { plateKeyboard } from \"../../globalTeleport\";\nimport Box from \"../base/Box.vue\";\nimport SVGCheck from \"../svg/SVGCheck.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { SVGCheck },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    maxWidth?: string;\n    showBottomInfo?: boolean;\n    stylePattern?: \"simple\" | \"dot\";\n    supportWhitePlate?: boolean;\n  }>(),\n  {\n    maxWidth: \"750px\",\n    showBottomInfo: true,\n    stylePattern: \"simple\",\n    supportWhitePlate: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"clear\"): void;\n  (event: \"complete\", type: string, plate: string): void;\n}>();\n\nconst PLATE_TYPES = [\n  {\n    name: \"蓝牌\",\n    style: \"background-color: #0078f0;\",\n    completePlateLength: 7,\n    symbol: \"b\"\n  },\n  {\n    name: \"绿牌\",\n    style: \"background-color: #00f08c;\",\n    completePlateLength: 8,\n    symbol: \"g\"\n  },\n  {\n    name: \"黄牌\",\n    style: \"background-color: #fac800;\",\n    completePlateLength: 7,\n    symbol: \"y\"\n  },\n  {\n    name: \"黄绿\",\n    style: \"background: linear-gradient(90deg, #fac800 51.5%, #00f08c 51.51%);\",\n    completePlateLength: 8,\n    symbol: \"q\"\n  },\n  {\n    name: \"黑牌\",\n    style: \"background-color: #222222;\",\n    completePlateLength: 7,\n    symbol: \"d\"\n  }\n];\nif (props.supportWhitePlate) {\n  PLATE_TYPES.push({\n    name: \"白牌\",\n    style: \"background-color: #ffffff;border: 1px solid #222222;\",\n    completePlateLength: 7,\n    symbol: \"w\"\n  });\n}\n\nconst currentTypeIndex = ref(0);\n\nconst plates = reactive<string[]>([]);\n\nconst focusIndex = ref(-1);\n\nconst isPlateKeyboardOpen = ref(false);\nconst scrollTopWhenKeyboardShow = ref(0);\n\nconst numbersRef = ref();\nlet numbersTop = 0;\n\nfunction openPlateKeyboard() {\n  plateKeyboard({\n    initPlates: plates,\n    completePlateLength:\n      PLATE_TYPES[currentTypeIndex.value].completePlateLength,\n    onPlates: (newPlates: string[]) => {\n      flushArray(plates, newPlates);\n      focusIndex.value = plates.length;\n      if (\n        plates.length ===\n        PLATE_TYPES[currentTypeIndex.value].completePlateLength\n      ) {\n        emits(\n          \"complete\",\n          PLATE_TYPES[currentTypeIndex.value].name,\n          plates.join(\"\")\n        );\n      }\n    },\n    onOpen: () => {\n      // 页面其余元素变化 导致 el.rect.x 或 el.rect.y 变化时，也要触发\n      // const systemHeight = getDocumentElement().clientHeight;\n      if (isPlateKeyboardOpen.value == false) {\n        // 初次打开时才变化\n        const rect = numbersRef.value.getBoundingClientRect();\n        numbersTop = rect.y + rect.height;\n      }\n      isPlateKeyboardOpen.value = true;\n    },\n    onClose: () => {\n      isPlateKeyboardOpen.value = false;\n    },\n    onResize: (rect) => {\n      scrollTopWhenKeyboardShow.value =\n        numbersTop <= rect.y ? 0 : rect.y - numbersTop;\n      // console.log(numbersTop, rect.y, scrollTopWhenKeyboardShow.value);\n    }\n  });\n}\n\nconst changePlateType = (index: number) => {\n  currentTypeIndex.value = index;\n  if (\n    focusIndex.value <= PLATE_TYPES[index].completePlateLength &&\n    plates.length < PLATE_TYPES[index].completePlateLength\n  ) {\n    focusIndex.value = plates.length;\n    openPlateKeyboard();\n    emits(\"clear\");\n  } else {\n    flushArray(plates, plates.slice(0, PLATE_TYPES[index].completePlateLength));\n  }\n  if (PLATE_TYPES[index].completePlateLength === plates.length) {\n    emits(\n      \"complete\",\n      PLATE_TYPES[currentTypeIndex.value].name,\n      plates.join(\"\")\n    );\n  }\n};\n\nconst tapNumber = (index: number) => {\n  flushArray(plates, plates.slice(0, index));\n  focusIndex.value = Math.min(Math.max(0, focusIndex.value), index);\n  openPlateKeyboard();\n  emits(\"clear\");\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"plate-mobile\"\n    :style=\"{\n      maxWidth: props.maxWidth,\n      transform: isPlateKeyboardOpen\n        ? `translate(0, ${scrollTopWhenKeyboardShow}px)`\n        : ''\n    }\"\n  >\n    <div class=\"title\">车牌颜色</div>\n    <div\n      class=\"plate-types\"\n      :class=\"props.stylePattern\"\n    >\n      <div\n        v-for=\"(item, index) in PLATE_TYPES\"\n        :key=\"index\"\n        :class=\"index == currentTypeIndex ? 'checked' : ''\"\n        @click=\"changePlateType(index)\"\n      >\n        <template v-if=\"props.stylePattern == 'dot'\">\n          <div :style=\"item.style\"></div>\n          <div>{{ item.name }}</div>\n          <div>\n            <SVGCheck\n              color=\"#ffffff\"\n              width=\"7px\"\n            ></SVGCheck>\n          </div>\n        </template>\n        <template v-else>\n          <div>{{ item.name }}</div>\n        </template>\n      </div>\n    </div>\n    <div class=\"title\">车牌号码</div>\n    <div ref=\"numbersRef\">\n      <div class=\"plate-numbers\">\n        <div\n          @click=\"tapNumber(0)\"\n          :class=\"0 == focusIndex ? 'current' : ''\"\n        >\n          {{ plates[0] }}\n        </div>\n        <div\n          @click=\"tapNumber(1)\"\n          :class=\"1 == focusIndex ? 'current' : ''\"\n        >\n          {{ plates[1] }}\n        </div>\n        <!-- <div class=\"dot\">·</div> -->\n        <div\n          v-for=\"index in PLATE_TYPES[currentTypeIndex].completePlateLength - 2\"\n          :key=\"index\"\n          :class=\"index + 1 == focusIndex ? 'current' : ''\"\n          @click=\"tapNumber(index + 1)\"\n        >\n          {{ plates[index + 1] }}\n        </div>\n      </div>\n    </div>\n    <div\n      class=\"info\"\n      v-if=\"props.showBottomInfo\"\n    >\n      请输入您真实有效的车牌号，便于正常使用系统功能。\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.plate-mobile {\n  background-color: #ffffff;\n  overflow: hidden;\n  border-radius: 8px;\n  padding-bottom: 15px;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.title {\n  font-size: 16px;\n  line-height: 1;\n  color: #333333;\n  font-weight: bold;\n  text-align: center;\n  margin-top: 20px;\n  margin-bottom: 10px;\n}\n.plate-types {\n  display: flex;\n  justify-content: center;\n}\n.plate-types > div {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  width: 60px;\n  height: 44px;\n  border-radius: 4px;\n  background-color: #f5f5f5;\n  cursor: pointer;\n  overflow: hidden;\n  box-sizing: border-box;\n}\n.plate-types > div + div {\n  margin-left: 5px;\n}\n.plate-types.dot > div > div:nth-child(1) {\n  width: 14px;\n  height: 14px;\n  margin-bottom: 5px;\n  border-radius: 50%;\n  background-color: #0078f0;\n}\n.plate-types.dot > div:nth-child(2) > div:nth-child(1) {\n  background-color: #00f08c;\n}\n.plate-types.dot > div:nth-child(3) > div:nth-child(1) {\n  background-color: #fac800;\n}\n.plate-types.dot > div:nth-child(4) > div:nth-child(1) {\n  background: linear-gradient(90deg, #fac800 51.5%, #00f08c 51.51%);\n}\n.plate-types.dot > div:nth-child(5) > div:nth-child(1) {\n  background-color: #222222;\n}\n.plate-types.dot > div > div:nth-child(2) {\n  color: #cccccc;\n  font-size: 14px;\n  line-height: 1;\n  font-weight: bold;\n}\n.plate-types.dot > div > div:nth-child(3) {\n  display: none;\n  position: absolute;\n  right: -1px;\n  bottom: -1px;\n  width: 16px;\n  height: 16px;\n  border-radius: 16px 0 4px 0;\n  background: #5a82f0;\n}\n.plate-types.dot > div > div:nth-child(3) > svg {\n  position: absolute;\n  top: 6px;\n  left: 6px;\n}\n.plate-types.dot > div.checked {\n  border: 1px solid #5a82f0;\n}\n.plate-types.dot > div.checked > div:nth-child(2) {\n  color: #333333;\n}\n.plate-types.dot > div.checked > div:nth-child(3) {\n  display: block;\n}\n.plate-types.simple > div > div:nth-child(1) {\n  color: #666666;\n  font-size: 14px;\n  line-height: 1;\n  font-weight: bold;\n}\n.plate-types.simple > div.checked > div:nth-child(1) {\n  color: #000000;\n}\n.plate-types.simple > div.checked:nth-child(1) {\n  background-color: #0078f0;\n}\n.plate-types.simple > div.checked:nth-child(1) > div {\n  color: #ffffff;\n}\n.plate-types.simple > div.checked:nth-child(2) {\n  background-color: #00f08c;\n}\n.plate-types.simple > div.checked:nth-child(3) {\n  background-color: #fac800;\n}\n.plate-types.simple > div.checked:nth-child(4) {\n  background: linear-gradient(90deg, #fac800 51.5%, #00f08c 51.51%);\n}\n.plate-types.simple > div.checked:nth-child(5) {\n  background-color: #222222;\n}\n.plate-types.simple > div.checked:nth-child(5) > div {\n  color: #ffffff;\n}\n.plate-types.simple > div.checked:nth-child(6) {\n  border: 1px solid #222222;\n  background-color: #ffffff;\n}\n.plate-numbers {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n.plate-numbers > div {\n  flex: 1;\n  max-width: 40px;\n  height: 44px;\n  line-height: 44px;\n  border-radius: 4px;\n  font-size: 18px;\n  color: #333333;\n  text-align: center;\n  border: 1px solid #cccccc;\n}\n.plate-numbers > div.current {\n  border: 1px solid #5a82f0;\n}\n.plate-numbers > div + div {\n  margin-left: 5px;\n}\n.plate-numbers > div.dot {\n  flex: 0;\n  border: 0;\n  padding: 0 2.5px;\n  color: #cccccc;\n  font-size: 46px;\n  margin-right: -5px;\n  margin-left: 0;\n}\n.info {\n  font-size: 12px;\n  line-height: 16px;\n  font-weight: 400;\n  color: #999999;\n  text-align: center;\n  padding: 0 5px;\n  margin-top: 20px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted } from \"vue\";\nimport { DOMSVGUtil } from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    canvasWidth?: string;\n    canvasHeight?: string;\n    borderColor?: string;\n    brushSize?: number;\n    brushDensity?: number;\n    brushColor?: string;\n    downloadFileName?: string;\n  }>(),\n  {\n    canvasWidth: \"400\",\n    canvasHeight: \"300\",\n    borderColor: \"#000000\",\n    brushSize: 4,\n    brushDensity: 200,\n    brushColor: \"#000000\",\n    downloadFileName: \"手写图片\"\n  }\n);\n\nlet download = () => {};\nlet unsubscribe = () => {};\n\nfunction start(drawContext) {\n  const options = {\n    brushSize: props.brushSize,\n    brushDensity: props.brushDensity,\n    brushColor: props.brushColor\n  };\n  unsubscribe = drawContext.drawMouseMoveLine(options);\n  // unsubscribe = drawContext.drawMouseMoveBrush(options); // brush 暂时无法转换为svg\n\n  download = () => {\n    DOMSVGUtil.downloadFromSVGString(\n      drawContext.ctx.toRawSVG().raw,\n      props.downloadFileName\n    );\n  };\n}\n\nonUnmounted(() => {\n  unsubscribe();\n});\n\ndefineExpose({ download: () => download() });\n</script>\n\n<template>\n  <div\n    class=\"hand-write-panel\"\n    :style=\"{\n      width: props.canvasWidth + 'px',\n      height: props.canvasHeight + 'px',\n      border: `1px solid ${borderColor}`\n    }\"\n  >\n    <Box\n      type=\"canvas\"\n      :enableCustomContext=\"true\"\n      @start=\"start\"\n    ></Box>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onUnmounted } from \"vue\";\nimport {\n  useVisible$,\n  Timeline,\n  TWEEN,\n  type EasingFunction,\n  DrawContext\n} from \"@zyzgroup/core-web\";\nimport Button from \"../form/Button.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Button, Box },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    easeName: string;\n    easeFunction: EasingFunction;\n    canvasWidth?: number;\n    canvasHeight?: number;\n    graphHorizontalGap?: number;\n    graphVerticalGap?: number;\n    easeDuration?: number;\n    isSelected?: boolean;\n  }>(),\n  {\n    canvasWidth: 180,\n    canvasHeight: 100,\n    graphHorizontalGap: 5,\n    graphVerticalGap: 20,\n    easeDuration: 2000,\n    isSelected: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"mount\", easeName: string, easeFunction: EasingFunction): void;\n  (event: \"start\", easeName: string, easeFunction: EasingFunction): void;\n  (event: \"complete\", easeName: string, easeFunction: EasingFunction): void;\n  (event: \"select\", easeName: string, easeFunction: EasingFunction): void;\n}>();\n\nlet drawContext: DrawContext;\nlet subscription: any;\nlet isRunning = false;\n\nconst start = (ctx, box) => {\n  if (subscription) {\n    return;\n  }\n  drawContext = ctx;\n  emits(\"mount\", props.easeName, props.easeFunction);\n  subscription = useVisible$(box.el).subscribe((v) => {\n    if (!v) {\n      return;\n    }\n    if (isRunning) {\n      return;\n    }\n    forceStart();\n  });\n};\n\nconst forceStart = () => {\n  isRunning = true;\n\n  emits(\"start\", props.easeName, props.easeFunction);\n\n  // 背景颜色\n  drawContext.ctx.fillStyle = \"rgb(250,250,250)\";\n  drawContext.ctx.fillRect(0, 0, props.canvasWidth, props.canvasHeight);\n\n  drawContext.ctx.lineWidth = 0.5;\n  drawContext.ctx.strokeStyle = \"rgb(230,230,230)\";\n  drawContext.ctx.beginPath();\n  // 上线\n  drawContext.ctx.moveTo(0, props.graphVerticalGap);\n  drawContext.ctx.lineTo(props.canvasWidth, props.graphVerticalGap);\n  // 下线\n  drawContext.ctx.moveTo(0, props.canvasHeight - props.graphVerticalGap);\n  drawContext.ctx.lineTo(\n    props.canvasWidth,\n    props.canvasHeight - props.graphVerticalGap\n  );\n  drawContext.ctx.closePath();\n  drawContext.ctx.stroke();\n\n  drawContext.ctx.lineWidth = 2;\n  drawContext.ctx.strokeStyle = \"rgb(255,127,127)\";\n\n  const position = {\n    x: props.graphHorizontalGap,\n    y: props.canvasHeight - props.graphVerticalGap\n  };\n  const position_prev = {\n    x: props.graphHorizontalGap,\n    y: props.canvasHeight - props.graphVerticalGap\n  };\n\n  const tl = new Timeline({ frameDuration: props.easeDuration });\n  // x轴匀速变化\n  tl.addTween(\n    position,\n    { x: props.canvasWidth - props.graphHorizontalGap },\n    {\n      frames: 1,\n      delay: 0,\n      easeFunction: TWEEN.Easing.Linear.None,\n      onUpdate: (d) => {\n        position.x = d.x;\n      },\n      onComplete: () => {}\n    }\n  );\n  // y轴 easeFunction 变化\n  tl.addTween(\n    position,\n    { y: props.graphVerticalGap },\n    {\n      frames: 1,\n      delay: 0,\n      easeFunction: props.easeFunction,\n      onUpdate: (d) => {\n        position.y = d.y;\n        drawContext.ctx.beginPath();\n        drawContext.ctx.moveTo(position_prev.x, position_prev.y);\n        drawContext.ctx.lineTo(position.x, position.y);\n        drawContext.ctx.closePath();\n        drawContext.ctx.stroke();\n        position_prev.x = position.x;\n        position_prev.y = position.y;\n      },\n      onComplete: () => {\n        emits(\"complete\", props.easeName, props.easeFunction);\n        isRunning = false;\n      }\n    }\n  );\n  tl.play();\n};\n\nconst select = () => {\n  emits(\"select\", props.easeName, props.easeFunction);\n};\n\nonUnmounted(() => {\n  subscription?.unsubscribe();\n});\n\ndefineExpose({ start: forceStart });\n</script>\n\n<template>\n  <div class=\"ease-graph-display\">\n    <div>缓动：{{ easeName }}</div>\n    <div>\n      <div>\n        <Button\n          stylePattern=\"outline\"\n          height=\"32px\"\n          padding=\"10px\"\n          @click=\"forceStart\"\n        >\n          开始\n        </Button>\n      </div>\n      <div>\n        <Button\n          :stylePattern=\"props.isSelected ? 'fullfill' : 'outline'\"\n          height=\"32px\"\n          padding=\"10px\"\n          @click=\"select\"\n        >\n          选择\n        </Button>\n      </div>\n    </div>\n    <div\n      :style=\"{\n        width: canvasWidth + 'px',\n        height: canvasHeight + 'px',\n        backgroundColor: '#ffffff'\n      }\"\n    >\n      <Box\n        type=\"canvas\"\n        @start=\"start\"\n      ></Box>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.ease-graph-display {\n  display: inline-block;\n}\n.ease-graph-display > div:nth-child(1) {\n  margin-top: 10px;\n  font-size: 14px;\n}\n.ease-graph-display > div:nth-child(2) {\n  margin-bottom: 10px;\n}\n.ease-graph-display > div:nth-child(2) > div {\n  display: inline-block;\n}\n.ease-graph-display > div:nth-child(2) > div + div {\n  margin-left: 10px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport {\n  ScheduleDependOnResult,\n  createTask,\n  deferred\n} from \"@zyzgroup/core-common\";\nimport { TWEEN, type EasingFunction } from \"@zyzgroup/core-web\";\nimport EaseGraphDisplay from \"./EaseGraphDisplay.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { EaseGraphDisplay },\n  inheritAttrs: true\n});\n\nconst defaultEaseDuration = 2000;\n\nconst props = withDefaults(\n  defineProps<{\n    easeList?: {\n      easeName: string;\n      easeFunction?: EasingFunction;\n      easeDuration?: number;\n    }[];\n  }>(),\n  {\n    easeList: () => [\n      {\n        easeName: \"Linear\",\n        easeFunction: TWEEN.Easing.Linear.None\n      },\n      {\n        easeName: \"QuadraticIn\",\n        easeFunction: TWEEN.Easing.Quadratic.In\n      },\n      {\n        easeName: \"QuadraticOut\",\n        easeFunction: TWEEN.Easing.Quadratic.Out\n      },\n      {\n        easeName: \"QuadraticInOut\",\n        easeFunction: TWEEN.Easing.Quadratic.InOut\n      },\n      {\n        easeName: \"CubicIn\",\n        easeFunction: TWEEN.Easing.Cubic.In\n      },\n      {\n        easeName: \"CubicOut\",\n        easeFunction: TWEEN.Easing.Cubic.Out\n      },\n      {\n        easeName: \"CubicInOut\",\n        easeFunction: TWEEN.Easing.Cubic.InOut\n      },\n      {\n        easeName: \"QuarticIn\",\n        easeFunction: TWEEN.Easing.Quartic.In\n      },\n      {\n        easeName: \"QuarticOut\",\n        easeFunction: TWEEN.Easing.Quartic.Out\n      },\n      {\n        easeName: \"QuarticInOut\",\n        easeFunction: TWEEN.Easing.Quartic.InOut\n      },\n      {\n        easeName: \"QuinticIn\",\n        easeFunction: TWEEN.Easing.Quintic.In\n      },\n      {\n        easeName: \"QuinticOut\",\n        easeFunction: TWEEN.Easing.Quintic.Out\n      },\n      {\n        easeName: \"QuinticInOut\",\n        easeFunction: TWEEN.Easing.Quintic.InOut\n      },\n      {\n        easeName: \"SinusoidalIn\",\n        easeFunction: TWEEN.Easing.Sinusoidal.In\n      },\n      {\n        easeName: \"SinusoidalOut\",\n        easeFunction: TWEEN.Easing.Sinusoidal.Out\n      },\n      {\n        easeName: \"SinusoidalInOut\",\n        easeFunction: TWEEN.Easing.Sinusoidal.InOut\n      },\n      {\n        easeName: \"ExponentialIn\",\n        easeFunction: TWEEN.Easing.Exponential.In\n      },\n      {\n        easeName: \"ExponentialOut\",\n        easeFunction: TWEEN.Easing.Exponential.Out\n      },\n      {\n        easeName: \"ExponentialInOut\",\n        easeFunction: TWEEN.Easing.Exponential.InOut\n      },\n      {\n        easeName: \"CircularIn\",\n        easeFunction: TWEEN.Easing.Circular.In\n      },\n      {\n        easeName: \"CircularOut\",\n        easeFunction: TWEEN.Easing.Circular.Out\n      },\n      {\n        easeName: \"CircularInOut\",\n        easeFunction: TWEEN.Easing.Circular.InOut\n      },\n      {\n        easeName: \"ElasticIn\",\n        easeFunction: TWEEN.Easing.Elastic.In\n      },\n      {\n        easeName: \"ElasticOut\",\n        easeFunction: TWEEN.Easing.Elastic.Out\n      },\n      {\n        easeName: \"ElasticInOut\",\n        easeFunction: TWEEN.Easing.Elastic.InOut\n      },\n      {\n        easeName: \"BackIn\",\n        easeFunction: TWEEN.Easing.Back.In\n      },\n      {\n        easeName: \"BackOut\",\n        easeFunction: TWEEN.Easing.Back.Out\n      },\n      {\n        easeName: \"BackInOut\",\n        easeFunction: TWEEN.Easing.Back.InOut\n      },\n      {\n        easeName: \"BounceIn\",\n        easeFunction: TWEEN.Easing.Bounce.In\n      },\n      {\n        easeName: \"BounceOut\",\n        easeFunction: TWEEN.Easing.Bounce.Out\n      },\n      {\n        easeName: \"BounceInOut\",\n        easeFunction: TWEEN.Easing.Bounce.InOut\n      },\n      {\n        easeName: \"generatePow(10)In\",\n        easeFunction: TWEEN.Easing.generatePow(10).In\n      },\n      {\n        easeName: \"generatePow(10)Out\",\n        easeFunction: TWEEN.Easing.generatePow(10).Out\n      },\n      {\n        easeName: \"generatePow(10)InOut\",\n        easeFunction: TWEEN.Easing.generatePow(10).InOut\n      },\n      {\n        easeName: \"4 steps\",\n        easeFunction: TWEEN.Easing.createStep(4)\n      },\n      {\n        easeName: \"8 steps\",\n        easeFunction: TWEEN.Easing.createStep(8)\n      },\n      {\n        easeName: \"12 steps\",\n        easeFunction: TWEEN.Easing.createStep(12)\n      },\n      {\n        easeName: \"16 steps\",\n        easeFunction: TWEEN.Easing.createStep(16)\n      },\n      {\n        easeName: \"Noisy Exponential.InOut\",\n        easeFunction: TWEEN.Easing.createNoisyEasing(\n          TWEEN.Easing.Exponential.InOut,\n          0.1\n        )\n      },\n      {\n        easeName: \"Noisy Elastic.InOut\",\n        easeFunction: TWEEN.Easing.createNoisyEasing(\n          TWEEN.Easing.Elastic.InOut,\n          0.2\n        )\n      },\n      {\n        easeName: \"Noisy Circular.InOut\",\n        easeFunction: TWEEN.Easing.createNoisyEasing(\n          TWEEN.Easing.Circular.InOut,\n          0.1\n        )\n      },\n      {\n        easeName: \"swing\",\n        easeFunction: TWEEN.Easing.swing\n      },\n      {\n        easeName: \"causeSeizures\",\n        easeFunction: TWEEN.Easing.causeSeizures\n      }\n    ]\n  }\n);\n\nconst emits = defineEmits<{\n  (\n    event: \"selectedEaseFunction\",\n    easeName: string,\n    easeFunction: EasingFunction\n  ): void;\n}>();\n\nconst children: Record<string, any> = {};\nfunction setChildRef(el: any, easeName: string) {\n  if (el) {\n    children[easeName] = { el, defer: deferred() };\n  }\n}\n\n// 初次加载全部执行一遍\nconst schedule = new ScheduleDependOnResult({ concurrency: 10 });\nfunction onMount(easeName: string) {\n  schedule.asap(\n    createTask({\n      fn: () => {\n        children[easeName].el.start();\n        return children[easeName].defer.promise;\n      }\n    })\n  );\n}\n\nfunction onComplete(easeName: string) {\n  const child = children[easeName];\n  if (child) {\n    child.defer.resolve();\n    delete children[easeName];\n  }\n}\n\nconst selectedEaseName = ref(\"Linear\");\nfunction onSelect(easeName: string, easeFunction: EasingFunction) {\n  selectedEaseName.value = easeName;\n  emits(\"selectedEaseFunction\", easeName, easeFunction);\n}\n\nonMounted(() => {\n  onSelect(\"Linear\", TWEEN.Easing.Linear.None);\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div>\n    <template\n      v-for=\"ease in props.easeList\"\n      :key=\"ease.easeName\"\n    >\n      <div class=\"ease-graph-display-wrap\">\n        <EaseGraphDisplay\n          v-if=\"ease.easeFunction\"\n          :easeName=\"ease.easeName\"\n          :easeFunction=\"ease.easeFunction\"\n          :easeDuration=\"ease.easeDuration || defaultEaseDuration\"\n          :isSelected=\"selectedEaseName == ease.easeName\"\n          @mount=\"onMount\"\n          @select=\"onSelect\"\n          @complete=\"onComplete\"\n          :ref=\"(el) => setChildRef(el, ease.easeName)\"\n        />\n      </div>\n    </template>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.ease-graph-display-wrap {\n  display: inline-block;\n  margin-right: 10px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted } from \"vue\";\nimport {\n  useVisible$,\n  Timeline,\n  TWEEN,\n  DrawContext,\n  type InterpolationFunction\n} from \"@zyzgroup/core-web\";\nimport Button from \"../form/Button.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Button, Box },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    interpolationName: string;\n    interpolationFunction: InterpolationFunction;\n    canvasWidth?: number;\n    canvasHeight?: number;\n    interpolationDuration?: number;\n  }>(),\n  {\n    canvasWidth: 240,\n    canvasHeight: 160,\n    interpolationDuration: 2000\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"mount\", easeName: string): void;\n  (event: \"start\", easeName: string): void;\n  (event: \"complete\", easeName: string): void;\n}>();\n\nlet drawContext: DrawContext;\nlet subscription: any;\nlet isRunning = false;\n\nconst start = (ctx, box) => {\n  if (subscription) {\n    return;\n  }\n  drawContext = ctx;\n  emits(\"mount\", props.interpolationName);\n  subscription = useVisible$(box.el).subscribe((v) => {\n    if (!v) {\n      return;\n    }\n    if (isRunning) {\n      return;\n    }\n    forceStart();\n  });\n};\n\nconst min = 1 / 6;\nconst max = 5 / 6;\n\nconst x0 = props.canvasWidth * min;\nconst y0 = props.canvasHeight / 2;\n\nconst xA = [props.canvasWidth * max, props.canvasWidth / 2];\nconst yA = [props.canvasHeight * min, props.canvasHeight * max];\n\n/// start === end\nconst xB = [...xA, x0];\nconst yB = [...yA, y0];\n\nconst forceStart = () => {\n  isRunning = true;\n\n  emits(\"start\", props.interpolationName);\n\n  // 背景颜色\n  drawContext.ctx.fillStyle = \"rgb(250,250,250)\";\n  drawContext.ctx.fillRect(0, 0, props.canvasWidth, props.canvasHeight);\n\n  drawContext.ctx.fillStyle = \"rgb(200,200,200)\";\n  drawContext.ctx.fillRect(x0 - 3, y0 - 3, 6, 6);\n  drawContext.ctx.fillRect(xA[xA.length - 1] - 3, yA[yA.length - 1] - 3, 6, 6);\n\n  for (let i = 0; i < xA.length; i++) {\n    drawContext.ctx.fillRect(xA[i] - 2, yA[i] - 2, 4, 4);\n  }\n\n  const tl = new Timeline({ frameDuration: props.interpolationDuration });\n\n  tl.addTween(\n    { x: x0, y: y0, old: { x: x0, y: y0 } },\n    { x: xA, y: yA },\n    {\n      frames: 1,\n      delay: 0,\n      easeFunction: TWEEN.Easing.Linear.None,\n      interpolationFunction: props.interpolationFunction,\n      onUpdate: (object) => {\n        drawContext.ctx.lineWidth = 2;\n        drawContext.ctx.strokeStyle = \"rgba(255,127,127,0.9)\";\n\n        drawContext.ctx.beginPath();\n        drawContext.ctx.moveTo(object.old.x, object.old.y);\n        drawContext.ctx.lineTo(object.x, object.y);\n        drawContext.ctx.closePath();\n        drawContext.ctx.stroke();\n\n        object.old.x = object.x;\n        object.old.y = object.y;\n      },\n      onComplete: () => {}\n    }\n  );\n\n  tl.addTween(\n    { x: x0, y: y0, old: { x: x0, y: y0 } },\n    { x: xB, y: yB },\n    {\n      frames: 1,\n      delay: 0,\n      easeFunction: TWEEN.Easing.Linear.None,\n      interpolationFunction: props.interpolationFunction,\n      onUpdate: (object) => {\n        drawContext.ctx.lineWidth = 2;\n        drawContext.ctx.strokeStyle = \"rgba(255,127,127,0.5)\";\n\n        drawContext.ctx.beginPath();\n        drawContext.ctx.moveTo(object.old.x, object.old.y);\n        drawContext.ctx.lineTo(object.x, object.y);\n        drawContext.ctx.closePath();\n        drawContext.ctx.stroke();\n\n        object.old.x = object.x;\n        object.old.y = object.y;\n      },\n      onComplete: () => {\n        emits(\"complete\", props.interpolationName);\n        isRunning = false;\n      }\n    }\n  );\n  tl.play();\n};\n\nonUnmounted(() => {\n  subscription?.unsubscribe();\n});\n\ndefineExpose({ start: forceStart });\n</script>\n\n<template>\n  <div class=\"interpolation-graph-display\">\n    <div>\n      插值：{{ interpolationName }}\n      <Button\n        stylePattern=\"outline\"\n        height=\"32px\"\n        @click=\"forceStart\"\n      >\n        开始\n      </Button>\n    </div>\n    <div\n      :style=\"{\n        width: canvasWidth + 'px',\n        height: canvasHeight + 'px',\n        backgroundColor: '#ffffff'\n      }\"\n    >\n      <Box\n        type=\"canvas\"\n        @start=\"start\"\n      ></Box>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.interpolation-graph-display {\n  display: inline-block;\n}\n.interpolation-graph-display > div:nth-child(1) {\n  margin-top: 10px;\n  margin-bottom: 10px;\n  font-size: 14px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n  ScheduleDependOnResult,\n  createTask,\n  deferred\n} from \"@zyzgroup/core-common\";\nimport { TWEEN, type InterpolationFunction } from \"@zyzgroup/core-web\";\nimport InterpolationGraphDisplay from \"./InterpolationGraphDisplay.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { InterpolationGraphDisplay },\n  inheritAttrs: true\n});\n\nconst defaultEaseDuration = 2000;\n\nconst props = withDefaults(\n  defineProps<{\n    interpolationList?: {\n      interpolationName: string;\n      interpolationFunction: InterpolationFunction;\n      easeDuration?: number;\n    }[];\n  }>(),\n  {\n    interpolationList: () => [\n      {\n        interpolationName: \"Linear\",\n        interpolationFunction: TWEEN.Interpolation.Linear\n      },\n      {\n        interpolationName: \"Bezier\",\n        interpolationFunction: TWEEN.Interpolation.Bezier\n      },\n      {\n        interpolationName: \"CatmullRom\",\n        interpolationFunction: TWEEN.Interpolation.CatmullRom\n      }\n    ]\n  }\n);\n\nconst emits = defineEmits<{\n  // (event: \"click\"): void;\n}>();\n\nconst children: Record<string, any> = {};\nfunction setChild(el: any, interpolationName: string) {\n  if (el) {\n    children[interpolationName] = { el, defer: deferred() };\n  }\n}\n\n// 初次加载全部执行一遍\nconst schedule = new ScheduleDependOnResult({ concurrency: 1 });\nfunction onMount(interpolationName: string) {\n  schedule.asap(\n    createTask({\n      fn: () => {\n        children[interpolationName].el.start();\n        return children[interpolationName].defer.promise;\n      }\n    })\n  );\n}\n\nfunction onComplete(interpolationName: string) {\n  const child = children[interpolationName];\n  if (child) {\n    child.defer.resolve();\n    delete children[interpolationName];\n  }\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <div>\n    <template\n      v-for=\"interpolation in props.interpolationList\"\n      :key=\"interpolation.interpolationName\"\n    >\n      <div class=\"interpolation-graph-display-wrap\">\n        <InterpolationGraphDisplay\n          :interpolationName=\"interpolation.interpolationName\"\n          :interpolationFunction=\"interpolation.interpolationFunction\"\n          :easeDuration=\"interpolation.easeDuration || defaultEaseDuration\"\n          @mount=\"onMount\"\n          @complete=\"onComplete\"\n          :ref=\"(el) => setChild(el, interpolation.interpolationName)\"\n        />\n      </div>\n    </template>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.interpolation-graph-display-wrap {\n  display: inline-block;\n  margin-right: 10px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { CSSProperties, onUnmounted, ref, watchEffect } from \"vue\";\nimport {\n  SupportedEaseNameToCubicBezier,\n  transitionStart$,\n  transitionEnd$\n} from \"@zyzgroup/core-web\";\n\nconst CSSTransitionNames = [\"superRainbow\"] as const;\nexport type CSSTransitionName = (typeof CSSTransitionNames)[number];\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nexport type CSSTransitionOptions = {\n  name?: CSSTransitionName;\n  timingFunction?: SupportedEaseNameToCubicBezier;\n  duration?: number;\n  delay?: number;\n};\n\nconst props = withDefaults(\n  defineProps<{\n    name?: CSSTransitionName;\n    timingFunction?: SupportedEaseNameToCubicBezier;\n    // linear\n    // ease\n    // ease-in\n    // ease-in-out\n    // ease-out\n    // cubic-bezier(0.25, 0.1, 0.25, 1)\n    duration?: number;\n    delay?: number;\n  }>(),\n  {\n    name: \"superRainbow\",\n    duration: 300,\n    timingFunction: \"ease-out\",\n    delay: 0\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"csstransitionstart\", e: TransitionEvent): void;\n  (event: \"csstransitionend\", e: TransitionEvent): void;\n}>();\n\nconst r = ref();\n\nlet s1;\nlet s2;\nwatchEffect(() => {\n  if (!r.value || s1 || s2) {\n    return;\n  }\n  s1 = transitionStart$(r.value).subscribe((e) => {\n    emits(\"csstransitionstart\", e);\n  });\n  s2 = transitionEnd$(r.value).subscribe((e) => {\n    emits(\"csstransitionend\", e);\n  });\n});\n\n// 设置预定义变化\nfunction getPredefinedStyle(options?: CSSTransitionOptions) {\n  switch (options?.name || props.name) {\n    case \"superRainbow\":\n      return {\n        common: {\n          backgroundSize: \"200% 100%\",\n          backgroundImage: `linear-gradient(90deg,red,orange,yellow,green,blue,violet)`\n        },\n        start: {\n          backgroundPosition: \"0 0\"\n        },\n        end: {\n          backgroundPosition: \"-100% 100%\"\n        }\n      };\n    default:\n      return {\n        common: {} as CSSProperties,\n        start: {} as CSSProperties,\n        end: {} as CSSProperties\n      };\n  }\n}\n\nfunction getBasicStyle(options?: CSSTransitionOptions) {\n  return {\n    // css-transition 渐变属性 : 某个属性 从 指定的开始状态 过渡到 特定的结束状态\n    // 一次性 + 不可暂停 + 不可反转\n\n    // transition: 属性名称 duration timing-function delay\n\n    // 可选属性名称:\n    // all\n    // width\n    // height\n    // border-width\n    // color\n    // background-color\n    // border-color\n    // text-decoration-color\n    // fill\n    // stroke\n    // opacity\n    // box-shadow\n    // transform\n    // filter\n    // backdrop-filter\n\n    // transition: `transform ${props.duration}ms ease-in-out, box-shadow ${props.duration}ms ease-in-out`,\n    transition: `all ${\n      typeof options?.duration == \"number\" ? options?.duration : props.duration\n    }ms ${options?.timingFunction || props.timingFunction} ${\n      typeof options?.delay == \"number\" ? options?.delay : props.delay\n    }ms`\n    // willChange: \"box-shadow, transform\",\n  } as CSSProperties;\n}\n\nconst style = ref<CSSProperties>({});\n\n// 清除\nfunction clear(options?: CSSTransitionOptions) {\n  const predefinedStyle = getPredefinedStyle(options);\n  style.value = {\n    ...getBasicStyle(options),\n    ...predefinedStyle.common,\n    ...predefinedStyle.start\n  };\n}\n// 初始化执行\nclear();\n\n// 触发\nfunction trigger(options?: CSSTransitionOptions) {\n  const predefinedStyle = getPredefinedStyle(options);\n  style.value = {\n    ...getBasicStyle(options),\n    ...predefinedStyle.common,\n    ...predefinedStyle.end\n  };\n}\n\nonUnmounted(() => {\n  s1?.unsubscribe();\n  s2?.unsubscribe();\n});\n\ndefineExpose({ clear, trigger });\n</script>\n\n<template>\n  <div\n    ref=\"r\"\n    class=\"css-transition\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    text?: string;\n    textSize?: number;\n    borderColor?: string;\n    borderWidth?: number;\n    borderRadius?: number;\n  }>(),\n  {\n    text: \"\",\n    textSize: 12,\n    borderColor: \"#5a82f0\",\n    borderWidth: 2,\n    borderRadius: 8\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst isFocus = ref(false);\nconst start = () => {\n  isFocus.value = true;\n};\nconst end = () => {\n  isFocus.value = false;\n};\n\ndefineExpose({ start, end });\n</script>\n\n<template>\n  <Box\n    class=\"border-focus-text\"\n    display=\"shrink\"\n  >\n    <div\n      class=\"text\"\n      v-if=\"isFocus\"\n      :style=\"{\n        fontSize: `${textSize}px`,\n        top: `${-Math.ceil(textSize / 2) - 4}px`,\n        padding: '4px 12px',\n        backgroundColor: borderColor,\n        borderRadius: `${textSize}px 0 ${textSize}px 0`,\n        color: __color\n          .set(borderColor)\n          .opposite(true, '#333333', '#ffffff')\n          .toString()\n      }\"\n    >\n      {{ props.text }}\n    </div>\n    <div\n      class=\"inner\"\n      :style=\"{\n        border: `${borderWidth}px solid ${\n          isFocus ? borderColor : 'transparent'\n        }`,\n        borderRadius: `${borderRadius}px`\n      }\"\n    >\n      <slot></slot>\n    </div>\n  </Box>\n</template>\n\n<style scoped>\n.text {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n}\n.inner {\n  position: relative;\n  overflow: hidden;\n  box-sizing: border-box;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, reactive } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n    dur?: number;\n  }>(),\n  {\n    color: \"#3cefff\",\n    dur: 750\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst style = reactive<Record<string, string>>({\n  transition: `box-shadow ${props.dur}ms`,\n  borderRadius: \"100%\"\n});\n\nconst resize = (box) => {\n  style.width = style.height =\n    Math.ceil(Math.max(box.rect.width, box.rect.height)) + \"px\";\n  start();\n};\n\nconst start = () => {\n  const c = __color.set(props.color).setAlpha(0.2).toString();\n  style.boxShadow = `\n    inset ${style.width} 0 0 ${c},\n    inset 0 ${style.width} 0 ${c},\n    inset -${style.width} 0 0 ${c},\n    inset 0 -${style.width} 0 ${c}\n  `;\n};\n\nconst end = () => {\n  style.boxShadow = `\n    inset 0.5em 0 0 rgba(255, 0, 0, 0.5),\n    inset 0 0.5em 0 rgba(252, 150, 0, 0.5),\n    inset -0.5em 0 0 rgba(0, 255, 0, 0.5),\n    inset 0 -0.5em 0 rgba(0, 150, 255, 0.5)\n  `;\n};\n\ndefineExpose({ start, end });\n</script>\n\n<template>\n  <Box\n    class=\"circle\"\n    display=\"shrink\"\n    @resize=\"resize\"\n  >\n    <div\n      class=\"circle-before\"\n      :style=\"style\"\n    ></div>\n    <div class=\"circle-inner\">\n      <slot></slot>\n    </div>\n  </Box>\n</template>\n\n<style scoped>\n.circle-before {\n  position: absolute;\n  z-index: 2;\n}\n.circle-inner {\n  position: relative;\n  z-index: 1;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { watch, ref } from \"vue\";\nimport Routes, { RoutePage } from \"../base/Routes.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    labels: string[];\n    pages: RoutePage[];\n    initIndex?: number;\n  }>(),\n  {\n    initIndex: 0\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"changedIndex\", index: number): void;\n}>();\n\nconst selectedIndex = ref(props.initIndex);\n\nconst headerRef = ref<HTMLElement>();\n\nconst headerTabRefs = ref<Array<any>>([]);\nconst setHeaderTabRefs = (el: any, index: number) => {\n  if (el) {\n    headerTabRefs.value.push({\n      index,\n      el\n    });\n  }\n};\n\nwatch([headerRef, headerTabRefs], () => {\n  computeIndicatorLocation();\n});\n\nconst indicatorX = ref<number>(0);\nconst indicatorY = ref<number>(0);\nconst indicatorWidth = ref<number>(0);\nfunction computeIndicatorLocation() {\n  if (headerRef.value && headerTabRefs.value.length) {\n    const parentRect = headerRef.value.getBoundingClientRect();\n    const destRect =\n      headerTabRefs.value[selectedIndex.value].el.getBoundingClientRect();\n    indicatorX.value = destRect.x - parentRect.x;\n    indicatorY.value = destRect.y - parentRect.y + destRect.height - 2;\n    indicatorWidth.value = destRect.width;\n  }\n}\n\nconst routesRef = ref();\nlet isSettled = false;\nwatch(routesRef, () => {\n  if (!routesRef.value || isSettled) {\n    return;\n  }\n  isSettled = true;\n  routesRef.value.reset(props.pages, () => {\n    changeTab(props.initIndex);\n  });\n});\n\nfunction changeTab(index: number) {\n  selectedIndex.value = index;\n  emits(\"changedIndex\", index);\n  computeIndicatorLocation();\n  routesRef.value?.goto(index);\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <div class=\"tabs\">\n    <div\n      class=\"header\"\n      ref=\"headerRef\"\n    >\n      <div\n        v-for=\"(label, index) in props.labels\"\n        :key=\"label\"\n        :class=\"index == selectedIndex ? 'active' : ''\"\n        @click=\"changeTab(index)\"\n      >\n        <div :ref=\"(el) => setHeaderTabRefs(el, index)\">\n          {{ label }}\n        </div>\n      </div>\n      <div\n        class=\"indicator\"\n        :style=\"{\n          top: indicatorY + 'px',\n          left: indicatorX + 'px',\n          width: indicatorWidth + 'px',\n          height: '2px'\n        }\"\n      ></div>\n    </div>\n    <div class=\"content\">\n      <Routes ref=\"routesRef\" />\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.tabs {\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  height: 100%;\n}\n.content {\n  flex: 1 1 auto;\n}\n.header {\n  flex: 0 0 auto;\n  position: relative;\n  display: flex;\n  font-size: 14px;\n  line-height: 1;\n  color: #999999;\n  box-sizing: border-box;\n}\n.header .active {\n  color: #5a82f0;\n}\n.header > div {\n  flex: 1 1 auto;\n  cursor: pointer;\n  text-align: center;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  font-weight: bold;\n  background-color: #ffffff;\n  position: relative;\n  box-sizing: border-box;\n}\n.header > div > div {\n  box-sizing: border-box;\n  padding: 10px 0;\n}\n.header > div.indicator {\n  display: inline-block;\n  flex: 0;\n  position: absolute;\n  background-color: #5a82f0;\n  transition: all ease-out 200ms;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref, watch } from \"vue\";\nimport { Timeline, DOMVideo } from \"@zyzgroup/core-web\";\nimport ProgressBar from \"../progress/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    src: string;\n    type?: string;\n    autoplay?: boolean;\n    width?: string;\n    height?: string;\n  }>(),\n  {\n    type: \"video/webm\",\n    autoplay: true,\n    width: \"320px\",\n    height: \"138px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"start\"): void;\n  (event: \"complete\"): void;\n}>();\n\nlet tl: Timeline | null;\n\nfunction onPlay(this: any, _e: Event) {\n  if (tl) {\n    tl.resume();\n    return;\n  }\n  // if (video.value.readyState === video.value.HAVE_ENOUGH_DATA) {\n  tl = new Timeline({\n    frameDuration: this.duration * 1000 // e.target.duration\n  });\n  tl.addTween(\n    { x: 0 },\n    { x: 100 },\n    {\n      frames: 1,\n      delay: 0,\n      onStart: () => {\n        emits(\"start\");\n        bar.value?.goto(0);\n      },\n      onUpdate: (obj) => {\n        // console.log(obj, e.target.duration, e.target.currentTime);\n        bar.value?.goto(obj.x);\n      },\n      onComplete: () => {\n        emits(\"complete\");\n        tl = null;\n      }\n    }\n  );\n  tl.play();\n}\n\n// function onPause(this: any, _e: Event) {\n//   console.log(\"onPause\");\n//   tl?.pause(); /// tl.pause() 比 tl.onComplete() 早执行\n// }\n\nconst video = ref();\nconst bar = ref();\n\nwatch(video, () => {\n  if (!video.value) {\n    return;\n  }\n  video.value.addEventListener(\"play\", onPlay);\n  // video.value.addEventListener(\"pause\", onPause);\n  if (props.autoplay) {\n    DOMVideo.tryAutoPlayOrAutoPlayAfterClick(video.value);\n  }\n});\n\nonUnmounted(() => {\n  video.value?.removeEventListener(onPlay);\n  // video.value?.removeEventListener(onPause);\n});\n\nfunction play() {\n  video.value?.play();\n}\n\nfunction pause() {\n  video.value?.pause();\n  tl?.pause();\n}\n\ndefineExpose({ play, pause });\n</script>\n\n<template>\n  <div\n    class=\"video\"\n    :style=\"{ width: props.width, height: props.height }\"\n    @click=\"play\"\n  >\n    <video\n      ref=\"video\"\n      :width=\"props.width\"\n      :height=\"props.height\"\n      preload=\"metadata\"\n    >\n      <source\n        :src=\"props.src\"\n        :type=\"props.type\"\n      />\n    </video>\n    <div class=\"video-progress-bar\">\n      <ProgressBar\n        ref=\"bar\"\n        bgColor=\"#ffffff\"\n      ></ProgressBar>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.video {\n  position: relative;\n  overflow: hidden;\n  background-color: #f5f5f5;\n}\n.video-progress-bar {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 6px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { useLoadScript, mapTDTJSSDK } from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\nconst props = withDefaults(\n  defineProps<{\n    mapKey?: string;\n    mapContainerID?: string;\n    mapWidth?: string;\n    mapHeight?: string;\n    mapZoom?: number;\n    // longitude\n    mapCenterLng?: number;\n    // latitude\n    mapCenterLat?: number;\n  }>(),\n  {\n    mapKey: \"8261564c2f1435b76dc5991adad737e6\",\n    mapContainerID: \"mapTiandituDiv\",\n    mapZoom: 18,\n    mapCenterLng: 120.619585,\n    mapCenterLat: 31.299379\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"click\"): void;\n}>();\n\nfunction mount() {\n  useLoadScript(`http://api.tianditu.gov.cn/api?v=4.0&tk=${props.mapKey}`)\n    .then(() => {\n      new mapTDTJSSDK(\n        props.mapContainerID,\n        props.mapCenterLng,\n        props.mapCenterLat,\n        props.mapZoom\n      );\n    })\n    .catch((e) => {\n      console.log(\"error\", e);\n    });\n}\n\nconst mapWidth = ref(props.mapWidth);\nconst mapHeight = ref(props.mapHeight);\nfunction resize(box) {\n  mapWidth.value = box.rect.width + \"px\";\n  mapHeight.value = box.rect.height + \"px\";\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <Box\n    display=\"full\"\n    @mount=\"mount\"\n    @resize=\"resize\"\n  >\n    <slot\n      :width=\"mapWidth\"\n      :height=\"mapHeight\"\n    >\n      <!-- 天地图动态注入的样式，目前在ce shadow root 中无法使用 -->\n      <!--\n        所以注入\n        <div id=\"mapTiandituDiv\" style=\"width: 100%; height: 100%\"></div>\n      -->\n    </slot>\n  </Box>\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  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst rectStyle = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-1\">\n    <div\n      class=\"rect1\"\n      :style=\"rectStyle\"\n    ></div>\n    <div\n      class=\"rect2\"\n      :style=\"rectStyle\"\n    ></div>\n    <div\n      class=\"rect3\"\n      :style=\"rectStyle\"\n    ></div>\n    <div\n      class=\"rect4\"\n      :style=\"rectStyle\"\n    ></div>\n    <div\n      class=\"rect5\"\n      :style=\"rectStyle\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-1 {\n  position: relative;\n  display: block;\n  overflow: hidden;\n  width: 100%;\n  height: 100%;\n  text-align: center;\n}\n\n.loading-1 > div {\n  width: 6px;\n  height: 100%;\n  margin: auto 2px;\n  display: inline-block;\n  animation: stretchdelay 1.2s infinite ease-in-out;\n}\n\n.loading-1 .rect2 {\n  animation-delay: -1.1s;\n}\n\n.loading-1 .rect3 {\n  animation-delay: -1s;\n}\n\n.loading-1 .rect4 {\n  animation-delay: -0.9s;\n}\n\n.loading-1 .rect5 {\n  animation-delay: -0.8s;\n}\n\n@keyframes stretchdelay {\n  0%,\n  40%,\n  100% {\n    transform: scaleY(0.4);\n  }\n  20% {\n    transform: scaleY(1);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst dotStyle = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-2\">\n    <div\n      class=\"dot1\"\n      :style=\"dotStyle\"\n    ></div>\n    <div\n      class=\"dot2\"\n      :style=\"dotStyle\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-2 {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 100%;\n  text-align: center;\n  animation: rotate 2s infinite linear;\n}\n\n.dot1,\n.dot2 {\n  width: 60%;\n  height: 60%;\n  display: inline-block;\n  position: absolute;\n  top: 0;\n  border-radius: 100%;\n  animation: bounce 2s infinite ease-in-out;\n}\n\n.dot2 {\n  top: auto;\n  bottom: 0px;\n  animation-delay: -1s;\n}\n\n@keyframes rotate {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes bounce {\n  0%,\n  100% {\n    transform: scale(0);\n  }\n  50% {\n    transform: scale(1);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { onMounted, onUnmounted, ref } from \"vue\";\nimport { getCSSVar, injectStyle } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    fromColor?: string;\n    toColor?: string;\n  }>(),\n  {\n    fromColor: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\"),\n    toColor: getCSSVar(\"--xg-red\")\n  }\n);\n\nconst dotStyle = { backgroundColor: props.fromColor, width: \"20%\" };\n\nconst loading3 = ref();\n\nonMounted(() => {\n  /// for ce\n  injectStyle(\n    `\n  @keyframes snake {\n    0% {\n      opacity: 0.3;\n      transform: translateY(0px);\n      box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.1);\n    }\n    50% {\n      opacity: 1;\n      transform: translateY(-10px);\n      background-color: ${props.toColor};\n      box-shadow: 0px 20px 3px rgba(0, 0, 0, 0.05);\n    }\n    100% {\n      opacity: 0.3;\n      transform: translateY(0px);\n      box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.1);\n    }\n  }\n`,\n    loading3.value\n  );\n});\n\nonUnmounted(() => {});\n</script>\n\n<template>\n  <div\n    class=\"loading-3\"\n    ref=\"loading3\"\n  >\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '0' }\"\n    ></div>\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '20%' }\"\n    ></div>\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '40%' }\"\n    ></div>\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '60%' }\"\n    ></div>\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '80%' }\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-3 {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: 100%;\n  text-align: center;\n  /* animation: rotate 2s infinite linear; */\n}\n\n.dot {\n  display: inline-block;\n  top: 50%;\n  transform: translateY(-50%);\n  position: absolute;\n  aspect-ratio: 1 / 1;\n  opacity: 0.5;\n  border-radius: 100%;\n  animation: snake 1s infinite ease-in-out;\n}\n\n.loading-3 div:nth-child(1) {\n  animation-delay: 0s;\n}\n.loading-3 div:nth-child(2) {\n  animation-delay: 0.2s;\n}\n.loading-3 div:nth-child(3) {\n  animation-delay: 0.4s;\n}\n.loading-3 div:nth-child(4) {\n  animation-delay: 0.6s;\n}\n.loading-3 div:nth-child(5) {\n  animation-delay: 0.8s;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst style = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-4\">\n    <div\n      class=\"rect\"\n      :style=\"style\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-4 {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  overflow: hidden;\n  perspective: 120px;\n}\n.rect {\n  width: 40%;\n  aspect-ratio: 1 / 1;\n  animation: rotateplane 1.2s infinite ease-in-out;\n}\n\n@keyframes rotateplane {\n  0% {\n    transform: perspective(120px) rotateX(0deg) rotateY(0deg);\n  }\n  50% {\n    transform: perspective(120px) rotateX(-180deg) rotateY(0deg);\n  }\n  100% {\n    transform: perspective(120px) rotateX(-180deg) rotateY(-180deg);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst cubeStyle = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-5\">\n    <div\n      class=\"cube1\"\n      :style=\"cubeStyle\"\n    ></div>\n    <div\n      class=\"cube2\"\n      :style=\"cubeStyle\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-5 {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n\n.cube1,\n.cube2 {\n  width: 40%;\n  aspect-ratio: 1 / 1;\n  display: inline-block;\n  position: absolute;\n  top: 10%;\n  left: 10%;\n  transform: translate(-10%, -10%);\n  animation: cubemove 1.8s infinite ease-in-out;\n  transform-origin: center;\n}\n\n.cube2 {\n  animation-delay: -0.9s;\n}\n\n@keyframes cubemove {\n  25% {\n    transform: translateX(42px) rotate(-90deg) scale(0.5);\n  }\n  50% {\n    transform: translateX(42px) translateY(42px) rotate(-179deg);\n  }\n  50.1% {\n    transform: translateX(42px) translateY(42px) rotate(-180deg);\n  }\n  75% {\n    transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);\n  }\n  100% {\n    transform: rotate(-360deg);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst style = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-6\">\n    <div :style=\"style\"></div>\n    <div :style=\"style\"></div>\n    <div :style=\"style\"></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-6 {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n\n.loading-6 > div {\n  border-radius: 100%;\n}\n\n.loading-6 > div:nth-child(2) {\n  animation-delay: -0.4s;\n}\n\n.loading-6 > div:nth-child(3) {\n  animation-delay: -0.2s;\n}\n\n.loading-6 > div {\n  position: absolute;\n  left: 20%;\n  top: 20%;\n  width: 60%;\n  aspect-ratio: 1 / 1;\n  opacity: 0;\n  margin: 0;\n  animation: loading-6 1s 0s linear infinite;\n}\n@keyframes loading-6 {\n  0% {\n    transform: scale(0);\n    opacity: 0;\n  }\n\n  5% {\n    opacity: 1;\n  }\n\n  100% {\n    transform: scale(1);\n    opacity: 0;\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { onMounted, onUnmounted, ref } from \"vue\";\nimport { getCSSVar, injectStyle } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst loading7 = ref();\n\nonMounted(() => {\n  /// for ce\n  injectStyle(\n    `\n  :root {\n    --loading-7-bg-color: ${props.color}\n  }\n  :host {\n    --loading-7-bg-color: ${props.color}\n  }\n  `,\n    loading7.value\n  );\n});\n\nonUnmounted(() => {});\n</script>\n\n<template>\n  <div\n    class=\"loading-7\"\n    ref=\"loading7\"\n  >\n    <div></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-7 {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.loading-7 > div {\n  width: 50%;\n  height: 50%;\n  margin: auto;\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n}\n.loading-7 > div::before {\n  content: \"\";\n  width: 100%;\n  height: 5px;\n  box-sizing: border-box;\n  background: #000;\n  opacity: 0.1;\n  position: absolute;\n  top: calc(100% + 5px);\n  left: 0;\n  border-radius: 50%;\n  animation: shadow 0.5s linear infinite;\n}\n.loading-7 > div::after {\n  content: \"\";\n  width: 100%;\n  height: 100%;\n  animation: animate 0.5s linear infinite;\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  border-radius: 3px;\n  background-color: var(--loading-7-bg-color);\n}\n@keyframes animate {\n  17% {\n    border-bottom-right-radius: 3px;\n  }\n  25% {\n    transform: translateY(9px) rotate(22.5deg);\n  }\n  50% {\n    transform: translateY(18px) scale(1, 0.9) rotate(45deg);\n    border-bottom-right-radius: 40px;\n  }\n  75% {\n    transform: translateY(9px) rotate(67.5deg);\n  }\n  100% {\n    transform: translateY(0) rotate(90deg);\n  }\n}\n\n@keyframes shadow {\n  0%,\n  100% {\n    transform: scale(1, 1);\n  }\n  50% {\n    transform: scale(1.2, 1);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst style = {\n  borderTopColor: props.color\n};\n</script>\n\n<template>\n  <div class=\"loading-9\">\n    <div :style=\"style\"></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-9 {\n  position: relative;\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n.loading-9 div {\n  width: 50%;\n  aspect-ratio: 1 / 1;\n  border: 3px solid rgba(0, 0, 0, 0.1);\n  border-radius: 50%;\n  animation: spin 1s linear infinite;\n}\n@keyframes spin {\n  to {\n    transform: rotate(360deg);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n</script>\n\n<template>\n  <div class=\"loading-10\">\n    <svg viewBox=\"0 0 50 50\">\n      <circle\n        class=\"ring\"\n        cx=\"25\"\n        cy=\"25\"\n        r=\"20\"\n        :style=\"['stroke: rgba(0,0,0,0.1)']\"\n      ></circle>\n      <circle\n        class=\"ball\"\n        cx=\"25\"\n        cy=\"5\"\n        r=\"3.5\"\n        :style=\"['fill: ' + props.color]\"\n      ></circle>\n    </svg>\n  </div>\n</template>\n\n<style scoped>\n.loading-10 {\n  position: relative;\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n.loading-10 svg {\n  width: 50%;\n  aspect-ratio: 1 / 1;\n  transform-origin: center;\n  animation: 1.5s spin ease infinite;\n}\n.ring {\n  fill: none;\n  stroke-width: 2;\n}\n\n.ball {\n  stroke: none;\n}\n\n@keyframes spin {\n  to {\n    transform: rotate(360deg);\n  }\n}\n</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(\"--yz-xg-blue\", \"#5a82f0\"),\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 } from \"vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    text?: string;\n    secondText?: string;\n    startColor?: string;\n    endColor?: string;\n    dur?: number;\n  }>(),\n  {\n    text: \"\",\n    secondText: \"\",\n    startColor: \"#5A82F0\",\n    endColor: \"#66B3FF\",\n    dur: 2000\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst ringGap = 10;\nconst ringWidth = 4;\n\nconst length = ref(0);\nconst resize = (box) => {\n  length.value = Math.floor(Math.min(box.rect.width, box.rect.height));\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <Box\n    display=\"full\"\n    @resize=\"resize\"\n  >\n    <div\n      class=\"ring\"\n      :style=\"{\n        width: length + 'px',\n        height: length + 'px',\n        padding: ringGap + 'px',\n        background: `linear-gradient(180deg, ${props.startColor} 0%, ${props.endColor} 100%)`\n      }\"\n    >\n      <div\n        class=\"ring-rotate\"\n        :style=\"{\n          animation: `rotate ${props.dur}ms infinite linear`,\n          mask: `radial-gradient(transparent ${\n            length / 2 - ringGap - ringWidth\n          }px, #000 ${length / 2 - ringGap - ringWidth}px)`\n        }\"\n      >\n        <div class=\"left\"></div>\n        <div class=\"right\"></div>\n      </div>\n      <div\n        class=\"ring-content\"\n        :style=\"{\n          top: ringGap + ringWidth + 'px',\n          left: ringGap + ringWidth + 'px',\n          width: length - (ringGap + ringWidth) * 2 + 'px',\n          height: length - (ringGap + ringWidth) * 2 + 'px'\n        }\"\n      >\n        <div v-if=\"props.text\">{{ props.text }}</div>\n        <div v-if=\"props.secondText\">{{ props.secondText }}</div>\n      </div>\n    </div>\n  </Box>\n</template>\n\n<style>\n/* @import \"../../../../../css/animate_ce.css\"; */\n@keyframes rotate {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n</style>\n\n<style scoped>\n.ring {\n  position: relative;\n  display: block;\n  margin: 0 auto;\n  border-radius: 50%;\n  overflow: hidden;\n  box-sizing: border-box;\n}\n.ring-rotate {\n  width: 100%;\n  height: 100%;\n  position: relative;\n  overflow: hidden;\n  box-sizing: border-box;\n  border-radius: 50%;\n}\n.ring-content {\n  position: absolute;\n  overflow: hidden;\n  box-sizing: border-box;\n  border-radius: 50%;\n  color: #ffffff;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n}\n.ring-content > div:nth-child(1) {\n  font-size: 20px;\n  font-weight: bold;\n}\n.ring-content > div:nth-child(2) {\n  font-size: 14px;\n  margin-top: 6px;\n}\n.left,\n.right {\n  position: absolute;\n  top: 0;\n  width: 50%;\n  height: 100%;\n  z-index: 0;\n}\n.left {\n  left: 0;\n  background: linear-gradient(\n    180deg,\n    rgba(255, 255, 255, 0),\n    rgba(255, 255, 255, 0.5)\n  );\n}\n.right {\n  right: 0;\n  background: linear-gradient(\n    180deg,\n    rgba(255, 255, 255, 1),\n    rgba(255, 255, 255, 0.5)\n  );\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, reactive } from \"vue\";\nimport {\n  Time,\n  parseTime,\n  increaseTime,\n  decreaseTime,\n  copyTime,\n  now\n} from \"@zyzgroup/core-common\";\nimport {\n  setTimeoutAccurate,\n  setIntervalAccurate,\n  injectStyle\n} from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    startTime?: string;\n    initStart?: boolean;\n    creaseType?: \"increase\" | \"decrease\";\n    flipDirection?: \"down\" | \"up\";\n    dur?: number; // 动画时间\n    bgColor?: string;\n    textColor?: string;\n    borderRadius?: number;\n    gap?: number;\n    perspective?: number;\n  }>(),\n  {\n    startTime: \"00:00:00\",\n    initStart: true,\n    creaseType: \"increase\",\n    flipDirection: \"down\",\n    dur: 800, // 动画时间\n    bgColor: \"#5a82f0\",\n    textColor: \"#ffffff\",\n    borderRadius: 8,\n    gap: 1,\n    perspective: 400\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst containerRef = ref();\nconst flipWidth = ref(40);\nconst lineHeight = ref(20);\nconst fontSize = ref(20);\n\nconst resize = (box) => {\n  flipWidth.value = Math.floor(box.rect.width / (6 + 1));\n  lineHeight.value = Math.floor(box.rect.height);\n  fontSize.value = Math.max(12, lineHeight.value);\n};\n\nconst mount = (box) => {\n  // for ce\n  injectStyle(\n    `\n  :root {\n    --yz-clock-flipper-bg-color:${props.bgColor};\n    --yz-clock-flipper-text-color:${props.textColor};\n    --yz-clock-flipper-border-radius:${props.borderRadius}px;\n    --yz-clock-flipper-gap:${props.gap}px;\n    --yz-clock-flipper-gap-double:${props.gap * 2}px;\n    --yz-clock-flipper-gap-four:${props.gap * 4}px;\n    --yz-clock-flipper-animation-duration:${props.dur}ms;\n    --yz-clock-flipper-perspective: ${props.perspective}px;\n  }\n  :host {\n    --yz-clock-flipper-bg-color:${props.bgColor};\n    --yz-clock-flipper-text-color:${props.textColor};\n    --yz-clock-flipper-border-radius:${props.borderRadius}px;\n    --yz-clock-flipper-gap:${props.gap}px;\n    --yz-clock-flipper-gap-double:${props.gap * 2}px;\n    --yz-clock-flipper-gap-four:${props.gap * 4}px;\n    --yz-clock-flipper-animation-duration:${props.dur}ms;\n    --yz-clock-flipper-perspective: ${props.perspective}px;\n  }\n  `,\n    box.el\n  );\n  if (props.initStart) {\n    start(props.startTime);\n  }\n};\n\nconst startTime: Time = [0, 0, 0, 0, 0, 0];\nconst time = reactive<Time>([0, 0, 0, 0, 0, 0]);\nconst timeNext = reactive<Time>([0, 0, 0, 0, 0, 0]);\n\nlet lastTimeOutCount = 0;\n\nconst start = (starttime?: string) => {\n  if (starttime) {\n    copyTime(parseTime(starttime), startTime);\n    startTime.forEach((t, i) => {\n      time[i] = t;\n      timeNext[i] = t;\n    });\n  }\n  pause();\n  lastTimeOutCount = 0;\n  flipAction(now(), 0, false);\n  clearInterval = setIntervalAccurate(\n    (t: DOMHighResTimeStamp, count: number, isTimeOut: boolean) => {\n      flipAction(t, count, isTimeOut);\n    },\n    1000\n  );\n};\n\nlet clearInterval: () => void;\nconst pause = () => {\n  clearInterval?.();\n};\n\nconst flipAction = (\n  _: DOMHighResTimeStamp,\n  count: number,\n  isTimeOut: boolean\n) => {\n  // 当前周期为超时周期\n  if (isTimeOut) {\n    lastTimeOutCount = count;\n    // 超时周期不更新\n  } else {\n    // 当前周期是正常周期，上个周期为超时周期\n    if (lastTimeOutCount > 0) {\n      // 尽量保持与开始时间的偏差\n      startTime.forEach((t, i) => {\n        time[i] = t;\n        timeNext[i] = t;\n      });\n      const currentCount = lastTimeOutCount + 1;\n      if (props.creaseType == \"increase\") {\n        copyTime(increaseTime(time, currentCount), time);\n        copyTime(increaseTime(timeNext, currentCount + 1), timeNext);\n      } else {\n        copyTime(decreaseTime(time, currentCount), time);\n        copyTime(decreaseTime(timeNext, currentCount + 1), timeNext);\n      }\n      lastTimeOutCount = 0;\n    } else {\n      // 正常周期\n      if (props.creaseType == \"increase\") {\n        copyTime(increaseTime(timeNext, 1), timeNext);\n      } else {\n        copyTime(decreaseTime(timeNext, 1), timeNext);\n      }\n    }\n    setTimeoutAccurate(() => {\n      timeNext.forEach((t, i) => {\n        time[i] = t;\n      });\n    }, props.dur);\n  }\n};\n\ndefineExpose({ start, pause });\n</script>\n\n<template>\n  <Box\n    ref=\"containerRef\"\n    display=\"full\"\n    :style=\"{ overflow: 'visible' }\"\n    @mount=\"mount\"\n    @resize=\"resize\"\n  >\n    <div\n      class=\"clock-flipper\"\n      :style=\"{\n        fontSize: fontSize + 'px',\n        lineHeight: lineHeight + 'px'\n      }\"\n    >\n      <template\n        v-for=\"(t, i) in time\"\n        :key=\"i\"\n      >\n        <!-- 小时 十位 -->\n        <!-- 小时 个位 -->\n        <!-- gap -->\n        <!-- 分钟 十位 -->\n        <!-- 分钟 个位 -->\n        <!-- gap -->\n        <!-- 秒 十位 -->\n        <!-- 秒 个位 -->\n        <div\n          class=\"flip\"\n          :class=\"[props.flipDirection, timeNext[i] != t ? 'go' : '']\"\n          :style=\"{ width: flipWidth + 'px' }\"\n        >\n          <div\n            class=\"front digital\"\n            :class=\"[`flipper_${i}`, `number_${t}`]\"\n          ></div>\n          <div\n            class=\"back digital\"\n            :class=\"[`number_${timeNext[i]}`]\"\n          ></div>\n        </div>\n        <div\n          v-if=\"i == 1 || i == 3\"\n          class=\"gap\"\n          :style=\"{\n            fontSize: Math.floor(fontSize * 0.6) + 'px',\n            lineHeight: 0\n          }\"\n        >\n          :\n        </div>\n      </template>\n    </div>\n  </Box>\n</template>\n\n<style>\n@keyframes frontFlipDown {\n  0% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(0deg);\n  }\n  100% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(-180deg);\n  }\n}\n@keyframes backFlipDown {\n  0% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(180deg);\n  }\n  100% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(0deg);\n  }\n}\n@keyframes frontFlipUp {\n  0% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(0deg);\n  }\n  100% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(180deg);\n  }\n}\n@keyframes backFlipUp {\n  0% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(-180deg);\n  }\n  100% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(0deg);\n  }\n}\n</style>\n\n<style scoped>\n.clock-flipper {\n  position: relative;\n  margin: 0 auto;\n  box-sizing: border-box;\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n  height: 100%;\n  font-family: D-DINCondensed-number;\n}\n.flip {\n  position: relative;\n  height: 100%;\n  box-sizing: border-box;\n  color: var(--yz-clock-flipper-text-color);\n  /* border-radius: var(--yz-clock-flipper-border-radius) 0 0\n    var(--yz-clock-flipper-border-radius); */\n}\n.flip + .flip {\n  margin-left: var(--yz-clock-flipper-gap-double);\n  /* border-radius: 0 var(--yz-clock-flipper-border-radius)\n    var(--yz-clock-flipper-border-radius) 0; */\n}\n\n/*\n-------------- --------------\n.back:before  |  .front:before\n.back:after   |  .front:after\n-------------- ---------------\n*/\n\n/* 向下翻\n                      .back:after{z-index:2}\n                              *    .front:before{z-index:3}\n                              *         *\n                              *     *\n                              *  *\n.back:before{z-index:1} * * * *  *  *  *  *  * .front:after{z-index:1}\n*/\n.flip.down .front:after,\n.flip.down .back:before {\n  z-index: 1;\n}\n.flip.down .front:before {\n  z-index: 3;\n}\n.flip.down .back:after {\n  z-index: 2;\n  transform-origin: 50% 0%;\n  transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(180deg);\n}\n.flip.down.go .front:before {\n  transform-origin: 50% 100%;\n  animation: frontFlipDown var(--yz-clock-flipper-animation-duration)\n    ease-in-out both;\n  backface-visibility: hidden;\n  box-shadow: 0 -2px 6px rgba(255, 255, 255, 0.3);\n}\n.flip.down.go .back:after {\n  animation: backFlipDown var(--yz-clock-flipper-animation-duration) ease-in-out\n    both;\n}\n\n/* 向上翻\n                      .front:after{z-index:3}\n                              *    .back:before{z-index:2}\n                              *         *\n                              *     *\n                              *  *\n.front:before{z-index:1} * * * *  *  *  *  *  * .back:after{z-index:1}\n*/\n.flip.up .front:before,\n.flip.up .back:after {\n  z-index: 1;\n}\n.flip.up .front:after {\n  z-index: 3;\n}\n.flip.up .back:before {\n  z-index: 2;\n  transform-origin: 50% 100%;\n  transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(-180deg);\n}\n.flip.up.go .front:after {\n  transform-origin: 50% 0;\n  animation: frontFlipUp var(--yz-clock-flipper-animation-duration) ease-in-out\n    both;\n  backface-visibility: hidden;\n  box-shadow: 0 -2px 6px rgba(255, 255, 255, 0.3);\n}\n.flip.up.go .back:before {\n  animation: backFlipUp var(--yz-clock-flipper-animation-duration) ease-in-out\n    both;\n}\n\n.gap {\n  margin: 0 var(--yz-clock-flipper-gap-four);\n  color: var(--yz-clock-flipper-bg-color);\n}\n\n.digital:before,\n.digital:after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  height: 50%;\n  box-sizing: border-box;\n  background: var(--yz-clock-flipper-bg-color);\n  overflow: hidden;\n}\n.digital:before {\n  top: 0;\n  bottom: 50%;\n  border-radius: var(--yz-clock-flipper-border-radius)\n    var(--yz-clock-flipper-border-radius) 0 0;\n  border-bottom: solid var(--yz-clock-flipper-gap)\n    var(--yz-clock-flipper-text-color);\n}\n.digital:after {\n  top: 50%;\n  bottom: 0;\n  border-radius: 0 0 var(--yz-clock-flipper-border-radius)\n    var(--yz-clock-flipper-border-radius);\n  border-top: solid var(--yz-clock-flipper-gap)\n    var(--yz-clock-flipper-text-color);\n  /* 下半张”纸牌只显示文字的下半部分，并且与“上半张”纸牌衔接在一起 */\n  line-height: 0;\n}\n\n.digital.number_0:before,\n.digital.number_0:after {\n  content: \"0\";\n}\n.digital.number_1:before,\n.digital.number_1:after {\n  content: \"1\";\n}\n.digital.number_2:before,\n.digital.number_2:after {\n  content: \"2\";\n}\n.digital.number_3:before,\n.digital.number_3:after {\n  content: \"3\";\n}\n.digital.number_4:before,\n.digital.number_4:after {\n  content: \"4\";\n}\n.digital.number_5:before,\n.digital.number_5:after {\n  content: \"5\";\n}\n.digital.number_6:before,\n.digital.number_6:after {\n  content: \"6\";\n}\n.digital.number_7:before,\n.digital.number_7:after {\n  content: \"7\";\n}\n.digital.number_8:before,\n.digital.number_8:after {\n  content: \"8\";\n}\n.digital.number_9:before,\n.digital.number_9:after {\n  content: \"9\";\n}\n</style>\n","<script setup lang=\"ts\">\nimport { reactive, ref } from \"vue\";\nimport { maxDotNumber, clamp } from \"@zyzgroup/core-common\";\nimport {\n  RingIndicatorShapeCombo,\n  createRunCycleInMaxRate\n} from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    percent?: number;\n    lineWidth?: number;\n    bgColor?: string;\n    startColor?: string;\n    endColor?: string;\n    half?: boolean;\n  }>(),\n  {\n    percent: 0,\n    lineWidth: 12,\n    bgColor: \"#B3C6E7\",\n    startColor: \"#5A82F0\",\n    endColor: \"#66B3FF\",\n    half: false // 半圆 或 全圆\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nlet currentPercent = ref(0);\nconst getPercent = createRunCycleInMaxRate(() => {\n  const percent = clamp(Math.floor(props.percent), 0, 100);\n  if (currentPercent.value < percent) {\n    currentPercent.value = Math.min(currentPercent.value + 1, percent);\n  } else if (currentPercent.value > percent) {\n    currentPercent.value = Math.max(currentPercent.value - 1, percent);\n  }\n  return maxDotNumber(currentPercent.value / 100, 2);\n}, 20);\n\nconst shapes = reactive([]);\nlet ringIndicator;\nfunction start(box) {\n  if (ringIndicator) {\n    return;\n  }\n  ringIndicator = new RingIndicatorShapeCombo({\n    half: props.half,\n    width: box.rect.width,\n    height: box.rect.height,\n    lineWidth: props.lineWidth,\n    bgColor: props.bgColor,\n    startColor: props.startColor,\n    endColor: props.endColor\n  });\n  shapes.push(ringIndicator);\n}\n\nfunction frame() {\n  ringIndicator?.setPercent(getPercent());\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <div class=\"ring-indicator\">\n    <Box\n      type=\"canvas\"\n      :shapes=\"shapes\"\n      :loop=\"true\"\n      @start=\"start\"\n      @frame=\"frame\"\n    ></Box>\n    <div\n      :class=\"{\n        'ring-text': true,\n        'ring-text-full': !props.half,\n        'ring-text-half': props.half\n      }\"\n    >\n      <span>{{ currentPercent }}</span>\n      <span>%</span>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.ring-indicator {\n  position: relative;\n  width: 100%;\n  height: 100%;\n}\n.ring-text-full {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 100%;\n  transform: translate(-50%, -50%);\n  text-align: center;\n  font-family: D-DINCondensed-number;\n  color: #333333;\n  text-indent: 1em;\n}\n.ring-text-half {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  text-align: center;\n  font-family: D-DINCondensed-number;\n  color: #333333;\n  padding-bottom: 20px;\n  text-indent: 1em;\n}\n.ring-text > span:nth-child(1) {\n  font-size: 64px;\n}\n.ring-text > span:nth-child(2) {\n  font-size: 20px;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    width?: string;\n    height?: string;\n    color?: string;\n  }>(),\n  {\n    width: \"1.5em\",\n    color: getCSSVar(\"--xg-red\")\n  }\n);\n</script>\n\n<template>\n  <svg\n    viewBox=\"0 0 24 24\"\n    :width=\"props.width\"\n    :height=\"props.height ?? props.width\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    style=\"transform-origin: center\"\n  >\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12ZM19 12C19 15.866 15.866 19 12 19C8.13401 19 5 15.866 5 12C5 8.13401 8.13401 5 12 5C15.866 5 19 8.13401 19 12Z\"\n      :fill=\"props.color\"\n    />\n    <path\n      d=\"M12.5332 15.2001C12.5332 15.4946 12.2944 15.7334 11.9999 15.7334C11.7053 15.7334 11.4665 15.4946 11.4665 15.2001L11.4665 10.9334C11.4665 10.6388 11.7053 10.4001 11.9999 10.4001C12.2944 10.4001 12.5332 10.6388 12.5332 10.9334L12.5332 15.2001Z\"\n      :fill=\"props.color\"\n    />\n    <path\n      d=\"M12.5332 8.80006C12.5332 9.09462 12.2944 9.3334 11.9999 9.3334C11.7053 9.3334 11.4665 9.09462 11.4665 8.80006C11.4665 8.50551 11.7053 8.26673 11.9999 8.26673C12.2944 8.26673 12.5332 8.50551 12.5332 8.80006Z\"\n      :fill=\"props.color\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    width?: string;\n    height?: string;\n    color?: string;\n  }>(),\n  {\n    width: \"24px\",\n    color: getCSSVar(\"--xg-red\")\n  }\n);\n</script>\n\n<template>\n  <svg\n    viewBox=\"0 0 24 24\"\n    :width=\"props.width\"\n    :height=\"props.height ?? props.width\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    style=\"transform-origin: center\"\n  >\n    <path\n      d=\"M12 19.5C7.85786 19.5 4.5 16.1421 4.5 12C4.5 7.85786 7.85786 4.5 12 4.5C16.1421 4.5 19.5 7.85786 19.5 12C19.5 16.1421 16.1421 19.5 12 19.5Z\"\n      :fill=\"props.color\"\n      :stroke=\"props.color\"\n    />\n    <path\n      d=\"M12.1159 8C12.8297 8 13.4036 8.19414 13.8377 8.58242C14.2792 8.96337 14.5 9.48718 14.5 10.1538C14.5 10.6886 14.3602 11.1355 14.0806 11.4945C13.9849 11.6117 13.6759 11.8974 13.1534 12.3516C12.9474 12.5201 12.7929 12.7106 12.6898 12.9231C12.5721 13.1355 12.5132 13.3773 12.5132 13.6484V13.8352H11.3322V13.6484C11.3322 13.2234 11.4058 12.8755 11.553 12.6044C11.6928 12.3114 12.1085 11.8571 12.8002 11.2418L12.9879 11.033C13.1939 10.7692 13.2969 10.5018 13.2969 10.2308C13.2969 9.85714 13.1902 9.55678 12.9768 9.32967C12.7561 9.10989 12.4433 9 12.0386 9C11.5383 9 11.1777 9.15751 10.957 9.47253C10.7583 9.73626 10.6589 10.1099 10.6589 10.5934H9.5C9.5 9.79487 9.73179 9.16484 10.1954 8.7033C10.6589 8.23443 11.2991 8 12.1159 8ZM11.9172 14.4286C12.16 14.4286 12.355 14.5018 12.5022 14.6484C12.6567 14.7875 12.734 14.9744 12.734 15.2088C12.734 15.4286 12.6531 15.619 12.4912 15.7802C12.3293 15.9267 12.138 16 11.9172 16C11.6891 16 11.4978 15.9231 11.3433 15.7692C11.1887 15.6154 11.1115 15.4286 11.1115 15.2088C11.1115 14.9744 11.1887 14.7875 11.3433 14.6484C11.4904 14.5018 11.6818 14.4286 11.9172 14.4286Z\"\n      fill=\"white\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    width?: string;\n    height?: string;\n    color?: string;\n  }>(),\n  {\n    width: \"24px\",\n    color: getCSSVar(\"--xg-red\")\n  }\n);\n</script>\n\n<template>\n  <svg\n    viewBox=\"0 0 48 48\"\n    :width=\"props.width\"\n    :height=\"props.height ?? props.width\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    style=\"transform-origin: center\"\n  >\n    <path\n      d=\"M24 46.5C36.4264 46.5 46.5 36.4264 46.5 24C46.5 11.5736 36.4264 1.5 24 1.5C11.5736 1.5 1.5 11.5736 1.5 24C1.5 36.4264 11.5736 46.5 24 46.5Z\"\n      :fill=\"props.color\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M26.1514 24L33.3033 16.8481C33.8989 16.2525 33.8989 15.2924 33.3033 14.6967C32.7076 14.1011 31.7475 14.1011 31.1519 14.6967L24 21.8486L16.8481 14.6967C16.2525 14.1011 15.2924 14.1011 14.6967 14.6967C14.1011 15.2924 14.1011 16.2525 14.6967 16.8481L21.8486 24L14.6967 31.1519C14.1011 31.7475 14.1011 32.7076 14.6967 33.3033C15.2924 33.8989 16.2525 33.8989 16.8481 33.3033L24 26.1514L31.1519 33.3033C31.7475 33.8989 32.7076 33.8989 33.3033 33.3033C33.8989 32.7076 33.8989 31.7475 33.3033 31.1519L26.1514 24Z\"\n      fill=\"white\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    width?: string;\n    height?: string;\n    color?: string;\n  }>(),\n  {\n    width: \"24px\",\n    color: getCSSVar(\"--xg-green\")\n  }\n);\n</script>\n\n<template>\n  <svg\n    viewBox=\"0 0 48 48\"\n    :width=\"props.width\"\n    :height=\"props.height ?? props.width\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    style=\"transform-origin: center\"\n  >\n    <path\n      d=\"M24 46.5C36.4264 46.5 46.5 36.4264 46.5 24C46.5 11.5736 36.4264 1.5 24 1.5C11.5736 1.5 1.5 11.5736 1.5 24C1.5 36.4264 11.5736 46.5 24 46.5Z\"\n      :fill=\"props.color\"\n    />\n    <path\n      fill-rule=\"evenodd\"\n      clip-rule=\"evenodd\"\n      d=\"M35.5611 16.2017C34.9759 15.5994 34.0326 15.5994 33.4474 16.2017L21.0958 28.5444L14.5526 21.8106C13.9674 21.2084 13.0241 21.2084 12.4389 21.8106C11.8537 22.4129 11.8537 23.3836 12.4389 23.9859L20.0303 31.7983C20.6155 32.4006 21.5588 32.4006 22.144 31.7983L35.5611 18.3769C36.1463 17.7747 36.1463 16.8039 35.5611 16.2017Z\"\n      fill=\"white\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    width?: string;\n    height?: string;\n    color?: string;\n  }>(),\n  {\n    width: \"24px\",\n    color: getCSSVar(\"--xg-orange\")\n  }\n);\n</script>\n\n<template>\n  <svg\n    viewBox=\"0 0 48 48\"\n    :width=\"props.width\"\n    :height=\"props.height ?? props.width\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    style=\"transform-origin: center\"\n  >\n    <path\n      d=\"M24 46.5C36.4264 46.5 46.5 36.4264 46.5 24C46.5 11.5736 36.4264 1.5 24 1.5C11.5736 1.5 1.5 11.5736 1.5 24C1.5 36.4264 11.5736 46.5 24 46.5Z\"\n      :fill=\"props.color\"\n    />\n    <rect\n      x=\"22.5\"\n      y=\"10.5\"\n      width=\"3\"\n      height=\"16.5\"\n      rx=\"1.5\"\n      fill=\"white\"\n    />\n    <rect\n      x=\"37.5\"\n      y=\"24\"\n      width=\"3\"\n      height=\"15\"\n      rx=\"1.5\"\n      transform=\"rotate(90 37.5 24)\"\n      fill=\"white\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    width?: string;\n    height?: string;\n    color?: string;\n  }>(),\n  {\n    width: \"16px\",\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n</script>\n\n<template>\n  <svg\n    viewBox=\"0 0 24 24\"\n    :width=\"props.width\"\n    :height=\"props.height ?? props.width\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    style=\"transform-origin: center\"\n  >\n    <path\n      d=\"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6z\"\n      :fill=\"props.color\"\n    ></path>\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: \"#cccccc\"\n  }\n);\n</script>\n\n<template>\n  <svg\n    viewBox=\"0 0 32 32\"\n    fill=\"none\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    style=\"transform-origin: center\"\n  >\n    <rect\n      x=\"2\"\n      y=\"15\"\n      width=\"28\"\n      height=\"2\"\n      rx=\"1\"\n      :fill=\"props.color\"\n    />\n    <rect\n      x=\"17\"\n      y=\"2\"\n      width=\"28\"\n      height=\"2\"\n      rx=\"1\"\n      transform=\"rotate(90 17 2)\"\n      :fill=\"props.color\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--xg-red\", \"#fa503c\")\n  }\n);\n</script>\n\n<template>\n  <!-- 不设置 width height , 自适应父元素 -->\n  <svg\n    viewBox=\"0 0 24 24\"\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    <path\n      d=\"M7 21q-.825 0-1.412-.587T5 19V6H4V4h5V3h6v1h5v2h-1v13q0 .825-.587 1.413T17 21zM17 6H7v13h10zM9 17h2V8H9zm4 0h2V8h-2zM7 6v13z\"\n      :fill=\"props.color\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport { extractNumber } from \"@zyzgroup/core-common\";\n\n// https://headlessui.com/v1/vue/switch\n\nconst props = withDefaults(\n  defineProps<{\n    init: boolean;\n    width?: string;\n    height?: string;\n    padding?: string;\n    colorPrimary?: string;\n    colorBgOn?: string;\n    colorBgOff?: string;\n  }>(),\n  {\n    init: false,\n    width: \"44px\",\n    height: \"26px\",\n    padding: \"3px\",\n    colorPrimary: \"#5a82f0\",\n    colorBgOn: \"#efefef\",\n    colorBgOff: \"#f5f5f5\"\n  }\n);\n\nconst widthObj = extractNumber(props.width);\nconst heightObj = extractNumber(props.height);\nconst paddingObj = extractNumber(props.padding);\nconst roundLength = heightObj.number - paddingObj.number * 2 + heightObj.suffix;\nconst roundPositionStart = props.padding;\nconst roundPositionEnd =\n  widthObj.number -\n  extractNumber(roundPositionStart).number -\n  extractNumber(roundLength).number +\n  widthObj.suffix;\nconst emits = defineEmits<{\n  (event: \"change\", value: boolean): void;\n}>();\n\nconst enabled = ref(props.init);\n\nwatch(enabled, function () {\n  emits(\"change\", enabled.value);\n});\n\nfunction click() {\n  enabled.value = !enabled.value;\n}\n</script>\n\n<template>\n  <div\n    class=\"switch\"\n    @click=\"click\"\n    :style=\"[\n      'width: ' + props.width,\n      'height: ' + props.height,\n      'background-color: ' + (enabled ? props.colorBgOn : props.colorBgOff)\n    ]\"\n  >\n    <span\n      class=\"round\"\n      :style=\"[\n        'width: ' + roundLength,\n        'height: ' + roundLength,\n        'background-color: ' +\n          (enabled\n            ? props.colorPrimary\n            : __color.set(props.colorPrimary).lighten(0.5).toString()),\n        'transform: translate(' +\n          (enabled ? roundPositionEnd : roundPositionStart) +\n          ', 0)'\n      ]\"\n    />\n  </div>\n</template>\n\n<style scoped>\n.switch {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n  flex-shrink: 0;\n  cursor: pointer;\n  border-radius: 9999px;\n  box-sizing: border-box;\n  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.round {\n  pointer-events: none;\n  display: inline-block;\n  box-sizing: border-box;\n  border-radius: 9999px;\n  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends string\">\nimport { ref, watch, onMounted } from \"vue\";\nimport { injectStyle } from \"@zyzgroup/core-web\";\nimport Icon from \"./Icon.vue\";\nimport Button from \"./Button.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Icon, Button }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    options: Array<T>;\n    initIndex?: number;\n    fontSize?: string;\n  }>(),\n  { initIndex: 0, fontSize: \"14px\" }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", index: number, value: T): void;\n}>();\n\nonMounted(() => {\n  injectStyle(`\n    :root {\n      --select-option-bg-color: #ffffff;\n      --select-option-bg-color-hover: #f5f5f5;\n    }\n  `);\n});\n\nconst open = ref(false);\n\nconst selectedIndex = ref(props.initIndex);\n\nwatch(selectedIndex, function () {\n  emits(\"change\", selectedIndex.value, props.options[selectedIndex.value]);\n});\n\nfunction click() {\n  open.value = !open.value;\n}\nfunction change(index: number) {\n  selectedIndex.value = index;\n  open.value = false;\n}\n</script>\n\n<template>\n  <div\n    class=\"select\"\n    :style=\"['font-size:' + fontSize]\"\n  >\n    <div @click=\"click\">\n      <slot\n        name=\"button\"\n        :selectedIndex=\"selectedIndex\"\n      >\n        <Button\n          icon=\"carbon:chevron-sort\"\n          iconPosition=\"right\"\n          style=\"width: 100%\"\n        >\n          {{ options[selectedIndex] }}\n        </Button>\n      </slot>\n    </div>\n\n    <div\n      v-show=\"open\"\n      class=\"options\"\n      :style=\"{ border: '1px solid #cccccc' }\"\n    >\n      <div\n        @click=\"change(index)\"\n        class=\"option\"\n        v-for=\"(option, index) in options\"\n        :key=\"index\"\n        :value=\"index\"\n        :style=\"{\n          borderTop: (index == 0 ? '0' : '1px') + ' solid #cccccc'\n        }\"\n      >\n        <div class=\"option-inner\">\n          <slot\n            :item=\"option\"\n            :index=\"index\"\n          >\n            <span>\n              {{ option }}\n            </span>\n            <Icon\n              v-if=\"index == selectedIndex\"\n              icon=\"mingcute:check-fill\"\n              class=\"icon\"\n            ></Icon>\n          </slot>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.select {\n  display: inline-block;\n  position: relative;\n}\n.options {\n  position: relative;\n  width: 100%;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n  box-sizing: border-box;\n  background-color: #ffffff;\n}\n.option {\n  cursor: pointer;\n}\n.option-inner {\n  padding: 0.5em 1em 0.5em 0.5em;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  position: relative;\n  background-color: var(--select-option-bg-color);\n}\n.option-inner:hover {\n  background-color: var(--select-option-bg-color-hover);\n}\n.icon {\n  position: absolute;\n  right: 0.5em;\n  top: 50%;\n  transform: translate(0, -50%);\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends string\">\nimport { ref, watch, onMounted, watchEffect } from \"vue\";\nimport { getCSSVar, injectStyle } from \"@zyzgroup/core-web\";\nimport SVGDown from \"../svg/SVGDown.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { SVGDown }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    options: Array<T>;\n    initIndex?: number;\n    fontSize?: string;\n    bgColor?: string;\n    hoverColor?: string;\n    selectedColor?: string;\n    fontColor?: string;\n    duration?: number;\n  }>(),\n  {\n    initIndex: 0,\n    fontSize: \"16px\",\n    bgColor: \"#ffffff\",\n    hoverColor: \"#f5f5f5\",\n    selectedColor: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\"),\n    fontColor: \"#333333\",\n    duration: 300\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", index: number, value: T): void;\n}>();\n\nonMounted(() => {\n  injectStyle(`\n    :root {\n      --select-option-bg-color: ${props.bgColor};\n      --select-option-bg-color-hover: ${props.hoverColor};\n    }\n  `);\n});\n\nconst open = ref(false);\n\nconst selectedIndex = ref(props.initIndex);\n\nwatch(selectedIndex, function () {\n  emits(\"change\", selectedIndex.value, props.options[selectedIndex.value]);\n});\n\nfunction click() {\n  open.value = !open.value;\n}\nfunction change(index: number) {\n  selectedIndex.value = index;\n  open.value = false;\n}\n\nconst rotateSvg = ref(\"rotate(-180deg)\");\nwatchEffect(() => {\n  rotateSvg.value = open.value ? \"rotate(0deg)\" : \"rotate(-90deg)\";\n});\n</script>\n\n<template>\n  <div\n    class=\"select-absolute\"\n    :style=\"{ fontSize: props.fontSize, backgroundColor: props.bgColor }\"\n  >\n    <div\n      class=\"select-absolute-button\"\n      @click=\"click\"\n    >\n      <slot\n        name=\"button\"\n        :selectedIndex=\"selectedIndex\"\n      >\n        <div class=\"button-default\">\n          <div class=\"truncate\">{{ options[selectedIndex] }}</div>\n          <SVGDown\n            class=\"icon-down\"\n            width=\"20px\"\n            :style=\"{\n              transition: `transform ${props.duration}ms ease-in-out`,\n              transform: rotateSvg\n            }\"\n          ></SVGDown>\n        </div>\n      </slot>\n    </div>\n\n    <div\n      class=\"options\"\n      :style=\"{\n        maxHeight: open ? '200px' : 0,\n        transition: `all ${props.duration}ms ease-in-out`,\n        borderTop: `${open ? 1 : 0}px solid #e6e6e6`\n      }\"\n    >\n      <div\n        @click=\"change(index)\"\n        class=\"option\"\n        v-for=\"(option, index) in options\"\n        :key=\"index\"\n        :value=\"index\"\n      >\n        <slot\n          :item=\"option\"\n          :index=\"index\"\n        >\n          <div\n            class=\"option-default\"\n            :style=\"{\n              color:\n                selectedIndex == index ? props.selectedColor : props.fontColor\n            }\"\n          >\n            {{ option }}\n          </div>\n        </slot>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.select-absolute {\n  display: block;\n  position: relative;\n  width: 100%;\n}\n.select-absolute-button {\n  overflow: hidden;\n}\n.button-default {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0 10px 0 15px;\n  height: 44px;\n  line-height: 44px;\n  /*\n  height: 32px;\n  line-height: 32px;\n  margin: 10px 15px;\n  border: 1px solid #e6e6e6;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  */\n}\n.icon-down {\n  flex: 0 0 auto;\n}\n.truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  word-wrap: normal;\n  word-break: break-all;\n}\n.options {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  transform: translateY(100%);\n  z-index: 99;\n  width: 100%;\n  box-sizing: border-box;\n  overflow-y: scroll;\n  box-sizing: border-box;\n}\n/* scroll bar start */\n.options::-webkit-scrollbar {\n  /* 隐藏默认的滚动条 */\n  -webkit-appearance: none;\n}\n.options::-webkit-scrollbar:vertical {\n  width: 2px;\n}\n/*\n.options::-webkit-scrollbar:horizontal{\n\theight: 2px;\n}\n*/\n.options::-webkit-scrollbar-track {\n  background-color: var(--select-option-bg-color);\n}\n/*\n.options::-webkit-scrollbar-track-piece {\n  width: 2px;\n}\n*/\n.options::-webkit-scrollbar-thumb {\n  /* 滚动条的其他样式定制，注意，这个一定也要定制，否则就是一个透明的滚动条 */\n  border-radius: 2px;\n  background-color: rgba(0, 0, 0, 0.3);\n}\n/* scroll bar end */\n.option {\n  cursor: pointer;\n}\n.option-default {\n  padding: 14px 15px;\n  line-height: 1;\n  background-color: var(--select-option-bg-color);\n}\n.option-default:hover {\n  background-color: var(--select-option-bg-color-hover);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref, watchEffect } from \"vue\";\nimport { tapOutSide$ } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(defineProps<{}>(), {});\n\nconst emits = defineEmits<{\n  (event: \"outSide\", e: HammerInput): void;\n}>();\n\nconst r = ref();\n\nlet s;\nwatchEffect(() => {\n  if (!r.value) {\n    return;\n  }\n  s?.unsubscribe();\n  s = tapOutSide$(r.value).subscribe((e) => {\n    emits(\"outSide\", e);\n  });\n});\n\nonUnmounted(() => {\n  s?.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    ref=\"r\"\n    class=\"tap\"\n    :style=\"{ display: 'inline-block' }\"\n  >\n    <slot></slot>\n  </div>\n</template>\n\n<style></style>\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\nimport { __color, getCSSVar } from \"@zyzgroup/core-web\";\nimport SVGDelete from \"../svg/SVGDelete.vue\";\nimport Box from \"../base/Box.vue\";\nimport Pan from \"../base/Pan.vue\";\nimport Tap from \"../base/Tap.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { SVGDelete },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    deleteColor?: string;\n    borderRadius?: string;\n    deleteWidth?: string;\n    transtionDuration?: string;\n  }>(),\n  {\n    deleteColor: getCSSVar(\"--yz-xg-red\", \"#fa503c\"),\n    borderRadius: \"4px\",\n    deleteWidth: \"44px\",\n    transtionDuration: \"150ms\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"delete\"): void;\n}>();\n\nconst isShowDelete = ref(false);\n\nconst oppositeDeleteColor = computed(() =>\n  __color.set(props.deleteColor).opposite(true).toString()\n);\n\nconst click = () => {\n  isShowDelete.value = false;\n  emits(\"delete\");\n};\n\nfunction open() {\n  isShowDelete.value = true;\n}\nfunction close() {\n  isShowDelete.value = false;\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <Box\n    class=\"slide-left-item\"\n    :style=\"{\n      overflow: 'hidden',\n      borderRadius: props.borderRadius\n    }\"\n  >\n    <Tap @out-side=\"close\">\n      <Pan\n        @left=\"open\"\n        @right=\"close\"\n      >\n        <div\n          class=\"content\"\n          :style=\"{\n            transition: 'all ease-in ' + props.transtionDuration,\n            transform: isShowDelete\n              ? 'translate(-' + props.deleteWidth + ', 0)'\n              : 'translate(0, 0)'\n          }\"\n        >\n          <slot></slot>\n        </div>\n        <div\n          class=\"delete\"\n          @click=\"click\"\n          :style=\"{\n            backgroundColor: props.deleteColor,\n            width: props.deleteWidth,\n            transition: 'all ease-in ' + props.transtionDuration,\n            transform: isShowDelete\n              ? 'translate(0, 0)'\n              : 'translate(' + props.deleteWidth + ', 0)'\n          }\"\n        >\n          <div style=\"width: 38%\">\n            <SVGDelete :color=\"oppositeDeleteColor\"></SVGDelete>\n          </div>\n        </div>\n      </Pan>\n    </Tap>\n  </Box>\n</template>\n\n<style scoped>\n.content {\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.delete {\n  position: absolute;\n  right: 0;\n  top: 0;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch, watchEffect } from \"vue\";\nimport CSSAnimation from \"../base/CSSAnimation.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { CSSAnimation }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    status?: \"wait\" | \"processing\" | \"success\" | \"error\";\n    color?: string;\n  }>(),\n  {\n    status: \"processing\"\n  }\n);\n\nconst emits = defineEmits<{\n  // (event: \"change\", value: boolean): void;\n}>();\n\nconst p = ref();\n\nwatch(\n  () => p.value,\n  () => {\n    p.value?.trigger();\n  }\n);\n\nlet color = ref(\"\");\nwatchEffect(() => {\n  switch (props.status) {\n    case \"wait\":\n      color.value = \"#d9d9d9\";\n      break;\n    case \"success\":\n      color.value = \"#52c41a\";\n      break;\n    case \"error\":\n      color.value = \"#ff4d4f\";\n      break;\n    case \"processing\":\n    default:\n      color.value = \"#1677ff\";\n      break;\n  }\n  if (props.color) {\n    color.value = props.color;\n  }\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"status\"\n    :style=\"{\n      position: 'relative',\n      display: 'inline-block',\n      width: '12px',\n      height: '12px',\n      borderRadius: '50%',\n      overflow: 'hidden'\n    }\"\n  >\n    <CSSAnimation\n      v-if=\"status === 'processing'\"\n      ref=\"p\"\n      name=\"statusProcessing\"\n      :style=\"{\n        width: '100%',\n        height: '100%',\n        borderRadius: '50%',\n        backgroundColor: color\n      }\"\n    ></CSSAnimation>\n    <div\n      :style=\"{\n        position: 'absolute',\n        top: '3px',\n        left: '3px',\n        width: '6px',\n        height: '6px',\n        borderRadius: '50%',\n        backgroundColor: color\n      }\"\n    ></div>\n  </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n    borderColor?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\n  \"color.secondaryPattern\",\n  \"color.secondaryBorderPattern\"\n]);\n\nconst color = ref();\nconst closetColor = ref();\nconst borderColor = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.secondaryPattern\"].value;\n  closetColor.value = __color.set(color.value).closet().toString();\n  borderColor.value =\n    props.borderColor || mappedState[\"color.secondaryBorderPattern\"].value;\n});\n</script>\n\n<template>\n  <!-- 不设置 width=\"150\" height=\"150\" 自适应父元素 -->\n  <!-- viewBox : x y width height , 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 150 150\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    preserveAspectRatio=\"none\"\n    fill=\"none\"\n    :style=\"{\n      display: 'block',\n      transformOrigin: 'center'\n    }\"\n  >\n    <path\n      d=\"M22.5 28.5C21.95 28.5 21.5 28.05 21.5 27.5V17.5C21.5 16.95 21.95 16.5 22.5 16.5C23.05 16.5 23.5 16.95 23.5 17.5V27.5C23.5 28.05 23.05 28.5 22.5 28.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M27.5 23.5H17.5C16.95 23.5 16.5 23.05 16.5 22.5C16.5 21.95 16.95 21.5 17.5 21.5H27.5C28.05 21.5 28.5 21.95 28.5 22.5C28.5 23.05 28.05 23.5 27.5 23.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M142.5 13.5C145.261 13.5 147.5 11.2614 147.5 8.5C147.5 5.73858 145.261 3.5 142.5 3.5C139.739 3.5 137.5 5.73858 137.5 8.5C137.5 11.2614 139.739 13.5 142.5 13.5Z\"\n      :fill=\"closetColor\"\n    />\n    <path\n      d=\"M142.5 5.5C144.155 5.5 145.5 6.845 145.5 8.5C145.5 10.155 144.155 11.5 142.5 11.5C140.845 11.5 139.5 10.155 139.5 8.5C139.5 6.845 140.845 5.5 142.5 5.5ZM142.5 3.5C139.74 3.5 137.5 5.74 137.5 8.5C137.5 11.26 139.74 13.5 142.5 13.5C145.26 13.5 147.5 11.26 147.5 8.5C147.5 5.74 145.26 3.5 142.5 3.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M70 145.5H40C39.45 145.5 39 145.05 39 144.5C39 143.95 39.45 143.5 40 143.5H70C70.55 143.5 71 143.95 71 144.5C71 145.05 70.55 145.5 70 145.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M110 145.5H80C79.45 145.5 79 145.05 79 144.5C79 143.95 79.45 143.5 80 143.5H110C110.55 143.5 111 143.95 111 144.5C111 145.05 110.55 145.5 110 145.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M75.5 145.5H74.5C73.95 145.5 73.5 145.05 73.5 144.5C73.5 143.95 73.95 143.5 74.5 143.5H75.5C76.05 143.5 76.5 143.95 76.5 144.5C76.5 145.05 76.05 145.5 75.5 145.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M46.25 138.5H1.25C0.7 138.5 0.25 138.05 0.25 137.5C0.25 136.95 0.7 136.5 1.25 136.5H46.25C46.8 136.5 47.25 136.95 47.25 137.5C47.25 138.05 46.8 138.5 46.25 138.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M121.25 138.5H56.25C55.7 138.5 55.25 138.05 55.25 137.5C55.25 136.95 55.7 136.5 56.25 136.5H121.25C121.8 136.5 122.25 136.95 122.25 137.5C122.25 138.05 121.8 138.5 121.25 138.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M51.75 138.5H50.75C50.2 138.5 49.75 138.05 49.75 137.5C49.75 136.95 50.2 136.5 50.75 136.5H51.75C52.3 136.5 52.75 136.95 52.75 137.5C52.75 138.05 52.3 138.5 51.75 138.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M148.75 138.5H131.25C130.7 138.5 130.25 138.05 130.25 137.5C130.25 136.95 130.7 136.5 131.25 136.5H148.75C149.3 136.5 149.75 136.95 149.75 137.5C149.75 138.05 149.3 138.5 148.75 138.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M126.75 138.5H125.75C125.2 138.5 124.75 138.05 124.75 137.5C124.75 136.95 125.2 136.5 125.75 136.5H126.75C127.3 136.5 127.75 136.95 127.75 137.5C127.75 138.05 127.3 138.5 126.75 138.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M75.5 122.5C105.876 122.5 130.5 97.8757 130.5 67.5C130.5 37.1243 105.876 12.5 75.5 12.5C45.1243 12.5 20.5 37.1243 20.5 67.5C20.5 97.8757 45.1243 122.5 75.5 122.5Z\"\n      :fill=\"color\"\n    />\n    <path\n      d=\"M75.5 14.5C104.725 14.5 128.5 38.275 128.5 67.5C128.5 96.725 104.725 120.5 75.5 120.5C46.275 120.5 22.5 96.725 22.5 67.5C22.5 38.275 46.275 14.5 75.5 14.5ZM75.5 12.5C45.125 12.5 20.5 37.125 20.5 67.5C20.5 97.875 45.125 122.5 75.5 122.5C105.875 122.5 130.5 97.875 130.5 67.5C130.5 37.125 105.875 12.5 75.5 12.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M75.5 100C78.2614 100 80.5 97.7614 80.5 95C80.5 92.2386 78.2614 90 75.5 90C72.7386 90 70.5 92.2386 70.5 95C70.5 97.7614 72.7386 100 75.5 100Z\"\n      :fill=\"closetColor\"\n    />\n    <path\n      d=\"M75.5 92C77.155 92 78.5 93.345 78.5 95C78.5 96.655 77.155 98 75.5 98C73.845 98 72.5 96.655 72.5 95C72.5 93.345 73.845 92 75.5 92ZM75.5 90C72.74 90 70.5 92.24 70.5 95C70.5 97.76 72.74 100 75.5 100C78.26 100 80.5 97.76 80.5 95C80.5 92.24 78.26 90 75.5 90Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M75.5 85C73.3 85 71.5 83.2 71.5 81V39C71.5 36.8 73.3 35 75.5 35C77.7 35 79.5 36.8 79.5 39V81C79.5 83.2 77.7 85 75.5 85Z\"\n      :fill=\"closetColor\"\n    />\n    <path\n      d=\"M75.5 37C76.605 37 77.5 37.895 77.5 39V81C77.5 82.105 76.605 83 75.5 83C74.395 83 73.5 82.105 73.5 81V39C73.5 37.895 74.395 37 75.5 37ZM75.5 35C73.3 35 71.5 36.8 71.5 39V81C71.5 83.2 73.3 85 75.5 85C77.7 85 79.5 83.2 79.5 81V39C79.5 36.8 77.7 35 75.5 35Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M130.5 111.5C129.95 111.5 129.5 111.05 129.5 110.5V100.5C129.5 99.95 129.95 99.5 130.5 99.5C131.05 99.5 131.5 99.95 131.5 100.5V110.5C131.5 111.05 131.05 111.5 130.5 111.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M135.5 106.5H125.5C124.95 106.5 124.5 106.05 124.5 105.5C124.5 104.95 124.95 104.5 125.5 104.5H135.5C136.05 104.5 136.5 104.95 136.5 105.5C136.5 106.05 136.05 106.5 135.5 106.5Z\"\n      :fill=\"borderColor\"\n    />\n    <path\n      d=\"M8 119C10.7614 119 13 116.761 13 114C13 111.239 10.7614 109 8 109C5.23858 109 3 111.239 3 114C3 116.761 5.23858 119 8 119Z\"\n      :fill=\"closetColor\"\n    />\n    <path\n      d=\"M8 111C9.655 111 11 112.345 11 114C11 115.655 9.655 117 8 117C6.345 117 5 115.655 5 114C5 112.345 6.345 111 8 111ZM8 109C5.24 109 3 111.24 3 114C3 116.76 5.24 119 8 119C10.76 119 13 116.76 13 114C13 111.24 10.76 109 8 109Z\"\n      :fill=\"borderColor\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport IconXgEmpty from \"../icon/IconXgEmpty.vue\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    title?: string;\n    iconWidth?: string;\n  }>(),\n  {\n    iconWidth: \"150px\"\n  }\n);\n\nconst mappedState = mapState([\"color.tertiaryFontColor\"]);\n</script>\n\n<template>\n  <div\n    :style=\"{\n      width: '100%',\n      minWidth: props.iconWidth,\n      height: '100%',\n      display: 'flex',\n      flexDirection: 'column',\n      justifyContent: 'center',\n      alignItems: 'center'\n    }\"\n  >\n    <div\n      :style=\"{\n        width: props.iconWidth\n      }\"\n    >\n      <IconXgEmpty></IconXgEmpty>\n    </div>\n    <div\n      v-if=\"props.title\"\n      :style=\"{\n        color: mappedState['color.tertiaryFontColor'].value,\n        fontSize: '16px',\n        marginTop: '12px',\n        textAlign: 'center'\n      }\"\n    >\n      {{ props.title }}\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onDeactivated, onUnmounted, ref, watch } from \"vue\";\nimport { mapState } from \"../../context/context\";\nimport { popRateXg } from \"../../globalTeleport\";\nimport RateXg from \"./RateXg.vue\";\nimport { INIT, completeRate, type StoredRate } from \"./common\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { RateXg },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    editable?: boolean;\n    init?: StoredRate;\n  }>(),\n  {}\n);\n\nconst emits = defineEmits<{\n  (event: \"rate\", v: StoredRate): void;\n}>();\n\nconst mappedState = mapState([\n  \"color.foregroundPattern\",\n  \"color.fontPattern\",\n  \"color.panelPattern\"\n]);\n\nconst editable = ref(props.editable);\nconst selected = ref(completeRate(props.init));\n\nfunction rate(v) {\n  if (!editable.value) {\n    // 不打开 pop\n    return;\n  }\n  popRateXg({\n    mode: \"all\",\n    editable: editable.value,\n    init: v,\n    onConfirm: (newSelected) => {\n      selected.value = newSelected;\n      editable.value = false;\n    },\n    onCancel: () => {\n      selected.value = {\n        ...INIT\n      };\n    }\n  });\n}\nfunction throttledClick() {\n  if (!editable.value) {\n    return;\n  }\n  // 默认值\n  selected.value = completeRate({ rate: 5 });\n  rate(selected.value);\n}\n\nfunction destroy() {}\n\nonUnmounted(() => {\n  destroy();\n});\nonDeactivated(() => {\n  destroy();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"rate-xg-panel\"\n    :style=\"{\n      backgroundColor: mappedState['color.foregroundPattern'].value,\n      color: mappedState['color.fontPattern'].value\n    }\"\n    @click=\"throttledClick\"\n  >\n    <div>\n      <div class=\"rate-xg-panel-title\">本次停车体验您满意吗？</div>\n      <div class=\"rate-xg-panel-rate\">\n        <RateXg\n          mode=\"only-status\"\n          :editable=\"editable\"\n          v-model=\"selected\"\n          @throttledClick=\"throttledClick\"\n          @rate=\"rate\"\n        ></RateXg>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.rate-xg-panel {\n  line-height: 1;\n  border-radius: 8px;\n  overflow: hidden;\n  margin: 0 var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-panel-title {\n  font-size: 16px;\n  font-weight: bold;\n  padding: var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-panel-rate {\n  padding-bottom: var(--yz-padding-horizontal, 15px);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, ref, h, nextTick, inject, useTemplateRef } from \"vue\";\nimport {\n  createCommonEmailValidator,\n  formatTime,\n  CSSAnimationNames\n} from \"@zyzgroup/core-common\";\nimport {\n  TWEEN,\n  type EasingFunction,\n  Color,\n  getCSSVar,\n  setTheme\n} from \"@zyzgroup/core-web\";\nimport {\n  getCEComponent,\n  popTel,\n  popCalendar,\n  popBottom,\n  popTop,\n  popLeft,\n  popRight,\n  popCenter,\n  popAbsolute,\n  toast,\n  loading,\n  dialog,\n  numberKeyboard,\n  popRateXg\n} from \"../globalTeleport\";\n\nconst commonEmailValidator = createCommonEmailValidator();\n\nimport Mouse from \"../components/base/Mouse.vue\";\nimport Page from \"../components/base/Page.vue\";\n\nimport PageVerticalScrollProgressBar from \"../components/progress/PageVerticalScrollProgressBar.vue\";\nimport FPSStats from \"../components/fps/FPSStats.vue\";\nimport Button from \"../components/form/Button.vue\";\nimport Accordion from \"../components/form/Accordion.vue\";\nimport Input from \"../components/form/Input.vue\";\nimport InputRange from \"../components/form/InputRange.vue\";\nimport InputRangeBox from \"../components/form/InputRangeBox.vue\";\nimport InputFileDrop from \"../components/form/InputFileDrop.vue\";\n\nimport BgGrid from \"../components/bg/grid/BgGrid.vue\";\n\nimport LayoutCenter from \"../components/layout/LayoutCenter.vue\";\nimport CardFlip from \"../components/3d/CardFlip.vue\";\nimport Cube from \"../components/3d/Cube.vue\";\n\nimport Popover from \"../components/pop/Popover.vue\";\nimport ColorPicker from \"../components/form/ColorPicker.vue\";\n\nimport PlateDisplay from \"../components/plate/PlateDisplay.vue\";\nimport PlateMobile from \"../components/plate/PlateMobile.vue\";\n\nimport { mapState, Context } from \"../context/context\";\nconst context = inject<Context>(\"context\");\nconst changeToThemeDark = () => {\n  setTheme(\"dark\");\n};\nconst changeToThemeLight = () => {\n  setTheme(\"light\");\n};\n\nimport Image from \"../components/image/Image.vue\";\nimport ImageView from \"../components/image/ImageView.vue\";\n\nconst imagesrc1 = `${import.meta.env.YZ_IMAGE_PATH}/picture.jpg`;\nconst imagesrc2 = `${import.meta.env.YZ_IMAGE_PATH}/logo.png`;\nconst imagesrc3 = `${import.meta.env.YZ_IMAGE_PATH}/ad.jpg`;\nconst imagemarilyn = `${import.meta.env.YZ_IMAGE_PATH}/marilyn.png`;\nconst imagebike = `${import.meta.env.YZ_IMAGE_PATH}/bike.png`;\n\nconst imageViewMultiRef = ref();\nfunction openImageViewMulti() {\n  imageViewMultiRef.value?.open();\n}\n\nimport HandWritePanel from \"../components/hand/HandWritePanel.vue\";\nconst handRef = ref();\nconst downloadHandWrite = () => {\n  handRef.value.download();\n};\n\nimport EaseGroupGraphDisplay from \"../components/animate/EaseGroupGraphDisplay.vue\";\nconst easeName = ref<string>(\"\");\nconst easeFunction = ref<EasingFunction>(TWEEN.Easing.Linear.None);\nfunction selectedEaseFunction(\n  selectedEaseName: string,\n  selectedEaseFunction: EasingFunction\n) {\n  easeName.value = selectedEaseName;\n  easeFunction.value = selectedEaseFunction;\n}\n\nimport InterpolationGroupGraphDisplay from \"../components/animate/InterpolationGroupGraphDisplay.vue\";\n\nimport CSSTransition from \"../components/base/CSSTransition.vue\";\nconst superRainbowRef = ref();\nconst superRainbowRef2 = ref();\nconst superRainbowEnter = () => {\n  superRainbowRef.value?.trigger();\n};\nconst superRainbowLeave = () => {\n  superRainbowRef.value?.clear();\n};\nconst superRainbowEnter2 = () => {\n  superRainbowRef2.value?.trigger();\n};\nconst superRainbowLeave2 = () => {\n  superRainbowRef2.value?.triggerReverse();\n};\nimport CSSAnimation from \"../components/base/CSSAnimation.vue\";\nconst CSSAnimationRefs = [];\nconst animationEnter = (index) => {\n  CSSAnimationRefs[index]?.trigger();\n};\nconst animationLeave = (index) => {\n  CSSAnimationRefs[index]?.triggerReverse();\n};\nimport BorderFocusText from \"../components/css/BorderFocusText.vue\";\nconst borderFocusTextRef = ref();\nimport Circle from \"../components/css/Circle.vue\";\nconst circleRef = ref();\nconst cssMouseEnter = (r) => {\n  switch (r) {\n    case \"borderFocusTextRef\":\n      borderFocusTextRef.value?.start();\n      break;\n    case \"circleRef\":\n      circleRef.value?.start();\n      break;\n  }\n};\nconst cssMouseLeave = (r) => {\n  switch (r) {\n    case \"borderFocusTextRef\":\n      borderFocusTextRef.value?.end();\n      break;\n    case \"circleRef\":\n      circleRef.value?.end();\n      break;\n  }\n};\n\nconst pageEffect = ref(CSSAnimationNames[0]);\nconst changePageEffect = (effect) => {\n  pageEffect.value = effect;\n};\nconst pageRef = ref();\nfunction openPage() {\n  pageRef.value?.open(pageEffect.value);\n}\nfunction closePage() {\n  pageRef.value?.close(pageEffect.value);\n}\n\nimport Routes, { SupportedRouteEffect } from \"../components/base/Routes.vue\";\nconst routeEffect = ref<SupportedRouteEffect>(\"moveToLeft\");\nconst changeRouteEffect = (effect: SupportedRouteEffect) => {\n  routeEffect.value = effect;\n};\nconst routesRef = ref();\nconst routeChangeStart = (\n  fromPageIndex: number,\n  toPageIndex: number,\n  totalPages: number\n) => {\n  // console.log(\n  //   `routeChangeStart: ${fromPageIndex} to ${toPageIndex}, total ${totalPages}`\n  // );\n};\nconst routeChangeEnd = (\n  fromPageIndex: number,\n  toPageIndex: number,\n  totalPages: number\n) => {\n  // console.log(\n  //   `routeChangeEnd: ${fromPageIndex} to ${toPageIndex}, total ${totalPages}`\n  // );\n};\nfunction resetPage() {\n  routesRef.value?.reset([\n    {\n      // component: PlateMobile,\n      // attributes: {}\n      component: LayoutCenter,\n      child: \"Page 0\",\n      attributes: {\n        style: {\n          backgroundColor: Color.next(0)\n        }\n      }\n    },\n    {\n      // component: PlateMobile,\n      // attributes: {}\n      component: LayoutCenter,\n      child: \"Page 1\",\n      attributes: {\n        style: {\n          backgroundColor: Color.next()\n        }\n      }\n    },\n    {\n      // component: PlateMobile,\n      // attributes: {}\n      component: LayoutCenter,\n      child: \"Page 2\",\n      attributes: {\n        style: {\n          backgroundColor: Color.next()\n        }\n      }\n    }\n  ]);\n}\nfunction pushPage() {\n  routesRef.value?.push({\n    // component: PlateMobile,\n    component: LayoutCenter,\n    child: `Page ${routesRef.value.totalPages()}`,\n    attributes: {\n      style: {\n        backgroundColor: Color.next()\n      }\n    }\n  });\n}\nfunction popPage() {\n  routesRef.value?.pop();\n}\nfunction forwardPage() {\n  routesRef.value?.forward();\n}\nfunction backPage() {\n  routesRef.value?.back();\n}\nfunction gotoPage() {\n  routesRef.value?.goto(0);\n}\n\nimport Tabs from \"../components/form/Tabs.vue\";\nconst labels = [\"label1\", \"label2\", \"label3\", \"label4\"];\nconst pages = [\n  { component: PlateMobile, attributes: { onComplete: console.log } },\n  { component: PlateMobile, attributes: { onComplete: console.log } },\n  { component: PlateMobile, attributes: { onComplete: console.log } },\n  { component: PlateMobile, attributes: { onComplete: console.log } }\n];\n\nimport Video from \"../components/video/Video.vue\";\n\n// 会被编译进源文件\n// import videosrc from \"@root/server-client/assets/videos/sintel.webm\";\n\nconst videosrc = `${import.meta.env.YZ_PUBLIC_PATH}/videos/sintel.webm`;\n\nconst videoRef = ref();\nconst playVideo = () => {\n  videoRef.value?.play();\n};\nconst pauseVideo = () => {\n  videoRef.value?.pause();\n};\n\nimport MapTianditu from \"../components/map/MapTianditu.vue\";\n\nconst popBottomSample = () => {\n  return popBottom(\n    h(\n      \"div\",\n      {\n        style: \"width: 100%;padding: 30px;background-color:#ffffff; \"\n      },\n      h(getCEComponent(\"yz-input\"), {\n        placeholder: \"请输入邮箱\",\n        validator: commonEmailValidator\n      })\n    )\n  );\n};\nconst popBottomFixedSample = () => {\n  return popBottom(\n    h(\n      \"div\",\n      {\n        style: \"width: 100%;padding: 30px;background-color:#ffffff; \"\n      },\n      h(getCEComponent(\"yz-input\"), {\n        placeholder: \"请输入邮箱\",\n        validator: commonEmailValidator\n      })\n    ),\n    {\n      fixed: 400, // 固定高度\n      contentBgColor: \"pink\"\n    }\n  );\n};\nconst popTopSample = () => {\n  return popTop(\n    h(\n      \"div\",\n      {\n        style: \"width: 100%;padding: 30px;background-color:#ffffff; \"\n      },\n      h(getCEComponent(\"yz-input\"), {\n        placeholder: \"请输入邮箱\",\n        validator: commonEmailValidator\n      })\n    )\n  );\n};\nconst popLeftSample = () => {\n  return popLeft(\n    h(\n      \"div\",\n      {\n        style: \"height: 100%;padding: 30px;background-color:#ffffff; \"\n      },\n      h(getCEComponent(\"yz-input\"), {\n        placeholder: \"请输入邮箱\",\n        validator: commonEmailValidator\n      })\n    )\n  );\n};\nconst popRightSample = () => {\n  return popRight(\n    h(\n      \"div\",\n      {\n        style: \"height: 100%;padding: 30px;background-color:#ffffff; \"\n      },\n      h(getCEComponent(\"yz-input\"), {\n        placeholder: \"请输入邮箱\",\n        validator: commonEmailValidator\n      })\n    )\n  );\n};\nconst 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};\nconst 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      left: \"50%\",\n      top: \"50%\"\n    }\n  );\n};\nconst openDialogSample = () => {\n  dialog({\n    title: \"标题\",\n    content:\n      \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    showClose: true,\n    cancelText: \"取消\",\n    confirmText: \"确认\",\n    onCancel: () => {\n      console.log(\"cancel\");\n    },\n    onConfirm: () => {\n      console.log(\"confirm\");\n    }\n  });\n};\nconst openDialogSample2 = () => {\n  dialog({\n    title: \"标题\",\n    content:\n      \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    showClose: true,\n    confirmText: \"确认\",\n    onCancel: () => {\n      console.log(\"cancel\");\n    },\n    onConfirm: () => {\n      console.log(\"confirm\");\n    }\n  });\n};\nconst dialogToastSample = () => {\n  toast({ content: \"中文十个字中文十个字\" });\n};\nconst dialogToastSample2 = () => {\n  toast({ content: \"中文十个字中文十个字\", status: \"success\" });\n};\nconst dialogToastSample3 = () => {\n  toast({ content: \"中文十个字中文十个字\", status: \"error\" });\n};\nconst dialogToastSample4 = () => {\n  toast({ content: \"中文十个字中文十个字\", status: \"info\" });\n};\nconst openDialogLoadingSample = () => {\n  const close = loading({ content: \"加载中...\" });\n  setTimeout(() => {\n    close();\n  }, 2000);\n};\nconst openDialogMiniSample = () => {\n  dialog({\n    title: \"标题\",\n    content: \"ttttttttt\",\n    cancelText: \"取消\",\n    confirmText: \"确认\",\n    mode: \"mini\",\n    onCancel: () => {\n      console.log(\"cancel\");\n    },\n    onConfirm: () => {\n      console.log(\"confirm\");\n    }\n  });\n};\nconst openDialogMiniSample2 = () => {\n  dialog({\n    title: \"标题\",\n    content: \"ttttttttt\",\n    confirmText: \"确认\",\n    mode: \"mini\",\n    onCancel: () => {\n      console.log(\"cancel\");\n    },\n    onConfirm: () => {\n      console.log(\"confirm\");\n    }\n  });\n};\nconst openDialogRedSample = () => {\n  dialog({\n    title: \"标题\",\n    content: \"redredredredredredredredredredredredredredred\",\n    cancelText: \"\",\n    confirmText: \"确认\",\n    colorPattern: \"xg-red\",\n    mode: \"icon-btns\",\n    onCancel: () => {\n      console.log(\"cancel\");\n    },\n    onConfirm: () => {\n      console.log(\"confirm\");\n    }\n  });\n};\nconst openDialogRedSample2 = () => {\n  dialog({\n    title: \"\",\n    content: \"redredredredredredredredredredredredredredred\",\n    cancelText: \"取消\",\n    confirmText: \"确认\",\n    colorPattern: \"xg-red\",\n    mode: \"btns\",\n    onCancel: () => {\n      console.log(\"cancel\");\n    },\n    onConfirm: () => {\n      console.log(\"confirm\");\n    }\n  });\n};\nconst openDialogBlueSample = () => {\n  dialog({\n    title: \"标题\",\n    content: \"blueblueblueblueblueblueblueblueblueblueblueblueblueblueblue\",\n    cancelText: \"取消\",\n    confirmText: \"确认\",\n    colorPattern: \"xg-blue\",\n    mode: \"icon-btns\",\n    onCancel: () => {\n      console.log(\"cancel\");\n    },\n    onConfirm: () => {\n      console.log(\"confirm\");\n    }\n  });\n};\nconst openDialogBlueSample2 = () => {\n  dialog({\n    title: \"标题\",\n    content: \"blueblueblueblueblueblueblueblueblueblueblueblueblueblueblue\",\n    cancelText: \"取消\",\n    confirmText: \"确认\",\n    colorPattern: \"xg-blue\",\n    mode: \"btns\",\n    onCancel: () => {\n      console.log(\"cancel\");\n    },\n    onConfirm: () => {\n      console.log(\"confirm\");\n    }\n  });\n};\nconst openNumberKeyboardSample = () => {\n  numberKeyboard({\n    min: 100.02,\n    max: 200.345,\n    onNumber: (n) => {\n      console.log(\"numberKeyboard: \" + n);\n    },\n    onError: (msg) => {\n      toast({ content: msg });\n    }\n  });\n};\nconst openPopCalendarSample = () => {\n  popCalendar({\n    title: \"选择开始日期\",\n    initDay: \"2026-03-05\",\n    startDay: \"2026-03-06\",\n    excludeDays: [\"2026-03-20\", \"2026-03-21\"],\n    selectedDays: [\n      \"2026-02-28\",\n      \"2026-03-03\",\n      \"2026-03-06\",\n      \"2026-03-23\",\n      \"2026-04-14\"\n    ],\n    onConfirm: (d) => {\n      console.log(d);\n    }\n  });\n};\n\nimport Loading1 from \"../components/loading/Loading1.vue\";\nimport Loading2 from \"../components/loading/Loading2.vue\";\nimport Loading3 from \"../components/loading/Loading3.vue\";\nimport Loading4 from \"../components/loading/Loading4.vue\";\nimport Loading5 from \"../components/loading/Loading5.vue\";\nimport Loading6 from \"../components/loading/Loading6.vue\";\nimport Loading7 from \"../components/loading/Loading7.vue\";\nimport IconLoading from \"../components/icon/IconLoading.vue\";\nimport Loading9 from \"../components/loading/Loading9.vue\";\nimport Loading10 from \"../components/loading/Loading10.vue\";\nimport Loading11 from \"../components/loading/Loading11.vue\";\n\nimport RingText from \"../components/chat/RingText.vue\";\n\nimport ClockFlipper from \"../components/clock/ClockFlipper.vue\";\nconst clockFlipper = ref();\nconst startClockFlipper = () => {\n  clockFlipper.value?.start(formatTime(new Date()));\n};\nconst pauseClockFlipper = () => {\n  clockFlipper.value?.pause();\n};\n\nimport RingIndicator from \"../components/chat/RingIndicator.vue\";\nconst percent = ref(0);\nconst resetRingIndicator = () => {\n  percent.value = 0;\n};\nconst addRingIndicator = () => {\n  percent.value += Math.random() * 30;\n};\n\nlet timestamp = ref(\"1695000491000\");\nsetTimeout(() => {\n  timestamp.value = new Date().getTime().toFixed(0);\n  // console.log(timestamp.value)\n}, 3000);\n\nimport SVGPrompt from \"../components/svg/SVGPrompt.vue\";\nimport SVGQuestion from \"../components/svg/SVGQuestion.vue\";\nimport SVGFail from \"../components/svg/SVGFail.vue\";\nimport SVGSuccess from \"../components/svg/SVGSuccess.vue\";\nimport SVGWaiting from \"../components/svg/SVGWaiting.vue\";\nimport SVGLock from \"../components/svg/SVGLock.vue\";\nimport SVGDown from \"../components/svg/SVGDown.vue\";\nimport SVGAdd from \"../components/svg/SVGAdd.vue\";\nimport SVGDelete from \"../components/svg/SVGDelete.vue\";\nconst blue = getCSSVar(\"--yz-xg-blue\", \"#5a82f0\");\nimport Icon from \"../components/form/Icon.vue\";\nconst icon = ref(\"carbon:accessibility\");\nconst color = ref(blue);\nconst count = ref(0);\nconst iconClick = () => {\n  icon.value =\n    count.value++ % 2 == 0 ? \"icon-park:add-subtract\" : \"carbon:accessibility\";\n};\n\nimport IconArrowRight from \"../components/icon/IconArrowRight.vue\";\n\nimport RadioGroup from \"../components/form/RadioGroup.vue\";\nimport CheckboxGroup from \"../components/form/CheckboxGroup.vue\";\nimport Switch from \"../components/form/Switch.vue\";\nimport Select from \"../components/form/Select.vue\";\nimport SelectAbsolute from \"../components/form/SelectAbsolute.vue\";\nimport SlideLeftItem from \"../components/form/SlideLeftItem.vue\";\nimport Status from \"../components/form/Status.vue\";\n\nimport IconStatus from \"../components/icon/IconStatus.vue\";\nimport Empty from \"../components/panel/Empty.vue\";\n\nimport Calendar from \"../components/form/Calendar.vue\";\nimport RateXg from \"../components/rate-xg/RateXg.vue\";\nimport RateXgPanel from \"../components/rate-xg/RateXgPanel.vue\";\nimport { StoredRate } from \"../components/rate-xg/common\";\nfunction openRated() {\n  popRateXg({\n    editable: false,\n    init: {\n      rate: 5,\n      options: [\"计费清晰准确\", \"服务管理到位\", \"整体体验不错\"],\n      // options: [\"计费清晰准确\", \"服务管理到位\"],\n      // options: [\"计费清晰准确\"],\n      detail: \"😈😈😈\"\n    }\n  });\n}\n\nonMounted(() => {});\n</script>\n\n<template>\n  <div>\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    <Button @throttledClick=\"changeToThemeDark\">theme:dark</Button>\n    <Button @throttledClick=\"changeToThemeLight\">theme:light</Button>\n\n    <div style=\"margin-top: 200px\">\n      <RateXgPanel :editable=\"true\"></RateXgPanel>\n    </div>\n    <div style=\"margin: 20px 0\">\n      <RateXgPanel\n        :editable=\"false\"\n        :init=\"{ rate: 4, options: ['text'], detail: 'yyyyy' }\"\n      ></RateXgPanel>\n    </div>\n    <div style=\"margin: 20px 15px\">\n      <Button @throttledClick=\"openRated\">打开已评价</Button>\n    </div>\n    <div style=\"margin: 20px 15px\">\n      <RateXg :editable=\"true\"></RateXg>\n    </div>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Form Widgets - Button</template>\n      <template #content>\n        <div>\n          <Button colorPattern=\"xg-blue\">colorPattern:blue</Button>\n          <Button\n            colorPattern=\"xg-blue\"\n            :disabled=\"true\"\n          >\n            disabled\n          </Button>\n          <Button\n            colorPattern=\"xg-blue\"\n            mode=\"normal\"\n          >\n            normal\n          </Button>\n          <Button\n            colorPattern=\"xg-blue\"\n            mode=\"normal\"\n            :disabled=\"true\"\n          >\n            disabled\n          </Button>\n          <Button\n            colorPattern=\"xg-blue\"\n            mode=\"gradient\"\n          >\n            gradient\n          </Button>\n          <Button\n            colorPattern=\"xg-blue\"\n            mode=\"gradient\"\n            :disabled=\"true\"\n          >\n            gradient-disabled\n          </Button>\n          <Button\n            colorPattern=\"xg-blue\"\n            mode=\"secondary\"\n          >\n            secondary\n          </Button>\n          <br />\n          <Button colorPattern=\"xg-red\">colorPattern:red</Button>\n          <Button\n            colorPattern=\"xg-red\"\n            :disabled=\"true\"\n          >\n            disabled\n          </Button>\n          <Button\n            colorPattern=\"xg-red\"\n            mode=\"normal\"\n          >\n            normal\n          </Button>\n          <Button\n            colorPattern=\"xg-red\"\n            mode=\"normal\"\n            :disabled=\"true\"\n          >\n            disabled\n          </Button>\n          <Button\n            colorPattern=\"xg-red\"\n            mode=\"gradient\"\n          >\n            gradient\n          </Button>\n          <Button\n            colorPattern=\"xg-red\"\n            mode=\"gradient\"\n            :disabled=\"true\"\n          >\n            gradient-disabled\n          </Button>\n          <br />\n          <Button colorPattern=\"xg-green\">colorPattern:green</Button>\n          <Button\n            colorPattern=\"xg-green\"\n            mode=\"outline\"\n          >\n            outline\n          </Button>\n          <Button\n            colorPattern=\"xg-green\"\n            mode=\"outline\"\n            :disabled=\"true\"\n          >\n            disabled\n          </Button>\n          <br />\n          <Button colorPattern=\"ks-green\">colorPattern:ks-green</Button>\n          <Button\n            colorPattern=\"ks-green\"\n            :disabled=\"true\"\n          >\n            disabled\n          </Button>\n          <Button\n            colorPattern=\"ks-green\"\n            mode=\"secondary\"\n          >\n            secondary\n          </Button>\n          <br />\n          <Button colorPattern=\"yz-green\">colorPattern:yz-green</Button>\n          <Button\n            colorPattern=\"yz-green\"\n            :disabled=\"true\"\n          >\n            disabled\n          </Button>\n          <Button\n            colorPattern=\"yz-green\"\n            mode=\"secondary\"\n          >\n            secondary\n          </Button>\n          <br />\n          <Button mode=\"transparent\">transparent</Button>\n          <Button mode=\"normal-transparent\">normal-transparent</Button>\n          <Button\n            mode=\"transparent\"\n            :disabled=\"true\"\n          >\n            disabled\n          </Button>\n          <Button mode=\"empty\">empty</Button>\n          <br />\n          <Button mode=\"outline\">outline</Button>\n          <Button\n            mode=\"outline\"\n            :disabled=\"true\"\n          >\n            disabled\n          </Button>\n          <Button\n            mode=\"outline\"\n            :capsule=\"true\"\n          >\n            outline\n          </Button>\n          <Button\n            mode=\"outline\"\n            :disabled=\"true\"\n            :capsule=\"true\"\n          >\n            disabled\n          </Button>\n          <br />\n          <Button width=\"100%\">100%</Button>\n          <br />\n          <Button\n            :icon=\"icon\"\n            @throttledClick=\"iconClick\"\n          >\n            icon\n          </Button>\n          <Button\n            size=\"secondary\"\n            :icon=\"icon\"\n            @throttledClick=\"iconClick\"\n          >\n            small\n          </Button>\n          <br />\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Dialog</template>\n      <template #content>\n        <div>\n          <Button @click=\"openDialogSample\">dialog</Button>\n          <Button @click=\"openDialogSample2\">dialog-2</Button>\n          <Button @click=\"openDialogMiniSample\">dialog-mini</Button>\n          <Button @click=\"openDialogMiniSample2\">dialog-mini-2</Button>\n          <Button @click=\"openDialogLoadingSample\">dialog-loading</Button>\n          <Button @click=\"dialogToastSample\">dialog-toast</Button>\n          <Button @click=\"dialogToastSample2\">dialog-toast-success</Button>\n          <Button @click=\"dialogToastSample3\">dialog-toast-error</Button>\n          <Button @click=\"dialogToastSample4\">dialog-toast-info</Button>\n          <Button @click=\"openDialogRedSample\">dialog-icon-btns-red</Button>\n          <Button @click=\"openDialogBlueSample\">dialog-icon-btns-blue</Button>\n          <Button @click=\"openDialogRedSample2\">dialog-btns-red</Button>\n          <Button @click=\"openDialogBlueSample2\">dialog-btns-blue</Button>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Form Widgets - RadioGroup</template>\n      <template #content>\n        <div>\n          <RadioGroup\n            mode=\"primary-round\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndex=\"2\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></RadioGroup>\n        </div>\n        <div>\n          <RadioGroup\n            mode=\"primary-rect\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndex=\"2\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></RadioGroup>\n        </div>\n        <div>\n          <RadioGroup\n            mode=\"transparent-round\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndex=\"2\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></RadioGroup>\n        </div>\n        <div>\n          <RadioGroup\n            mode=\"transparent-rect\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndex=\"2\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></RadioGroup>\n        </div>\n        <div>\n          <RadioGroup\n            mode=\"double-round\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndex=\"2\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></RadioGroup>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Form Widgets - CheckboxGroup</template>\n      <template #content>\n        <div>\n          <CheckboxGroup\n            mode=\"primary-round\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndexs=\"[1, 2]\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></CheckboxGroup>\n        </div>\n        <div>\n          <CheckboxGroup\n            mode=\"primary-rect\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndexs=\"[1, 2]\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></CheckboxGroup>\n        </div>\n        <div>\n          <CheckboxGroup\n            mode=\"transparent-round\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndexs=\"[1, 2]\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></CheckboxGroup>\n        </div>\n        <div>\n          <CheckboxGroup\n            mode=\"transparent-rect\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndexs=\"[1, 2]\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></CheckboxGroup>\n        </div>\n        <div>\n          <CheckboxGroup\n            mode=\"double-round\"\n            :options=\"['111', '222', '333', '444']\"\n            :initIndexs=\"[1, 2]\"\n            :disabledIndexs=\"[2, 3]\"\n            @change=\"console.log\"\n          ></CheckboxGroup>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Form Widgets - Switch</template>\n      <template #content>\n        <div>\n          <Switch\n            :init=\"true\"\n            color-bg-on=\"#ffffff\"\n            color-bg-off=\"#ffffff\"\n            @change=\"console.log\"\n          ></Switch>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Form Widgets - Select</template>\n      <template #content>\n        <div style=\"height: 300px\">\n          <Select\n            :options=\"['options1', 'options2', 'options33333333333']\"\n            :initIndex=\"2\"\n            @change=\"console.log\"\n          ></Select>\n          <div style=\"width: 200px\">\n            <SelectAbsolute\n              :options=\"[\n                'options1',\n                'options2',\n                'options33333333333',\n                'options4',\n                'options5555',\n                'options666666666666666666666666666666666666666666666666',\n                'options7',\n                'options8'\n              ]\"\n              :initIndex=\"1\"\n              @change=\"console.log\"\n            ></SelectAbsolute>\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Form Widgets - SlideLeftItem</template>\n      <template #content>\n        <div style=\"margin: 30px\">\n          <SlideLeftItem @delete=\"() => console.log('delete')\">\n            <div style=\"background-color: #ffffff\">\n              <Button>测试slide</Button>\n            </div>\n          </SlideLeftItem>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Form Widgets - Input</template>\n      <template #content>\n        <div style=\"margin-top: 20px\">\n          <Input\n            placeholder=\"请输入邮箱\"\n            :validator=\"commonEmailValidator\"\n          ></Input>\n        </div>\n        <div style=\"margin-top: 20px\">\n          <Input\n            placeholder=\"请输入邮箱\"\n            placeholderType=\"underline\"\n            :showError=\"true\"\n            :validator=\"commonEmailValidator\"\n          ></Input>\n        </div>\n        <div style=\"margin-top: 20px\">\n          <Input\n            placeholder=\"请输入邮箱\"\n            :validator=\"commonEmailValidator\"\n            defaultValue=\"489573239@qq.com\"\n            @input=\"console.log\"\n          ></Input>\n        </div>\n        <div style=\"margin-top: 20px\">\n          <Input\n            placeholder=\"请输入邮箱\"\n            placeholderType=\"jump\"\n            :validator=\"commonEmailValidator\"\n          ></Input>\n        </div>\n        <div style=\"margin-top: 20px\">\n          <Input\n            placeholder=\"请输入邮箱\"\n            placeholderType=\"jump-each\"\n            :validator=\"commonEmailValidator\"\n          ></Input>\n        </div>\n        <div style=\"width: 200px; height: 200px\">\n          <InputFileDrop @drop=\"console.log\"></InputFileDrop>\n        </div>\n        <div style=\"width: 200px; margin-top: 20px; margin-bottom: 20px\">\n          <InputRange\n            :defaultValue=\"20\"\n            :min=\"0\"\n            :max=\"200\"\n            :step=\"2\"\n          ></InputRange>\n          <InputRangeBox\n            :defaultValue=\"20\"\n            :min=\"0\"\n            :max=\"200\"\n            :step=\"2\"\n          ></InputRangeBox>\n        </div>\n\n        <div v-timestamp=\"`yyyy-mm-dd hh:ii:ss`\">1695000491000</div>\n        <div v-timestamp>{{ timestamp }}</div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Form Widgets - Calendar</template>\n      <template #content>\n        <div style=\"padding: 30px 0; font-size: 16px\">\n          <Button @click=\"openPopCalendarSample\">popCalendar</Button>\n          <div style=\"width: 300px\">\n            <div style=\"width: 300px\">\n              <!--  :endDay=\"'2026-03-07'\" -->\n              <Calendar\n                :title=\"'选择开始日期'\"\n                :initDay=\"'2026-03-05'\"\n                :startDay=\"'2026-03-06'\"\n                :excludeDays=\"['2026-03-20', '2026-03-21']\"\n                :selectedDays=\"[\n                  '2026-02-28',\n                  '2026-03-03',\n                  '2026-03-06',\n                  '2026-03-23',\n                  '2026-04-14'\n                ]\"\n                @confirm=\"console.log\"\n              ></Calendar>\n            </div>\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Form Widgets - bg</template>\n      <template #content>\n        <div style=\"padding: 30px 0; font-size: 16px\">\n          <div style=\"width: 200px; height: 200px\">\n            <BgGrid></BgGrid>\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Tabs</template>\n      <template #content>\n        <div style=\"padding: 30px 0; font-size: 16px\">\n          <div style=\"width: 100%; height: 300px\">\n            <Tabs\n              :labels=\"labels\"\n              :pages=\"pages\"\n            ></Tabs>\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Icon + SVG</template>\n      <template #content>\n        <div style=\"margin-top: 30px\">\n          <Status status=\"wait\"></Status>\n          <Status status=\"processing\"></Status>\n          <Status status=\"success\"></Status>\n          <Status status=\"error\"></Status>\n        </div>\n        <div style=\"margin: 30px; height: 300px\">\n          <icon\n            :icon=\"icon\"\n            :color=\"color\"\n            @click=\"iconClick\"\n          ></icon>\n          <div style=\"width: 24px\"><IconArrowRight></IconArrowRight></div>\n          <SVGPrompt></SVGPrompt>\n          <SVGQuestion></SVGQuestion>\n          <SVGFail></SVGFail>\n          <SVGSuccess></SVGSuccess>\n          <SVGWaiting></SVGWaiting>\n          <SVGLock></SVGLock>\n          <SVGDown></SVGDown>\n          <div style=\"display: inline-block; width: 24px; height: 24px\">\n            <SVGAdd></SVGAdd>\n          </div>\n          <div style=\"display: inline-block; width: 24px; height: 24px\">\n            <SVGDelete></SVGDelete>\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Panel - IconStatus</template>\n      <template #content>\n        <div style=\"width: 64px\">\n          <IconStatus status=\"success\"></IconStatus>\n        </div>\n        <div style=\"width: 64px\">\n          <IconStatus status=\"error\"></IconStatus>\n        </div>\n        <div style=\"width: 64px\">\n          <IconStatus status=\"info\"></IconStatus>\n        </div>\n        <div style=\"width: 64px\">\n          <IconStatus status=\"waiting\"></IconStatus>\n        </div>\n        <div style=\"width: 64px\">\n          <IconStatus\n            status=\"success\"\n            mode=\"transparent\"\n          ></IconStatus>\n        </div>\n        <div style=\"width: 64px\">\n          <IconStatus\n            status=\"error\"\n            mode=\"transparent\"\n          ></IconStatus>\n        </div>\n        <div style=\"width: 64px\">\n          <IconStatus\n            status=\"info\"\n            mode=\"transparent\"\n          ></IconStatus>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Panel - Empty</template>\n      <template #content>\n        <div style=\"width: 300px; height: 300px; border: 1px solid red\">\n          <Page><Empty title=\"其他通用提示信息\"></Empty></Page>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Plate-车牌</template>\n      <template #content>\n        <div>\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"蓝牌\"\n            display=\"leading-chinese\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U888888\"\n            plateColor=\"绿牌\"\n            display=\"leading-chinese\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"黄牌\"\n            display=\"leading-chinese\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U888888\"\n            plateColor=\"黄绿\"\n            display=\"leading-chinese\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"黑牌\"\n            display=\"leading-chinese\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"白牌\"\n            display=\"leading-chinese\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏UNKNOW\"\n            plateColor=\"未知\"\n            display=\"leading-chinese\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"无牌车\"\n            plateColor=\"b\"\n            display=\"leading-chinese\"\n          ></PlateDisplay>\n          <br />\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"蓝牌\"\n            display=\"leading-dot\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U888888\"\n            plateColor=\"绿牌\"\n            display=\"leading-dot\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"黄牌\"\n            display=\"leading-dot\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U888888\"\n            plateColor=\"黄绿\"\n            display=\"leading-dot\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"黑牌\"\n            display=\"leading-dot\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"白牌\"\n            display=\"leading-dot\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏UNKNOW\"\n            plateColor=\"未知\"\n            display=\"leading-dot\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"无牌车\"\n            plateColor=\"b\"\n            display=\"leading-dot\"\n          ></PlateDisplay>\n          <br />\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"b\"\n            display=\"leading-plaintext\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U888888\"\n            plateColor=\"g\"\n            display=\"leading-plaintext\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"y\"\n            display=\"leading-plaintext\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U888888\"\n            plateColor=\"q\"\n            display=\"leading-plaintext\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"d\"\n            display=\"leading-plaintext\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"w\"\n            display=\"leading-plaintext\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏UNKNOW\"\n            plateColor=\"未知\"\n            display=\"leading-plaintext\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"无牌车\"\n            plateColor=\"b\"\n            display=\"leading-plaintext\"\n          ></PlateDisplay>\n          <br />\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"蓝牌\"\n            display=\"bg-mockcar\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U888888\"\n            plateColor=\"绿牌\"\n            display=\"bg-mockcar\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"黄牌\"\n            display=\"bg-mockcar\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U123456\"\n            plateColor=\"黄绿\"\n            display=\"bg-mockcar\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"黑牌\"\n            display=\"bg-mockcar\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"白牌\"\n            display=\"bg-mockcar\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏UNKNOW\"\n            plateColor=\"未知\"\n            display=\"bg-mockcar\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"无牌车\"\n            plateColor=\"b\"\n            display=\"bg-mockcar\"\n          ></PlateDisplay>\n          <br />\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"蓝牌\"\n            display=\"bg-simple\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U888888\"\n            plateColor=\"绿牌\"\n            display=\"bg-simple\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"黄牌\"\n            display=\"bg-simple\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U123456\"\n            plateColor=\"黄绿\"\n            display=\"bg-simple\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"黑牌\"\n            display=\"bg-simple\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏U88888\"\n            plateColor=\"白牌\"\n            display=\"bg-simple\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"苏UNKNOW\"\n            plateColor=\"未知\"\n            display=\"bg-simple\"\n          ></PlateDisplay>\n          <br />\n          <PlateDisplay\n            plate=\"无牌车\"\n            plateColor=\"b\"\n            display=\"bg-simple\"\n          ></PlateDisplay>\n          <br />\n          <br />\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Pop</template>\n      <template #content>\n        <div>\n          <div style=\"margin-top: 30px\">\n            <Button @click=\"popBottomSample\">pop-bottom</Button>\n            <Button @click=\"popBottomFixedSample\">pop-bottom-fixed</Button>\n            <Button @click=\"popTopSample\">pop-top</Button>\n            <Button @click=\"popLeftSample\">pop-left</Button>\n            <Button @click=\"popRightSample\">pop-right</Button>\n            <Button @click=\"popCenterSample\">pop-center</Button>\n            <Button @click=\"popAbsoluteSample\">pop-absolute</Button>\n            <Button @click=\"() => popTel('400-158-8363')\">pop-tel</Button>\n            <ColorPicker @color=\"console.log\"></ColorPicker>\n          </div>\n\n          <div style=\"margin-top: 30px\">\n            <Popover>\n              <template #panel>\n                <div\n                  style=\"width: 300px; height: 200px; background-color: white\"\n                >\n                  Panel\n                </div>\n              </template>\n            </Popover>\n          </div>\n\n          <!-- <div style=\"margin-top: 30px\">\n            <icon\n              :icon=\"icon\"\n              :color=\"color\"\n              @click=\"click\"\n            ></icon>\n            <SVGPrompt></SVGPrompt>\n            <SVGQuestion></SVGQuestion>\n            <SVGFail></SVGFail>\n            <SVGSuccess></SVGSuccess>\n            <SVGWaiting></SVGWaiting>\n            <SVGLock></SVGLock>\n            <SVGDown></SVGDown>\n            <div style=\"display: inline-block; width: 24px; height: 24px\">\n              <SVGAdd></SVGAdd>\n            </div>\n            <div style=\"display: inline-block; width: 24px; height: 24px\">\n              <SVGDelete></SVGDelete>\n            </div>\n          </div> -->\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Keyboard</template>\n      <template #content>\n        <div>\n          <Button @click=\"openNumberKeyboardSample\">NumberKeyboard</Button>\n\n          <PlateMobile\n            stylePattern=\"simple\"\n            :supportWhitePlate=\"true\"\n            @complete=\"console.log\"\n          ></PlateMobile>\n          <PlateMobile\n            stylePattern=\"simple\"\n            :supportWhitePlate=\"false\"\n            @complete=\"console.log\"\n          ></PlateMobile>\n          <PlateMobile\n            stylePattern=\"dot\"\n            :supportWhitePlate=\"true\"\n            @complete=\"console.log\"\n          ></PlateMobile>\n          <PlateMobile\n            stylePattern=\"dot\"\n            :supportWhitePlate=\"false\"\n            @complete=\"console.log\"\n          ></PlateMobile>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Image + ImageView</template>\n      <template #content>\n        <div style=\"width: 100%; height: 200px\">\n          <Image\n            :src=\"imagesrc1\"\n            mode=\"aspectFill\"\n          ></Image>\n        </div>\n        <div>\n          <Button @click=\"openImageViewMulti\">open image view</Button>\n          <ImageView\n            ref=\"imageViewMultiRef\"\n            :urls=\"[imagesrc1, imagesrc2, imagesrc3, imagesrc2]\"\n          ></ImageView>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>手写板</template>\n      <template #content>\n        <div>\n          <HandWritePanel ref=\"handRef\"></HandWritePanel>\n          <Button @click=\"downloadHandWrite\">下载</Button>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>缓动函数 {{ easeName }}</template>\n      <template #content>\n        <div>\n          <EaseGroupGraphDisplay\n            @selectedEaseFunction=\"selectedEaseFunction\"\n          ></EaseGroupGraphDisplay>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>插值函数</template>\n      <template #content>\n        <div>\n          <InterpolationGroupGraphDisplay></InterpolationGroupGraphDisplay>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>CSSTransition + CSSAnimation + Effects</template>\n      <template #content>\n        <Mouse\n          @enter=\"superRainbowEnter\"\n          @leave=\"superRainbowLeave\"\n        >\n          <CSSTransition\n            ref=\"superRainbowRef\"\n            name=\"superRainbow\"\n          >\n            <div style=\"width: 100px; height: 100px\">\n              <Image :src=\"imagebike\" />\n            </div>\n          </CSSTransition>\n        </Mouse>\n        <Mouse\n          @enter=\"superRainbowEnter2\"\n          @leave=\"superRainbowLeave2\"\n        >\n          <CSSAnimation\n            ref=\"superRainbowRef2\"\n            name=\"superRainbow\"\n            style=\"background: red\"\n            :duration=\"3000\"\n          >\n            <img :src=\"imagemarilyn\" />\n          </CSSAnimation>\n        </Mouse>\n        <Mouse\n          @enter=\"() => cssMouseEnter('borderFocusTextRef')\"\n          @leave=\"() => cssMouseLeave('borderFocusTextRef')\"\n        >\n          <BorderFocusText\n            ref=\"borderFocusTextRef\"\n            :text=\"'当前时段'\"\n          >\n            <div\n              style=\"width: 200px; line-height: 50px; background-color: #ffffff\"\n            >\n              something inner\n            </div>\n          </BorderFocusText>\n        </Mouse>\n        <Mouse\n          @enter=\"() => cssMouseEnter('circleRef')\"\n          @leave=\"() => cssMouseLeave('circleRef')\"\n        >\n          <Circle ref=\"circleRef\">\n            <div\n              style=\"\n                width: 4em;\n                height: 4em;\n                line-height: 4em;\n                text-align: center;\n                background-color: pink;\n                border-radius: 100%;\n              \"\n            >\n              Circle\n            </div>\n          </Circle>\n        </Mouse>\n        <div style=\"padding-bottom: 300px\">\n          <div\n            v-for=\"(item, index) in CSSAnimationNames\"\n            :key=\"item\"\n            style=\"padding: 10px 0; border: 1px solid #cccccc\"\n          >\n            <Mouse\n              @enter=\"\n                (e) => {\n                  animationEnter(index);\n                }\n              \"\n              @leave=\"\n                (e) => {\n                  animationLeave(index);\n                }\n              \"\n            >\n              <CSSAnimation\n                :ref=\"(el) => CSSAnimationRefs.push(el)\"\n                :name=\"item\"\n              >\n                CSSAnimation {{ item }}\n              </CSSAnimation>\n            </Mouse>\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Page + Routes</template>\n      <template #content>\n        <div class=\"btns\">\n          <RadioGroup\n            :options=\"[...CSSAnimationNames]\"\n            @change=\"changePageEffect\"\n          ></RadioGroup>\n        </div>\n        <div>\n          <Button @click=\"openPage\">page: open</Button>\n          <Button @click=\"closePage\">page: close</Button>\n        </div>\n        <div\n          style=\"\n            width: 100%;\n            height: 300px;\n            border: 1px solid black;\n            background-color: #333;\n          \"\n        >\n          <Page\n            ref=\"pageRef\"\n            :name=\"pageEffect\"\n          >\n            <PlateMobile></PlateMobile>\n          </Page>\n        </div>\n        <div style=\"padding: 30px 0; font-size: 16px\">\n          <div class=\"btns\">\n            <RadioGroup\n              :options=\"[\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              ]\"\n              @change=\"changeRouteEffect\"\n            ></RadioGroup>\n          </div>\n          <div>\n            <Button @click=\"pushPage\">push</Button>\n            <Button @click=\"popPage\">pop</Button>\n            <Button @click=\"gotoPage\">goto0</Button>\n            <Button @click=\"resetPage\">reset</Button>\n            <Button @click=\"backPage\">back</Button>\n            <Button @click=\"forwardPage\">forward</Button>\n          </div>\n          <div\n            style=\"\n              width: 100%;\n              height: 200px;\n              border: 1px solid black;\n              background-color: #333;\n            \"\n          >\n            <Routes\n              ref=\"routesRef\"\n              :effect=\"routeEffect\"\n              @routeChangeStart=\"routeChangeStart\"\n              @routeChangeEnd=\"routeChangeEnd\"\n            />\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Video</template>\n      <template #content>\n        <div>\n          <div>\n            <Button @click=\"playVideo\">play</Button>\n            <Button @click=\"pauseVideo\">pause</Button>\n          </div>\n          <Video\n            ref=\"videoRef\"\n            :src=\"videosrc\"\n            :autoplay=\"false\"\n          ></Video>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>天地图</template>\n      <template #content>\n        <div style=\"height: 500px\">\n          <MapTianditu>\n            <template v-slot=\"map\">\n              <div\n                id=\"mapTiandituDiv\"\n                :style=\"{\n                  width: map.width,\n                  height: map.height\n                }\"\n              ></div>\n            </template>\n          </MapTianditu>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Layout</template>\n      <template #content>\n        <div style=\"padding: 30px 0; font-size: 16px\">\n          <div style=\"display: inline-block; width: 2rem; height: 4rem\">\n            <Page>\n              <template #header>\n                <div :style=\"{ height: '1rem', backgroundColor: '#5a82f0' }\">\n                  header\n                </div>\n              </template>\n              <template #footer>\n                <div :style=\"{ height: '1rem', backgroundColor: '#5a82f0' }\">\n                  footer\n                </div>\n              </template>\n              <div>\n                <div>main1</div>\n                <div>main2</div>\n                <div>main3</div>\n                <div>main4</div>\n                <div>main5</div>\n                <div>main6</div>\n                <div>main7</div>\n                <div>main8</div>\n                <div>main9</div>\n                <div>main10</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main</div>\n                <div>main-last</div>\n              </div>\n            </Page>\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>3D</template>\n      <template #content>\n        <div style=\"padding: 30px 0; font-size: 16px; display: flex\">\n          <div style=\"width: 100px; height: 200px\">\n            <CardFlip>\n              <template #front>\n                <div style=\"background-color: #ff0000\">front1</div>\n              </template>\n              <template #back>\n                <div style=\"background-color: #00ff00\">back1</div>\n              </template>\n            </CardFlip>\n          </div>\n          <div style=\"width: 100px; height: 200px\">\n            <CardFlip type=\"slide\">\n              <template #front>\n                <div style=\"background-color: #0000ff\">front2</div>\n              </template>\n              <template #back>\n                <div style=\"background-color: #00ff00\">back2</div>\n              </template>\n            </CardFlip>\n          </div>\n          <div>\n            <Cube></Cube>\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Loading</template>\n      <template #content>\n        <div\n          style=\"padding: 30px 0; font-size: 16px\"\n          class=\"loadings\"\n        >\n          <div>\n            <Loading1></Loading1>\n          </div>\n          <div>\n            <Loading2></Loading2>\n          </div>\n          <div>\n            <Loading3></Loading3>\n          </div>\n          <div>\n            <Loading4></Loading4>\n          </div>\n          <div>\n            <Loading5></Loading5>\n          </div>\n          <div>\n            <Loading6></Loading6>\n          </div>\n          <div>\n            <Loading7></Loading7>\n          </div>\n          <div>\n            <IconLoading></IconLoading>\n          </div>\n          <div>\n            <Loading9></Loading9>\n          </div>\n          <div>\n            <Loading10></Loading10>\n          </div>\n          <div>\n            <Loading11></Loading11>\n          </div>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>ClockFlipper</template>\n      <template #content>\n        <Button @click=\"startClockFlipper\">start</Button>\n        <Button @click=\"pauseClockFlipper\">pause</Button>\n        <div style=\"width: 460px; height: 120px\">\n          <ClockFlipper ref=\"clockFlipper\"></ClockFlipper>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Chat - RingText</template>\n      <template #content>\n        <div style=\"width: 200px; height: 200px\">\n          <RingText\n            :text=\"'开启中...'\"\n            :secondText=\"'请您耐心等待'\"\n          ></RingText>\n        </div>\n      </template>\n    </Accordion>\n\n    <Accordion style=\"margin: 30px\">\n      <template #title>Chat - RingIndicator</template>\n      <template #content>\n        <Button @click=\"resetRingIndicator\">reset</Button>\n        <Button @click=\"addRingIndicator\">random</Button>\n        <div style=\"width: 400px; height: 200px\">\n          <RingIndicator :percent=\"percent\"></RingIndicator>\n        </div>\n        <div style=\"width: 400px; height: 200px\">\n          <RingIndicator\n            :half=\"true\"\n            :percent=\"percent\"\n          ></RingIndicator>\n        </div>\n      </template>\n    </Accordion>\n  </div>\n</template>\n\n<style scoped>\n.loadings > div {\n  display: inline-block;\n  width: 100px;\n  height: 100px;\n  overflow: hidden;\n  border: 1px solid green;\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  <Page\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  </Page>\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\";\nimport Page from \"../components/base/Page.vue\";\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, watch } from \"vue\";\nimport {\n  createRouter,\n  createWebHistory,\n  createWebHashHistory, // hash 模式，不用 pushState\n  type Router,\n  type RouteRecordRaw,\n  type RouteRecordNormalized,\n  type RouteLocationNormalized,\n  type NavigationGuardNext,\n  type RouteLocationRaw,\n  RouteLocationNormalizedLoaded,\n  NavigationFailure,\n  useRoute,\n  useRouter,\n  RouterHistory\n} from \"vue-router\";\nexport {\n  RouterLink,\n  RouterView,\n  useRouter,\n  useRoute,\n  type Router\n} from \"vue-router\";\n\n// ****** for <yz-xg /> Xg.ce.vue WebComponent ******\nimport ViewDocument from \"../components/view/ViewDocument.vue\";\nimport Lot from \"../components/xg/Lot.vue\";\nimport Park from \"../components/xg/Park.vue\";\nimport Result from \"../components/xg/Result.vue\";\nimport Unlocking from \"../components/xg/Unlocking.vue\";\nimport LoginInPhone from \"../components/xg/LoginInPhone.vue\";\nimport ListDemo from \"../components/xg/ListDemo.vue\";\n\n// ****** for <App /> App.vue ******\nimport Index from \"../pages/Index.vue\";\nimport ShapeShowCase from \"../pages/ShapeShowCase.vue\";\nimport ComponentShowCase from \"../pages/ComponentShowCase.vue\";\nimport RxMarbles from \"../pages/RxMarbles.vue\";\nimport { createFromEventPattern, useFeRoute } from \"@zyzgroup/core-web\";\n\nconst feRoute = useFeRoute({ nameInState: \"current\", alreadyPushState: true });\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: \"/lot\",\n      name: \"lot\",\n      component: Lot,\n      props: (route) => ({ lottag: route.query.n || route.query.lottag })\n    },\n    {\n      path: \"/park\",\n      name: \"park\",\n      component: Park\n    },\n    {\n      path: \"/result\",\n      name: \"result\",\n      component: Result\n    },\n    {\n      path: \"/unlocking\",\n      name: \"unlocking\",\n      component: Unlocking\n    },\n    {\n      path: \"/login\",\n      name: \"login\",\n      component: LoginInPhone\n    },\n    {\n      path: \"/view-document/:title/:src\",\n      name: \"view-document\",\n      component: ViewDocument\n    },\n    {\n      path: \"/list\",\n      name: \"list\",\n      component: ListDemo\n    },\n\n    // ****** for <yz-xg /> Xg.ce.vue WebComponent ******\n    // {\n    //   path: \"/\",\n    //   name: \"xg\",\n    //   component: Lot\n    //   // redirect: \"/lot\"\n    // }\n\n    // ****** for <App /> App.vue ******\n    {\n      path: \"/\",\n      name: \"index\",\n      component: Index\n    },\n    {\n      path: \"/shape\",\n      name: \"shape\",\n      component: ShapeShowCase\n    },\n    {\n      path: \"/cs\",\n      name: \"cs\",\n      component: ComponentShowCase\n    },\n    {\n      path: \"/rx/:operator?\",\n      name: \"rx\",\n      component: RxMarbles\n    }\n  ],\n  // [\n  //   {\n  //     path: \"/\",\n  //     path: \"/demo/:demoid\",\n\n  //     name: \"home\",\n\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\n  //     meta: {},\n\n  //     params: {\n  //      title: \"收费标准\",\n  //      src: encodeURIComponent(url)\n  //     },\n  //     query: { n: 739 }\n\n  //     // error :  https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22\n  //     props: true, // 把 route.params 当作 props\n  //     props: { foo: 'bar' }, // 固定 props\n  //     props: (route) => ({ id: route.query.id }) // 自定义 props\n\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// 路由导航守卫\nrouter.beforeEach(\n  (\n    to: RouteLocationNormalized,\n    from: RouteLocationNormalized,\n    next: NavigationGuardNext\n  ) => {\n    // console.log(to, from);\n    // to 的有些对象值无法克隆，不能传给 window.history.pushState : Unexpected error when starting the router: DataCloneError: Failed to execute 'pushState' on 'History'\n    feRoute.navigate(to.fullPath, {\n      name: to.name,\n      path: to.path,\n      fullPath: to.fullPath,\n      params: to.params,\n      query: to.query\n    });\n    next();\n  }\n);\n// 路由导航守卫\nrouter.afterEach(\n  (\n    to: RouteLocationNormalized,\n    from: RouteLocationNormalizedLoaded,\n    failure?: NavigationFailure | void\n  ) => {}\n);\n\n// 监听路由变更\nexport const routeChange$ = createFromEventPattern({\n  register: (handler) => {\n    router.afterEach(\n      (\n        to: RouteLocationNormalized,\n        from: RouteLocationNormalizedLoaded,\n        failure?: NavigationFailure | void\n      ) => {\n        // console.log(\n        //   `路由从 oldPath=${from.fullPath} 变更为 newPath=${to.fullPath}`\n        // );\n        handler(\n          getCurrentRouteDetail(to),\n          getCurrentRouteDetail(from),\n          feRoute.route,\n          feRoute.history\n        );\n      }\n    );\n  },\n  share: true\n});\n\n// 监听页面显示\nexport const pageShow$ = (routeName: string) =>\n  createFromEventPattern({\n    register: (handler) => {\n      const route = useRoute();\n      watch(\n        () => route.name,\n        (newName, oldName) => {\n          // console.log(`路由从 ${oldName} 变更为 ${newName}`);\n          if (routeName == newName) {\n            handler();\n          }\n        },\n        {\n          immediate: true\n        }\n      );\n    },\n    share: false\n  });\n\n// 监听页面隐藏\nexport const pageHide$ = (routeName: string) =>\n  createFromEventPattern({\n    register: (handler) => {\n      const route = useRoute();\n      watch(\n        () => route.name,\n        (newName, oldName) => {\n          // console.log(`路由从 ${oldName} 变更为 ${newName}`);\n          if (routeName == oldName) {\n            handler();\n          }\n        },\n        {\n          immediate: true\n        }\n      );\n    },\n    share: false\n  });\n\n// <RouterView v-slot=\"{ Component, route }\"></RouterView>\n// <RouterLink to=\"/\">Home</RouterLink>\n// <RouterLink to=\"/about\">About</RouterLink>\n\n// [Vue warn]: inject() can only be used inside setup() or functional components.\n// http://localhost:5173/#/view-document/params1/params2/?test1=1\n// const route = useRoute();\n// route.params; // { params1, params2 }\n// route.query; // { test1: 1 }\n// const router: Router = useRouter();\n// router.push(\"/wc\");\n// router.go(-1);\n\nexport function getCurrentRouteDetail(route = useRouter().currentRoute.value) {\n  // 找到当前路由的配置\n  const foundRoute = getRoutes().find((r) => r.name === route.name);\n  const propsConfig = foundRoute?.props?.default;\n  let props = {};\n  if (propsConfig === true) {\n    props = route.params;\n  } else if (typeof propsConfig === \"function\") {\n    props = propsConfig(route);\n  } else if (typeof propsConfig === \"object\") {\n    props = propsConfig;\n  }\n  return {\n    ...route,\n    params: route.params,\n    query: route.query,\n    props: { ...props, ...route.params, ...route.query },\n    component: foundRoute?.components?.default\n  };\n}\n\nexport async function push(location: RouteLocationRaw) {\n  const router: Router = useRouter();\n  await router.push(location);\n}\nexport async function to(path: string) {\n  await push({ path });\n}\nexport function back() {\n  const router: Router = useRouter();\n  router.back();\n}\n\n// 所有定义的 routes\nexport function getRoutes(): RouteRecordNormalized[] {\n  const router: Router = useRouter();\n  return router.getRoutes();\n}\n\nexport function hasRoute(name: string): boolean {\n  const router: Router = useRouter();\n  return router.hasRoute(name);\n}\n\n// 动态注册路由\nexport function addRoute(route: RouteRecordRaw): () => void {\n  const router: Router = useRouter();\n  return router.addRoute(route);\n}\nexport function addSubRoute(\n  parentName: string,\n  route: RouteRecordRaw\n): () => void {\n  const router: Router = useRouter();\n  return router.addRoute(parentName, route);\n}\n// const remove = addSubRoute(\"demo\", {\n//   path: \"sub2\",\n//   name: \"sub2\",\n//   component: () => import(\"@/src/views/sub2.vue\")\n// });\n// remove();\n\n// 动态删除路由\nexport function removeRoute(name: string) {\n  const router: Router = useRouter();\n  router.removeRoute(name);\n}\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      object.data = \"about:blank\";\n    }\n    this.$el.appendChild(object);\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","<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 { ref, watchEffect } from \"vue\";\nimport { Icon } from \"@iconify/vue\";\nimport { mapState } from \"../../context/context\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    icon?: string;\n    color?: string;\n  }>(),\n  { icon: \"mdi-light:home\" }\n);\n\nconst mappedState = mapState([\"color.primaryPattern\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.primaryPattern\"].value;\n});\n</script>\n\n<template>\n  <span\n    class=\"icon\"\n    :style=\"[\n      'display: inline-flex',\n      'justify-content: center',\n      'align-items: center',\n      'cursor: pointer',\n      'font-size: 1em',\n      'color: ' + color\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  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst rectStyle = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-1\">\n    <div\n      class=\"rect1\"\n      :style=\"rectStyle\"\n    ></div>\n    <div\n      class=\"rect2\"\n      :style=\"rectStyle\"\n    ></div>\n    <div\n      class=\"rect3\"\n      :style=\"rectStyle\"\n    ></div>\n    <div\n      class=\"rect4\"\n      :style=\"rectStyle\"\n    ></div>\n    <div\n      class=\"rect5\"\n      :style=\"rectStyle\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-1 {\n  position: relative;\n  display: block;\n  overflow: hidden;\n  width: 100%;\n  height: 100%;\n  text-align: center;\n}\n\n.loading-1 > div {\n  width: 6px;\n  height: 100%;\n  margin: auto 2px;\n  display: inline-block;\n  animation: stretchdelay 1.2s infinite ease-in-out;\n}\n\n.loading-1 .rect2 {\n  animation-delay: -1.1s;\n}\n\n.loading-1 .rect3 {\n  animation-delay: -1s;\n}\n\n.loading-1 .rect4 {\n  animation-delay: -0.9s;\n}\n\n.loading-1 .rect5 {\n  animation-delay: -0.8s;\n}\n\n@keyframes stretchdelay {\n  0%,\n  40%,\n  100% {\n    transform: scaleY(0.4);\n  }\n  20% {\n    transform: scaleY(1);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst dotStyle = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-2\">\n    <div\n      class=\"dot1\"\n      :style=\"dotStyle\"\n    ></div>\n    <div\n      class=\"dot2\"\n      :style=\"dotStyle\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-2 {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 100%;\n  text-align: center;\n  animation: rotate 2s infinite linear;\n}\n\n.dot1,\n.dot2 {\n  width: 60%;\n  height: 60%;\n  display: inline-block;\n  position: absolute;\n  top: 0;\n  border-radius: 100%;\n  animation: bounce 2s infinite ease-in-out;\n}\n\n.dot2 {\n  top: auto;\n  bottom: 0px;\n  animation-delay: -1s;\n}\n\n@keyframes rotate {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes bounce {\n  0%,\n  100% {\n    transform: scale(0);\n  }\n  50% {\n    transform: scale(1);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { onMounted, onUnmounted, ref } from \"vue\";\nimport { getCSSVar, injectStyle } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    fromColor?: string;\n    toColor?: string;\n  }>(),\n  {\n    fromColor: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\"),\n    toColor: getCSSVar(\"--xg-red\")\n  }\n);\n\nconst dotStyle = { backgroundColor: props.fromColor, width: \"20%\" };\n\nconst loading3 = ref();\n\nonMounted(() => {\n  /// for ce\n  injectStyle(\n    `\n  @keyframes snake {\n    0% {\n      opacity: 0.3;\n      transform: translateY(0px);\n      box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.1);\n    }\n    50% {\n      opacity: 1;\n      transform: translateY(-10px);\n      background-color: ${props.toColor};\n      box-shadow: 0px 20px 3px rgba(0, 0, 0, 0.05);\n    }\n    100% {\n      opacity: 0.3;\n      transform: translateY(0px);\n      box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.1);\n    }\n  }\n`,\n    loading3.value\n  );\n});\n\nonUnmounted(() => {});\n</script>\n\n<template>\n  <div\n    class=\"loading-3\"\n    ref=\"loading3\"\n  >\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '0' }\"\n    ></div>\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '20%' }\"\n    ></div>\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '40%' }\"\n    ></div>\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '60%' }\"\n    ></div>\n    <div\n      class=\"dot\"\n      :style=\"{ ...dotStyle, left: '80%' }\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-3 {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: 100%;\n  text-align: center;\n  /* animation: rotate 2s infinite linear; */\n}\n\n.dot {\n  display: inline-block;\n  top: 50%;\n  transform: translateY(-50%);\n  position: absolute;\n  aspect-ratio: 1 / 1;\n  opacity: 0.5;\n  border-radius: 100%;\n  animation: snake 1s infinite ease-in-out;\n}\n\n.loading-3 div:nth-child(1) {\n  animation-delay: 0s;\n}\n.loading-3 div:nth-child(2) {\n  animation-delay: 0.2s;\n}\n.loading-3 div:nth-child(3) {\n  animation-delay: 0.4s;\n}\n.loading-3 div:nth-child(4) {\n  animation-delay: 0.6s;\n}\n.loading-3 div:nth-child(5) {\n  animation-delay: 0.8s;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst style = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-4\">\n    <div\n      class=\"rect\"\n      :style=\"style\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-4 {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  overflow: hidden;\n  perspective: 120px;\n}\n.rect {\n  width: 40%;\n  aspect-ratio: 1 / 1;\n  animation: rotateplane 1.2s infinite ease-in-out;\n}\n\n@keyframes rotateplane {\n  0% {\n    transform: perspective(120px) rotateX(0deg) rotateY(0deg);\n  }\n  50% {\n    transform: perspective(120px) rotateX(-180deg) rotateY(0deg);\n  }\n  100% {\n    transform: perspective(120px) rotateX(-180deg) rotateY(-180deg);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst cubeStyle = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-5\">\n    <div\n      class=\"cube1\"\n      :style=\"cubeStyle\"\n    ></div>\n    <div\n      class=\"cube2\"\n      :style=\"cubeStyle\"\n    ></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-5 {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n\n.cube1,\n.cube2 {\n  width: 40%;\n  aspect-ratio: 1 / 1;\n  display: inline-block;\n  position: absolute;\n  top: 10%;\n  left: 10%;\n  transform: translate(-10%, -10%);\n  animation: cubemove 1.8s infinite ease-in-out;\n  transform-origin: center;\n}\n\n.cube2 {\n  animation-delay: -0.9s;\n}\n\n@keyframes cubemove {\n  25% {\n    transform: translateX(42px) rotate(-90deg) scale(0.5);\n  }\n  50% {\n    transform: translateX(42px) translateY(42px) rotate(-179deg);\n  }\n  50.1% {\n    transform: translateX(42px) translateY(42px) rotate(-180deg);\n  }\n  75% {\n    transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);\n  }\n  100% {\n    transform: rotate(-360deg);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst style = { backgroundColor: props.color };\n</script>\n\n<template>\n  <div class=\"loading-6\">\n    <div :style=\"style\"></div>\n    <div :style=\"style\"></div>\n    <div :style=\"style\"></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-6 {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n\n.loading-6 > div {\n  border-radius: 100%;\n}\n\n.loading-6 > div:nth-child(2) {\n  animation-delay: -0.4s;\n}\n\n.loading-6 > div:nth-child(3) {\n  animation-delay: -0.2s;\n}\n\n.loading-6 > div {\n  position: absolute;\n  left: 20%;\n  top: 20%;\n  width: 60%;\n  aspect-ratio: 1 / 1;\n  opacity: 0;\n  margin: 0;\n  animation: loading-6 1s 0s linear infinite;\n}\n@keyframes loading-6 {\n  0% {\n    transform: scale(0);\n    opacity: 0;\n  }\n\n  5% {\n    opacity: 1;\n  }\n\n  100% {\n    transform: scale(1);\n    opacity: 0;\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { onMounted, onUnmounted, ref } from \"vue\";\nimport { getCSSVar, injectStyle } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst loading7 = ref();\n\nonMounted(() => {\n  /// for ce\n  injectStyle(\n    `\n  :root {\n    --loading-7-bg-color: ${props.color}\n  }\n  :host {\n    --loading-7-bg-color: ${props.color}\n  }\n  `,\n    loading7.value\n  );\n});\n\nonUnmounted(() => {});\n</script>\n\n<template>\n  <div\n    class=\"loading-7\"\n    ref=\"loading7\"\n  >\n    <div></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-7 {\n  position: relative;\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.loading-7 > div {\n  width: 50%;\n  height: 50%;\n  margin: auto;\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n}\n.loading-7 > div::before {\n  content: \"\";\n  width: 100%;\n  height: 5px;\n  box-sizing: border-box;\n  background: #000;\n  opacity: 0.1;\n  position: absolute;\n  top: calc(100% + 5px);\n  left: 0;\n  border-radius: 50%;\n  animation: shadow 0.5s linear infinite;\n}\n.loading-7 > div::after {\n  content: \"\";\n  width: 100%;\n  height: 100%;\n  animation: animate 0.5s linear infinite;\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  border-radius: 3px;\n  background-color: var(--loading-7-bg-color);\n}\n@keyframes animate {\n  17% {\n    border-bottom-right-radius: 3px;\n  }\n  25% {\n    transform: translateY(9px) rotate(22.5deg);\n  }\n  50% {\n    transform: translateY(18px) scale(1, 0.9) rotate(45deg);\n    border-bottom-right-radius: 40px;\n  }\n  75% {\n    transform: translateY(9px) rotate(67.5deg);\n  }\n  100% {\n    transform: translateY(0) rotate(90deg);\n  }\n}\n\n@keyframes shadow {\n  0%,\n  100% {\n    transform: scale(1, 1);\n  }\n  50% {\n    transform: scale(1.2, 1);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n\nconst style = {\n  borderTopColor: props.color\n};\n</script>\n\n<template>\n  <div class=\"loading-9\">\n    <div :style=\"style\"></div>\n  </div>\n</template>\n\n<style scoped>\n.loading-9 {\n  position: relative;\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n.loading-9 div {\n  width: 50%;\n  aspect-ratio: 1 / 1;\n  border: 3px solid rgba(0, 0, 0, 0.1);\n  border-radius: 50%;\n  animation: spin 1s linear infinite;\n}\n@keyframes spin {\n  to {\n    transform: rotate(360deg);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\")\n  }\n);\n</script>\n\n<template>\n  <div class=\"loading-10\">\n    <svg viewBox=\"0 0 50 50\">\n      <circle\n        class=\"ring\"\n        cx=\"25\"\n        cy=\"25\"\n        r=\"20\"\n        :style=\"['stroke: rgba(0,0,0,0.1)']\"\n      ></circle>\n      <circle\n        class=\"ball\"\n        cx=\"25\"\n        cy=\"5\"\n        r=\"3.5\"\n        :style=\"['fill: ' + props.color]\"\n      ></circle>\n    </svg>\n  </div>\n</template>\n\n<style scoped>\n.loading-10 {\n  position: relative;\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n.loading-10 svg {\n  width: 50%;\n  aspect-ratio: 1 / 1;\n  transform-origin: center;\n  animation: 1.5s spin ease infinite;\n}\n.ring {\n  fill: none;\n  stroke-width: 2;\n}\n\n.ball {\n  stroke: none;\n}\n\n@keyframes spin {\n  to {\n    transform: rotate(360deg);\n  }\n}\n</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(\"--yz-xg-blue\", \"#5a82f0\"),\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, watchEffect } from \"vue\";\nimport { ColorPattern } from \"@zyzgroup/core-web\";\nimport { context, mapState, getColors } from \"../../context/context\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {}\n});\n\nexport type BooleanBoxModePattern =\n  | \"primary-rect\"\n  | \"primary-round\"\n  | \"transparent-rect\"\n  | \"transparent-round\"\n  | \"double-round\";\n\nconst props = withDefaults(\n  defineProps<{\n    mode?: BooleanBoxModePattern;\n    colorPattern?: ColorPattern;\n    selected?: boolean;\n    disabled?: boolean;\n  }>(),\n  {\n    mode: \"primary-round\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n    selected: false,\n    disabled: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", value: boolean): void;\n}>();\n\nconst realSelected = ref(props.selected);\nconst realDisabled = ref(props.disabled);\n\nconst transparentColor = \"rgba(0,0,0,0)\";\n\nconst backgroundColor = ref(transparentColor);\nconst outlineColor = ref(transparentColor);\nconst contentColor = ref(transparentColor);\n\nfunction changeColor() {\n  const { primaryPattern, foregroundPattern, gapPattern } = getColors(\n    props.colorPattern\n  );\n\n  switch (props.mode) {\n    case \"primary-round\":\n    case \"primary-rect\":\n      backgroundColor.value = realDisabled.value\n        ? gapPattern\n        : realSelected.value\n        ? primaryPattern\n        : foregroundPattern;\n      outlineColor.value =\n        realDisabled.value || realSelected.value\n          ? transparentColor\n          : gapPattern;\n      contentColor.value = foregroundPattern;\n      break;\n    case \"transparent-round\":\n    case \"transparent-rect\":\n      backgroundColor.value = realDisabled.value\n        ? gapPattern\n        : foregroundPattern;\n      outlineColor.value = gapPattern;\n      contentColor.value =\n        realSelected.value && !realDisabled.value\n          ? primaryPattern\n          : foregroundPattern;\n      break;\n    case \"double-round\":\n      backgroundColor.value = foregroundPattern;\n      outlineColor.value =\n        realSelected.value && !realDisabled.value ? primaryPattern : gapPattern;\n      contentColor.value = realDisabled.value\n        ? gapPattern\n        : primaryPattern;\n      break;\n  }\n}\n\nconst mappedState = mapState([\"theme.theme\"]);\nlet currentTheme;\nwatchEffect(() => {\n  const nextTheme = mappedState[\"theme.theme\"].value;\n  if (currentTheme == nextTheme) {\n    return;\n  }\n  currentTheme = nextTheme;\n  changeColor();\n});\n\nwatch(\n  () => [props.mode],\n  () => {\n    changeColor();\n  },\n  { immediate: true }\n);\n\nconst click = () => {\n  if (realDisabled.value) {\n    return;\n  }\n  toggleValue();\n  emits(\"change\", realSelected.value);\n};\n\n// 被动变化\nconst toggleValue = () => {\n  realSelected.value = !realSelected.value;\n  changeColor();\n};\n\n// 被动变化\nconst forceValue = (v: boolean) => {\n  realSelected.value = v;\n  changeColor();\n};\n\ndefineExpose({ toggleValue, forceValue });\n</script>\n\n<template>\n  <div\n    class=\"boolean-box\"\n    :class=\"realDisabled ? 'disabled' : ''\"\n    @click=\"click\"\n  >\n    <slot\n      :selected=\"realSelected\"\n      :disabled=\"realDisabled\"\n    >\n      <svg\n        width=\"24\"\n        height=\"24\"\n        viewBox=\"0 0 24 24\"\n        fill=\"none\"\n        class=\"icon\"\n      >\n        <rect\n          v-if=\"\n            props.mode == 'primary-rect' || props.mode == 'transparent-rect'\n          \"\n          x=\"2\"\n          y=\"2\"\n          width=\"20\"\n          height=\"20\"\n          rx=\"4\"\n          strke-width=\"2\"\n          :stroke=\"outlineColor\"\n          :fill=\"backgroundColor\"\n        />\n        <circle\n          v-if=\"\n            props.mode == 'primary-round' || props.mode == 'transparent-round'\n          \"\n          cx=\"12\"\n          cy=\"12\"\n          r=\"10\"\n          strke-width=\"2\"\n          :stroke=\"outlineColor\"\n          :fill=\"backgroundColor\"\n        />\n        <path\n          v-if=\"\n            realSelected &&\n            (props.mode == 'primary-rect' ||\n              props.mode == 'transparent-rect' ||\n              props.mode == 'primary-round' ||\n              props.mode == 'transparent-round')\n          \"\n          fill-rule=\"evenodd\"\n          clip-rule=\"evenodd\"\n          d=\"M17.7301 8.26776C17.3702 7.91075 16.7843 7.91075 16.4198 8.26776L10.1961 14.4309C9.83621 14.7879 9.83621 15.3704 10.1961 15.7274C10.5559 16.0844 11.1419 16.0844 11.5063 15.7274L17.7301 9.56428C18.09 9.20726 18.09 8.62947 17.7301 8.26776Z\"\n          :fill=\"contentColor\"\n        />\n        <path\n          v-if=\"\n            realSelected &&\n            (props.mode == 'primary-rect' ||\n              props.mode == 'transparent-rect' ||\n              props.mode == 'primary-round' ||\n              props.mode == 'transparent-round')\n          \"\n          fill-rule=\"evenodd\"\n          clip-rule=\"evenodd\"\n          d=\"M11.5063 14.431L7.58016 10.5415C7.2203 10.1845 6.63437 10.1845 6.2699 10.5415C5.91003 10.8985 5.91003 11.481 6.2699 11.838L10.2007 15.7322C10.5606 16.0893 11.1465 16.0893 11.511 15.7322C11.8708 15.3705 11.8708 14.7927 11.5063 14.431Z\"\n          :fill=\"contentColor\"\n        />\n\n        <!-- double-round -->\n        <circle\n          v-if=\"props.mode == 'double-round'\"\n          cx=\"12\"\n          cy=\"12\"\n          r=\"9\"\n          :fill=\"backgroundColor\"\n          :stroke=\"outlineColor\"\n          stroke-width=\"2\"\n        />\n        <circle\n          v-if=\"realSelected && props.mode == 'double-round'\"\n          cx=\"12\"\n          cy=\"12\"\n          r=\"6\"\n          :fill=\"contentColor\"\n        />\n      </svg>\n    </slot>\n  </div>\n</template>\n\n<style scoped>\n.boolean-box {\n  position: relative;\n  display: inline-flex;\n  justify-content: flex-start;\n  align-items: center;\n  cursor: pointer;\n}\n.boolean-box.disabled {\n  cursor: not-allowed;\n  /* pointer-events: none; */\n}\n.boolean-box .icon {\n  flex: 0 0 auto;\n  box-sizing: border-box;\n  display: inline-flex;\n  justify-content: flex-start;\n  align-items: center;\n  transition: border-color 0.2s ease-in-out, background-color 0.2s ease-in-out;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends string\">\nimport { ref } from \"vue\";\nimport { context } from \"../../context/context\";\nimport BooleanBox, { type BooleanBoxModePattern } from \"./BooleanBox.vue\";\nimport { ColorPattern } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { BooleanBox }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    options: Array<T>;\n    disabledIndexs?: Array<number>;\n    initIndex?: number;\n\n    mode?: BooleanBoxModePattern;\n    colorPattern?: ColorPattern;\n\n    itemPadding?: string;\n    labelPadding?: string;\n  }>(),\n  {\n    initIndex: 0,\n\n    mode: \"primary-round\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n\n    itemPadding: \"10px\",\n    labelPadding: \"2px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", values: T): void;\n}>();\n\nconst booleanBoxRefs = ref<any[]>([]);\nconst setRef = (el: any, index: number) => {\n  if (el) {\n    booleanBoxRefs.value[index] = el;\n  }\n};\n\nlet selectedIndex = ref(props.initIndex);\n\nconst change = (index: number, selected: boolean) => {\n  if (selectedIndex.value !== index) {\n    booleanBoxRefs.value[selectedIndex.value].toggleValue();\n    if (selected) {\n      selectedIndex.value = index;\n      emits(\"change\", props.options[selectedIndex.value]);\n    }\n  } else {\n    if (!selected) {\n      // 强制选择\n      booleanBoxRefs.value[selectedIndex.value].forceValue(true);\n    }\n  }\n};\n</script>\n\n<template>\n  <div\n    class=\"radio-group\"\n    v-for=\"(option, index) in options\"\n    :key=\"index\"\n    :style=\"['margin-left:' + (index > 0 ? props.itemPadding : 0)]\"\n  >\n    <BooleanBox\n      :ref=\"(el) => setRef(el, index)\"\n      :mode=\"props.mode\"\n      :colorPattern=\"props.colorPattern\"\n      :selected=\"selectedIndex == index\"\n      :disabled=\"\n        disabledIndexs && disabledIndexs.findIndex((i) => i === index) >= 0\n      \"\n      @change=\"(v) => change(index, v)\"\n    ></BooleanBox>\n    <span\n      v-if=\"option\"\n      :style=\"['font-size:1em', 'margin-left:' + props.labelPadding]\"\n    >\n      {{ option }}\n    </span>\n  </div>\n</template>\n\n<style scoped>\n.radio-group {\n  position: relative;\n  display: inline-flex;\n  justify-content: flex-start;\n  align-items: center;\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends string\">\nimport { reactive } from \"vue\";\nimport { context } from \"../../context/context\";\nimport BooleanBox, { type BooleanBoxModePattern } from \"./BooleanBox.vue\";\nimport { ColorPattern } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { BooleanBox }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    options: Array<T>;\n    disabledIndexs?: Array<number>;\n    initIndexs?: Array<number>;\n\n    mode?: BooleanBoxModePattern;\n    colorPattern?: ColorPattern;\n\n    itemPadding?: string;\n    labelPadding?: string;\n  }>(),\n  {\n    mode: \"primary-round\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n\n    itemPadding: \"10px\",\n    labelPadding: \"2px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", values: T[]): void;\n}>();\n\nconst selectedIndexes = reactive(props.initIndexs ?? []);\n\nconst change = (index: number, selected: boolean) => {\n  const findIndex = selectedIndexes.findIndex((i) => i === index);\n  let isChange = false;\n  if (findIndex >= 0 && !selected) {\n    selectedIndexes.splice(findIndex, 1);\n    isChange = true;\n  } else if (findIndex < 0 && selected) {\n    selectedIndexes.push(index);\n    isChange = true;\n  }\n  if (isChange) {\n    emits(\n      \"change\",\n      selectedIndexes.map((index) => props.options[index])\n    );\n  }\n};\n</script>\n\n<template>\n  <div\n    class=\"checkbox-group\"\n    v-for=\"(option, index) in options\"\n    :key=\"index\"\n    :style=\"['margin-left:' + (index > 0 ? props.itemPadding : 0)]\"\n  >\n    <BooleanBox\n      :mode=\"props.mode\"\n      :colorPattern=\"props.colorPattern\"\n      :selected=\"selectedIndexes.findIndex((i) => i === index) >= 0\"\n      :disabled=\"\n        disabledIndexs && disabledIndexs.findIndex((i) => i === index) >= 0\n      \"\n      @change=\"(v) => change(index, v)\"\n    ></BooleanBox>\n    <span\n      v-if=\"option\"\n      :style=\"['font-size:1em', 'margin-left:' + props.labelPadding]\"\n    >\n      {{ option }}\n    </span>\n  </div>\n</template>\n\n<style scoped>\n.checkbox-group {\n  position: relative;\n  display: inline-flex;\n  justify-content: flex-start;\n  align-items: center;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport { extractNumber } from \"@zyzgroup/core-common\";\n\n// https://headlessui.com/v1/vue/switch\n\nconst props = withDefaults(\n  defineProps<{\n    init: boolean;\n    width?: string;\n    height?: string;\n    padding?: string;\n    colorPrimary?: string;\n    colorBgOn?: string;\n    colorBgOff?: string;\n  }>(),\n  {\n    init: false,\n    width: \"44px\",\n    height: \"26px\",\n    padding: \"3px\",\n    colorPrimary: \"#5a82f0\",\n    colorBgOn: \"#efefef\",\n    colorBgOff: \"#f5f5f5\"\n  }\n);\n\nconst widthObj = extractNumber(props.width);\nconst heightObj = extractNumber(props.height);\nconst paddingObj = extractNumber(props.padding);\nconst roundLength = heightObj.number - paddingObj.number * 2 + heightObj.suffix;\nconst roundPositionStart = props.padding;\nconst roundPositionEnd =\n  widthObj.number -\n  extractNumber(roundPositionStart).number -\n  extractNumber(roundLength).number +\n  widthObj.suffix;\nconst emits = defineEmits<{\n  (event: \"change\", value: boolean): void;\n}>();\n\nconst enabled = ref(props.init);\n\nwatch(enabled, function () {\n  emits(\"change\", enabled.value);\n});\n\nfunction click() {\n  enabled.value = !enabled.value;\n}\n</script>\n\n<template>\n  <div\n    class=\"switch\"\n    @click=\"click\"\n    :style=\"[\n      'width: ' + props.width,\n      'height: ' + props.height,\n      'background-color: ' + (enabled ? props.colorBgOn : props.colorBgOff)\n    ]\"\n  >\n    <span\n      class=\"round\"\n      :style=\"[\n        'width: ' + roundLength,\n        'height: ' + roundLength,\n        'background-color: ' +\n          (enabled\n            ? props.colorPrimary\n            : __color.set(props.colorPrimary).lighten(0.5).toString()),\n        'transform: translate(' +\n          (enabled ? roundPositionEnd : roundPositionStart) +\n          ', 0)'\n      ]\"\n    />\n  </div>\n</template>\n\n<style scoped>\n.switch {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n  flex-shrink: 0;\n  cursor: pointer;\n  border-radius: 9999px;\n  box-sizing: border-box;\n  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.round {\n  pointer-events: none;\n  display: inline-block;\n  box-sizing: border-box;\n  border-radius: 9999px;\n  transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends string\">\nimport { ref, watch, onMounted } from \"vue\";\nimport { injectStyle } from \"@zyzgroup/core-web\";\nimport Icon from \"./Icon.vue\";\nimport Button from \"./Button.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Icon, Button }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    options: Array<T>;\n    initIndex?: number;\n    fontSize?: string;\n  }>(),\n  { initIndex: 0, fontSize: \"14px\" }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", index: number, value: T): void;\n}>();\n\nonMounted(() => {\n  injectStyle(`\n    :root {\n      --select-option-bg-color: #ffffff;\n      --select-option-bg-color-hover: #f5f5f5;\n    }\n  `);\n});\n\nconst open = ref(false);\n\nconst selectedIndex = ref(props.initIndex);\n\nwatch(selectedIndex, function () {\n  emits(\"change\", selectedIndex.value, props.options[selectedIndex.value]);\n});\n\nfunction click() {\n  open.value = !open.value;\n}\nfunction change(index: number) {\n  selectedIndex.value = index;\n  open.value = false;\n}\n</script>\n\n<template>\n  <div\n    class=\"select\"\n    :style=\"['font-size:' + fontSize]\"\n  >\n    <div @click=\"click\">\n      <slot\n        name=\"button\"\n        :selectedIndex=\"selectedIndex\"\n      >\n        <Button\n          icon=\"carbon:chevron-sort\"\n          iconPosition=\"right\"\n          style=\"width: 100%\"\n        >\n          {{ options[selectedIndex] }}\n        </Button>\n      </slot>\n    </div>\n\n    <div\n      v-show=\"open\"\n      class=\"options\"\n      :style=\"{ border: '1px solid #cccccc' }\"\n    >\n      <div\n        @click=\"change(index)\"\n        class=\"option\"\n        v-for=\"(option, index) in options\"\n        :key=\"index\"\n        :value=\"index\"\n        :style=\"{\n          borderTop: (index == 0 ? '0' : '1px') + ' solid #cccccc'\n        }\"\n      >\n        <div class=\"option-inner\">\n          <slot\n            :item=\"option\"\n            :index=\"index\"\n          >\n            <span>\n              {{ option }}\n            </span>\n            <Icon\n              v-if=\"index == selectedIndex\"\n              icon=\"mingcute:check-fill\"\n              class=\"icon\"\n            ></Icon>\n          </slot>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.select {\n  display: inline-block;\n  position: relative;\n}\n.options {\n  position: relative;\n  width: 100%;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n  box-sizing: border-box;\n  background-color: #ffffff;\n}\n.option {\n  cursor: pointer;\n}\n.option-inner {\n  padding: 0.5em 1em 0.5em 0.5em;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  position: relative;\n  background-color: var(--select-option-bg-color);\n}\n.option-inner:hover {\n  background-color: var(--select-option-bg-color-hover);\n}\n.icon {\n  position: absolute;\n  right: 0.5em;\n  top: 50%;\n  transform: translate(0, -50%);\n}\n</style>\n","<script setup lang=\"ts\" generic=\"T extends string\">\nimport { ref, watch, onMounted, watchEffect } from \"vue\";\nimport { getCSSVar, injectStyle } from \"@zyzgroup/core-web\";\nimport SVGDown from \"../svg/SVGDown.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { SVGDown }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    options: Array<T>;\n    initIndex?: number;\n    fontSize?: string;\n    bgColor?: string;\n    hoverColor?: string;\n    selectedColor?: string;\n    fontColor?: string;\n    duration?: number;\n  }>(),\n  {\n    initIndex: 0,\n    fontSize: \"16px\",\n    bgColor: \"#ffffff\",\n    hoverColor: \"#f5f5f5\",\n    selectedColor: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\"),\n    fontColor: \"#333333\",\n    duration: 300\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", index: number, value: T): void;\n}>();\n\nonMounted(() => {\n  injectStyle(`\n    :root {\n      --select-option-bg-color: ${props.bgColor};\n      --select-option-bg-color-hover: ${props.hoverColor};\n    }\n  `);\n});\n\nconst open = ref(false);\n\nconst selectedIndex = ref(props.initIndex);\n\nwatch(selectedIndex, function () {\n  emits(\"change\", selectedIndex.value, props.options[selectedIndex.value]);\n});\n\nfunction click() {\n  open.value = !open.value;\n}\nfunction change(index: number) {\n  selectedIndex.value = index;\n  open.value = false;\n}\n\nconst rotateSvg = ref(\"rotate(-180deg)\");\nwatchEffect(() => {\n  rotateSvg.value = open.value ? \"rotate(0deg)\" : \"rotate(-90deg)\";\n});\n</script>\n\n<template>\n  <div\n    class=\"select-absolute\"\n    :style=\"{ fontSize: props.fontSize, backgroundColor: props.bgColor }\"\n  >\n    <div\n      class=\"select-absolute-button\"\n      @click=\"click\"\n    >\n      <slot\n        name=\"button\"\n        :selectedIndex=\"selectedIndex\"\n      >\n        <div class=\"button-default\">\n          <div class=\"truncate\">{{ options[selectedIndex] }}</div>\n          <SVGDown\n            class=\"icon-down\"\n            width=\"20px\"\n            :style=\"{\n              transition: `transform ${props.duration}ms ease-in-out`,\n              transform: rotateSvg\n            }\"\n          ></SVGDown>\n        </div>\n      </slot>\n    </div>\n\n    <div\n      class=\"options\"\n      :style=\"{\n        maxHeight: open ? '200px' : 0,\n        transition: `all ${props.duration}ms ease-in-out`,\n        borderTop: `${open ? 1 : 0}px solid #e6e6e6`\n      }\"\n    >\n      <div\n        @click=\"change(index)\"\n        class=\"option\"\n        v-for=\"(option, index) in options\"\n        :key=\"index\"\n        :value=\"index\"\n      >\n        <slot\n          :item=\"option\"\n          :index=\"index\"\n        >\n          <div\n            class=\"option-default\"\n            :style=\"{\n              color:\n                selectedIndex == index ? props.selectedColor : props.fontColor\n            }\"\n          >\n            {{ option }}\n          </div>\n        </slot>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.select-absolute {\n  display: block;\n  position: relative;\n  width: 100%;\n}\n.select-absolute-button {\n  overflow: hidden;\n}\n.button-default {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0 10px 0 15px;\n  height: 44px;\n  line-height: 44px;\n  /*\n  height: 32px;\n  line-height: 32px;\n  margin: 10px 15px;\n  border: 1px solid #e6e6e6;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  */\n}\n.icon-down {\n  flex: 0 0 auto;\n}\n.truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  word-wrap: normal;\n  word-break: break-all;\n}\n.options {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  transform: translateY(100%);\n  z-index: 99;\n  width: 100%;\n  box-sizing: border-box;\n  overflow-y: scroll;\n  box-sizing: border-box;\n}\n/* scroll bar start */\n.options::-webkit-scrollbar {\n  /* 隐藏默认的滚动条 */\n  -webkit-appearance: none;\n}\n.options::-webkit-scrollbar:vertical {\n  width: 2px;\n}\n/*\n.options::-webkit-scrollbar:horizontal{\n\theight: 2px;\n}\n*/\n.options::-webkit-scrollbar-track {\n  background-color: var(--select-option-bg-color);\n}\n/*\n.options::-webkit-scrollbar-track-piece {\n  width: 2px;\n}\n*/\n.options::-webkit-scrollbar-thumb {\n  /* 滚动条的其他样式定制，注意，这个一定也要定制，否则就是一个透明的滚动条 */\n  border-radius: 2px;\n  background-color: rgba(0, 0, 0, 0.3);\n}\n/* scroll bar end */\n.option {\n  cursor: pointer;\n}\n.option-default {\n  padding: 14px 15px;\n  line-height: 1;\n  background-color: var(--select-option-bg-color);\n}\n.option-default:hover {\n  background-color: var(--select-option-bg-color-hover);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\nimport { __color, getCSSVar } from \"@zyzgroup/core-web\";\nimport SVGDelete from \"../svg/SVGDelete.vue\";\nimport Box from \"../base/Box.vue\";\nimport Pan from \"../base/Pan.vue\";\nimport Tap from \"../base/Tap.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { SVGDelete },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    deleteColor?: string;\n    borderRadius?: string;\n    deleteWidth?: string;\n    transtionDuration?: string;\n  }>(),\n  {\n    deleteColor: getCSSVar(\"--yz-xg-red\", \"#fa503c\"),\n    borderRadius: \"4px\",\n    deleteWidth: \"44px\",\n    transtionDuration: \"150ms\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"delete\"): void;\n}>();\n\nconst isShowDelete = ref(false);\n\nconst oppositeDeleteColor = computed(() =>\n  __color.set(props.deleteColor).opposite(true).toString()\n);\n\nconst click = () => {\n  isShowDelete.value = false;\n  emits(\"delete\");\n};\n\nfunction open() {\n  isShowDelete.value = true;\n}\nfunction close() {\n  isShowDelete.value = false;\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <Box\n    class=\"slide-left-item\"\n    :style=\"{\n      overflow: 'hidden',\n      borderRadius: props.borderRadius\n    }\"\n  >\n    <Tap @out-side=\"close\">\n      <Pan\n        @left=\"open\"\n        @right=\"close\"\n      >\n        <div\n          class=\"content\"\n          :style=\"{\n            transition: 'all ease-in ' + props.transtionDuration,\n            transform: isShowDelete\n              ? 'translate(-' + props.deleteWidth + ', 0)'\n              : 'translate(0, 0)'\n          }\"\n        >\n          <slot></slot>\n        </div>\n        <div\n          class=\"delete\"\n          @click=\"click\"\n          :style=\"{\n            backgroundColor: props.deleteColor,\n            width: props.deleteWidth,\n            transition: 'all ease-in ' + props.transtionDuration,\n            transform: isShowDelete\n              ? 'translate(0, 0)'\n              : 'translate(' + props.deleteWidth + ', 0)'\n          }\"\n        >\n          <div style=\"width: 38%\">\n            <SVGDelete :color=\"oppositeDeleteColor\"></SVGDelete>\n          </div>\n        </div>\n      </Pan>\n    </Tap>\n  </Box>\n</template>\n\n<style scoped>\n.content {\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n.delete {\n  position: absolute;\n  right: 0;\n  top: 0;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch, watchEffect } from \"vue\";\nimport CSSAnimation from \"../base/CSSAnimation.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { CSSAnimation }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    status?: \"wait\" | \"processing\" | \"success\" | \"error\";\n    color?: string;\n  }>(),\n  {\n    status: \"processing\"\n  }\n);\n\nconst emits = defineEmits<{\n  // (event: \"change\", value: boolean): void;\n}>();\n\nconst p = ref();\n\nwatch(\n  () => p.value,\n  () => {\n    p.value?.trigger();\n  }\n);\n\nlet color = ref(\"\");\nwatchEffect(() => {\n  switch (props.status) {\n    case \"wait\":\n      color.value = \"#d9d9d9\";\n      break;\n    case \"success\":\n      color.value = \"#52c41a\";\n      break;\n    case \"error\":\n      color.value = \"#ff4d4f\";\n      break;\n    case \"processing\":\n    default:\n      color.value = \"#1677ff\";\n      break;\n  }\n  if (props.color) {\n    color.value = props.color;\n  }\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"status\"\n    :style=\"{\n      position: 'relative',\n      display: 'inline-block',\n      width: '12px',\n      height: '12px',\n      borderRadius: '50%',\n      overflow: 'hidden'\n    }\"\n  >\n    <CSSAnimation\n      v-if=\"status === 'processing'\"\n      ref=\"p\"\n      name=\"statusProcessing\"\n      :style=\"{\n        width: '100%',\n        height: '100%',\n        borderRadius: '50%',\n        backgroundColor: color\n      }\"\n    ></CSSAnimation>\n    <div\n      :style=\"{\n        position: 'absolute',\n        top: '3px',\n        left: '3px',\n        width: '6px',\n        height: '6px',\n        borderRadius: '50%',\n        backgroundColor: color\n      }\"\n    ></div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref, watch } from \"vue\";\nimport { lerpMap, maxDotNumber, stepMap } from \"@zyzgroup/core-common\";\nimport { getCSSVar, injectStyle } 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    min?: number;\n    max?: number;\n    step?: number;\n    defaultValue?: number;\n    unit?: string;\n    showValue?: boolean;\n    autofocus?: boolean;\n    color?: string;\n    barColor?: string;\n    handleSize?: number;\n    barHeight?: number;\n  }>(),\n  {\n    min: 0,\n    max: 100,\n    step: 1,\n    defaultValue: 0,\n    unit: \"\",\n    showValue: true,\n    autofocus: false,\n    color: getCSSVar(\"--yz-xg-blue\", \"#5a82f0\"),\n    barColor: \"#f5f5f5\",\n    handleSize: 20,\n    barHeight: 4\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", value: number): void;\n}>();\n\nconst getStep = stepMap(props.min, props.max, props.step);\nconst getPercent = lerpMap(props.min, props.max, 0, 100);\n\nconst value = ref(getStep(props.defaultValue));\nconst percent = ref(maxDotNumber(getPercent(value.value), 2));\n\nfunction change(e: Event) {\n  value.value = getStep(parseFloat((e.target as HTMLInputElement).value));\n  percent.value = maxDotNumber(getPercent(value.value), 2);\n  emits(\"change\", value.value);\n}\n\nconst r = ref();\nwatch(r, () => {\n  if (!r.value) {\n    return;\n  }\n  /// for ce\n  injectStyle(\n    `\n  :root {\n    --input-range-color: ${props.color};\n    --input-range-thumb-size: ${props.handleSize}px;\n    --input-range-thumb-top: ${(props.handleSize - props.barHeight) * -0.5}px;\n    --input-range-track-size: ${props.barHeight}px;\n  }\n  :host {\n    --input-range-color: ${props.color};\n    --input-range-thumb-size: ${props.handleSize}px;\n    --input-range-thumb-top: ${(props.handleSize - props.barHeight) * -0.5}px;\n    --input-range-track-size: ${props.barHeight}px;\n  }\n`,\n    r.value\n  );\n});\n\nonUnmounted(() => {});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"input-range\"\n    ref=\"r\"\n    :style=\"{ height: props.handleSize + 'px' }\"\n  >\n    <input\n      type=\"range\"\n      :max=\"props.max\"\n      :min=\"props.min\"\n      :step=\"props.step\"\n      :value=\"value\"\n      :autofocus=\"props.autofocus\"\n      @input=\"change\"\n      :style=\"{\n        background: `linear-gradient(to right, ${props.color} 0%, ${props.color} ${percent}%, ${props.barColor} ${percent}%, ${props.barColor})`\n      }\"\n    />\n    <!-- <slot :value=\"value\">\n      <label\n        class=\"label\"\n        v-if=\"showValue\"\n      >\n        {{ value }}{{ props.unit }}\n      </label>\n    </slot> -->\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n-->\n<style scoped>\n.input-range {\n  position: relative;\n  box-sizing: border-box;\n  font-size: 1em;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%;\n  overflow: hidden;\n}\n.label {\n  min-width: 3em;\n  text-align: right;\n}\ninput[type=\"range\"] {\n  flex: 1 1 auto;\n  -webkit-appearance: none;\n  appearance: none;\n  border-radius: 9999px;\n  margin: 0;\n  padding: 0;\n  position: relative;\n}\ninput[type=\"range\"]:focus {\n  outline: none;\n}\n/*\ninput[type=\"range\"]::-webkit-slider-container {\n  overflow: hidden;\n}\n*/\ninput[type=\"range\"]::-webkit-slider-runnable-track {\n  height: var(--input-range-track-size);\n  border-radius: 9999px;\n}\ninput[type=\"range\"]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  appearance: none;\n  height: var(--input-range-thumb-size);\n  width: var(--input-range-thumb-size);\n  margin-top: var(--input-range-thumb-top);\n  background: var(--input-range-color);\n  border-radius: 50%;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref, watch } from \"vue\";\nimport { lerpMap, maxDotNumber, stepMap } from \"@zyzgroup/core-common\";\nimport {\n  __color,\n  injectStyle,\n  usePointerDownMovePoint$\n} from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    min?: number;\n    max?: number;\n    step?: number;\n    defaultValue?: number;\n    unit?: string;\n    showValue?: boolean;\n    bgColor?: string;\n    barColor?: string;\n    barHeight?: number;\n  }>(),\n  {\n    min: 0,\n    max: 100,\n    step: 1,\n    defaultValue: 0,\n    unit: \"\",\n    showValue: false,\n    bgColor: \"#2d2d2d\",\n    barColor: \"#2FA1D6\",\n    barHeight: 20\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"change\", value: number): void;\n}>();\n\nconst getStep = stepMap(props.min, props.max, props.step);\nconst getPercent = lerpMap(props.min, props.max, 0, 100);\n\nconst value = ref(getStep(props.defaultValue));\nconst percent = ref(maxDotNumber(getPercent(value.value), 2));\n\nlet mouseSubscription: any;\n\nfunction mount(box) {\n  const lerp = lerpMap(0, box.rect.width, props.min, props.max);\n  const change = (clientX: number) => {\n    value.value = getStep(lerp(clientX));\n    percent.value = maxDotNumber(getPercent(value.value), 2);\n    emits(\"change\", value.value);\n  };\n  mouseSubscription = usePointerDownMovePoint$(box.el, {\n    start: (e, mpg) => {\n      // document.activeElement.blur();\n      // e.preventDefault();\n      change(mpg.current.x);\n    }\n  }).subscribe((mpg) => {\n    change(mpg.current.x);\n  });\n}\n\nconst r = ref();\nwatch(r, () => {\n  if (!r.value) {\n    return;\n  }\n  /// for ce\n  injectStyle(\n    `\n  :root {\n    --input-range-box-background-hover-color: ${__color\n      .set(props.bgColor)\n      .lighten(0.05)\n      .toString()};\n    --input-range-box-foreground-hover-color: ${__color\n      .set(props.barColor)\n      .lighten(0.05)\n      .toString()};\n  }\n  :host {\n    --input-range-box-background-hover-color: ${__color\n      .set(props.bgColor)\n      .lighten(0.05)\n      .toString()};\n    --input-range-box-foreground-hover-color: ${__color\n      .set(props.barColor)\n      .lighten(0.05)\n      .toString()};\n  }\n  `,\n    r.value\n  );\n});\n\nonUnmounted(() => {\n  mouseSubscription?.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"input-range-box\"\n    ref=\"r\"\n  >\n    <div\n      class=\"box\"\n      :style=\"{ height: props.barHeight + 'px', cursor: 'ew-resize' }\"\n    >\n      <Box\n        display=\"full\"\n        @mount=\"mount\"\n      >\n        <div\n          class=\"background\"\n          :style=\"{\n            backgroundColor: props.bgColor,\n            width: '100%',\n            height: '100%'\n          }\"\n        ></div>\n        <div\n          class=\"foreground\"\n          :style=\"{\n            backgroundColor: props.barColor,\n            width: percent + '%',\n            height: '100%'\n          }\"\n        ></div>\n      </Box>\n    </div>\n    <slot :value=\"value\">\n      <label\n        class=\"label\"\n        v-if=\"showValue\"\n      >\n        {{ value }}{{ props.unit }}\n      </label>\n    </slot>\n  </div>\n</template>\n\n<style scoped>\n.input-range-box {\n  position: relative;\n  box-sizing: border-box;\n  font-size: 1em;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%;\n  overflow: hidden;\n}\n.label {\n  min-width: 3em;\n  text-align: right;\n}\n.box {\n  flex: 1 1 auto;\n  position: relative;\n}\n.foreground {\n  position: absolute;\n  left: 0;\n  top: 0;\n}\n.box:hover .background {\n  background-color: var(--input-range-box-background-hover-color) !important;\n}\n.box:hover .foreground {\n  background-color: var(--input-range-box-foreground-hover-color) !important;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { watch, ref } from \"vue\";\nimport Routes, { RoutePage } from \"../base/Routes.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    labels: string[];\n    pages: RoutePage[];\n    initIndex?: number;\n  }>(),\n  {\n    initIndex: 0\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"changedIndex\", index: number): void;\n}>();\n\nconst selectedIndex = ref(props.initIndex);\n\nconst headerRef = ref<HTMLElement>();\n\nconst headerTabRefs = ref<Array<any>>([]);\nconst setHeaderTabRefs = (el: any, index: number) => {\n  if (el) {\n    headerTabRefs.value.push({\n      index,\n      el\n    });\n  }\n};\n\nwatch([headerRef, headerTabRefs], () => {\n  computeIndicatorLocation();\n});\n\nconst indicatorX = ref<number>(0);\nconst indicatorY = ref<number>(0);\nconst indicatorWidth = ref<number>(0);\nfunction computeIndicatorLocation() {\n  if (headerRef.value && headerTabRefs.value.length) {\n    const parentRect = headerRef.value.getBoundingClientRect();\n    const destRect =\n      headerTabRefs.value[selectedIndex.value].el.getBoundingClientRect();\n    indicatorX.value = destRect.x - parentRect.x;\n    indicatorY.value = destRect.y - parentRect.y + destRect.height - 2;\n    indicatorWidth.value = destRect.width;\n  }\n}\n\nconst routesRef = ref();\nlet isSettled = false;\nwatch(routesRef, () => {\n  if (!routesRef.value || isSettled) {\n    return;\n  }\n  isSettled = true;\n  routesRef.value.reset(props.pages, () => {\n    changeTab(props.initIndex);\n  });\n});\n\nfunction changeTab(index: number) {\n  selectedIndex.value = index;\n  emits(\"changedIndex\", index);\n  computeIndicatorLocation();\n  routesRef.value?.goto(index);\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <div class=\"tabs\">\n    <div\n      class=\"header\"\n      ref=\"headerRef\"\n    >\n      <div\n        v-for=\"(label, index) in props.labels\"\n        :key=\"label\"\n        :class=\"index == selectedIndex ? 'active' : ''\"\n        @click=\"changeTab(index)\"\n      >\n        <div :ref=\"(el) => setHeaderTabRefs(el, index)\">\n          {{ label }}\n        </div>\n      </div>\n      <div\n        class=\"indicator\"\n        :style=\"{\n          top: indicatorY + 'px',\n          left: indicatorX + 'px',\n          width: indicatorWidth + 'px',\n          height: '2px'\n        }\"\n      ></div>\n    </div>\n    <div class=\"content\">\n      <Routes ref=\"routesRef\" />\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.tabs {\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  height: 100%;\n}\n.content {\n  flex: 1 1 auto;\n}\n.header {\n  flex: 0 0 auto;\n  position: relative;\n  display: flex;\n  font-size: 14px;\n  line-height: 1;\n  color: #999999;\n  box-sizing: border-box;\n}\n.header .active {\n  color: #5a82f0;\n}\n.header > div {\n  flex: 1 1 auto;\n  cursor: pointer;\n  text-align: center;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  font-weight: bold;\n  background-color: #ffffff;\n  position: relative;\n  box-sizing: border-box;\n}\n.header > div > div {\n  box-sizing: border-box;\n  padding: 10px 0;\n}\n.header > div.indicator {\n  display: inline-block;\n  flex: 0;\n  position: absolute;\n  background-color: #5a82f0;\n  transition: all ease-out 200ms;\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  emits(\"complete\", barPercent.value);\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, onMounted, inject } from \"vue\";\nimport {\n  useScroll$,\n  getVerticalScrollTopPercentInPage,\n  Context\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    showText?: boolean;\n  }>(),\n  {\n    bgColor: \"#efefef\",\n    progressColor: \"#07B56D\",\n    borderColor: \"transparent\",\n    borderRadius: \"4px\",\n    showText: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"progress\", percent: number): void;\n}>();\n\nconst bar = ref();\n\nfunction set() {\n  const percent = getVerticalScrollTopPercentInPage();\n  emits(\"progress\", percent);\n  bar.value?.goto(percent);\n}\n\nconst subscription = useScroll$().subscribe((e) => {\n  set();\n});\n\n// ce 中 编译-运行 失败\n// const context = inject<Context>(\"context\");\n// context.eb.on(\"globalResize\", () => {\n//   set();\n// });\n\nonMounted(() => {\n  set();\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      :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=\"ts\">\nimport { onUnmounted, ref, watch } from \"vue\";\nimport { Timeline, DOMVideo } from \"@zyzgroup/core-web\";\nimport ProgressBar from \"../progress/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    src: string;\n    type?: string;\n    autoplay?: boolean;\n    width?: string;\n    height?: string;\n  }>(),\n  {\n    type: \"video/webm\",\n    autoplay: true,\n    width: \"320px\",\n    height: \"138px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"start\"): void;\n  (event: \"complete\"): void;\n}>();\n\nlet tl: Timeline | null;\n\nfunction onPlay(this: any, _e: Event) {\n  if (tl) {\n    tl.resume();\n    return;\n  }\n  // if (video.value.readyState === video.value.HAVE_ENOUGH_DATA) {\n  tl = new Timeline({\n    frameDuration: this.duration * 1000 // e.target.duration\n  });\n  tl.addTween(\n    { x: 0 },\n    { x: 100 },\n    {\n      frames: 1,\n      delay: 0,\n      onStart: () => {\n        emits(\"start\");\n        bar.value?.goto(0);\n      },\n      onUpdate: (obj) => {\n        // console.log(obj, e.target.duration, e.target.currentTime);\n        bar.value?.goto(obj.x);\n      },\n      onComplete: () => {\n        emits(\"complete\");\n        tl = null;\n      }\n    }\n  );\n  tl.play();\n}\n\n// function onPause(this: any, _e: Event) {\n//   console.log(\"onPause\");\n//   tl?.pause(); /// tl.pause() 比 tl.onComplete() 早执行\n// }\n\nconst video = ref();\nconst bar = ref();\n\nwatch(video, () => {\n  if (!video.value) {\n    return;\n  }\n  video.value.addEventListener(\"play\", onPlay);\n  // video.value.addEventListener(\"pause\", onPause);\n  if (props.autoplay) {\n    DOMVideo.tryAutoPlayOrAutoPlayAfterClick(video.value);\n  }\n});\n\nonUnmounted(() => {\n  video.value?.removeEventListener(onPlay);\n  // video.value?.removeEventListener(onPause);\n});\n\nfunction play() {\n  video.value?.play();\n}\n\nfunction pause() {\n  video.value?.pause();\n  tl?.pause();\n}\n\ndefineExpose({ play, pause });\n</script>\n\n<template>\n  <div\n    class=\"video\"\n    :style=\"{ width: props.width, height: props.height }\"\n    @click=\"play\"\n  >\n    <video\n      ref=\"video\"\n      :width=\"props.width\"\n      :height=\"props.height\"\n      preload=\"metadata\"\n    >\n      <source\n        :src=\"props.src\"\n        :type=\"props.type\"\n      />\n    </video>\n    <div class=\"video-progress-bar\">\n      <ProgressBar\n        ref=\"bar\"\n        bgColor=\"#ffffff\"\n      ></ProgressBar>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.video {\n  position: relative;\n  overflow: hidden;\n  background-color: #f5f5f5;\n}\n.video-progress-bar {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 6px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport {\n  useLoadImage,\n  Timeline,\n  ImageDisplayMode,\n  computeImageDisplayRect,\n  getViewport,\n  Easing\n} from \"@zyzgroup/core-web\";\nimport Pop from \"../pop/Pop.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  name: \"Image\",\n  customOptions: { 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: \"mount\", rect: DOMRect): void;\n}>();\n\nconst popRef = ref();\nlet isOpenPop = false;\n\nconst imageRef = ref();\n\nconst tl = new Timeline({\n  frameDuration: props.dur\n});\n\n// 所占空间\nlet containerWidth = 0;\nlet containerHeight = 0;\n// 图片原始\nlet sourceWidth = 0;\nlet sourceHeight = 0;\n// 图片显示\nconst showWidth = ref(0);\nconst showHeight = ref(0);\n// pop最终位置\nlet finalX = 0;\nlet finalY = 0;\nlet finalWidth = 0;\nlet finalHeight = 0;\n// pop动态位置\nconst popX = ref(0);\nconst popY = ref(0);\nconst popWidth = ref(0);\nconst popHeight = ref(0);\n\n// const isCORS = ref(false);\n\nconst outterResize = (box) => {\n  containerWidth = box.rect.width;\n  containerHeight = box.rect.height;\n  if (!sourceWidth || !sourceHeight) {\n    // 初始化获取图片信息\n    useLoadImage(props.src)\n      .then((info: { width: number; height: number }) => {\n        // isCORS.value = false;\n        sourceWidth = info.width;\n        sourceHeight = info.height;\n      })\n      .catch(() => {\n        // isCORS.value = true;\n        sourceWidth = containerWidth;\n        sourceHeight = containerHeight;\n      })\n      .then(() => {\n        setImageWidthHeight();\n      });\n  } else {\n    setImageWidthHeight();\n  }\n};\n\nconst innerResize = (box) => {\n  if (box.rect.width || box.rect.height) {\n    emits(\"mount\", box.rect);\n  }\n};\n\nfunction setImageWidthHeight() {\n  if (!containerWidth || !containerHeight || !sourceWidth || !sourceHeight) {\n    return;\n  }\n  const wrapImageRect = computeImageDisplayRect(\n    props.mode,\n    sourceWidth,\n    sourceHeight,\n    containerWidth,\n    containerHeight\n  );\n  showWidth.value = wrapImageRect.width;\n  showHeight.value = wrapImageRect.height;\n  const { width: viewportWidth, height: viewportHeight } = getViewport();\n  const viewportImageRect = computeImageDisplayRect(\n    \"aspectFit\",\n    sourceWidth,\n    sourceHeight,\n    viewportWidth,\n    viewportHeight\n  );\n  finalWidth = viewportImageRect.width;\n  finalHeight = viewportImageRect.height;\n  finalX = (viewportWidth - finalWidth) / 2;\n  finalY = (viewportHeight - finalHeight) / 2;\n}\n\nfunction click() {\n  if (!props.openImageDetailWhenClick) {\n    return;\n  }\n  const rect = imageRef.value.getRect();\n  tl.clear();\n  tl.addTween(\n    {\n      left: rect.x,\n      top: rect.y,\n      width: showWidth.value,\n      height: showHeight.value\n    },\n    {\n      left: finalX,\n      top: finalY,\n      width: finalWidth,\n      height: finalHeight\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  <Box\n    class=\"image\"\n    display=\"full\"\n    :style=\"{\n      backgroundColor: props.bgColor\n    }\"\n    @resize=\"outterResize\"\n    @throttled-click=\"click\"\n  >\n    <!-- <Box\n      v-if=\"!isCORS\"\n      display=\"shrink\"\n      @resize=\"innerResize\"\n    >\n      <img\n        :src=\"props.src\"\n        :style=\"{\n          display: 'block',\n          objectFit: 'contain',\n          cursor: props.openImageDetailWhenClick ? 'pointer' : 'default'\n        }\"\n      />\n    </Box> -->\n    <!-- v-if=\"isCORS\" -->\n    <Box\n      ref=\"imageRef\"\n      class=\"image-inner\"\n      display=\"shrink\"\n      :style=\"{\n        width: showWidth + 'px',\n        height: showHeight + 'px',\n        backgroundImage: `url(${props.src})`,\n        backgroundSize: `${showWidth}px ${showHeight}px`,\n        cursor: props.openImageDetailWhenClick ? 'pointer' : 'default'\n      }\"\n      @resize=\"innerResize\"\n    ></Box>\n    <Pop\n      ref=\"popRef\"\n      :direction-from=\"{ left: `${popX}px`, top: `${popY}px` }\"\n      :close-when-click-overlay=\"false\"\n      @clickOverlay=\"clickOverlay\"\n    >\n      <div\n        class=\"image-pop\"\n        :style=\"{\n          width: popWidth + 'px',\n          height: popHeight + 'px',\n          backgroundImage: `url(${props.src})`,\n          backgroundSize: '100% 100%'\n        }\"\n      ></div>\n    </Pop>\n  </Box>\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, watchEffect, onMounted, nextTick } from \"vue\";\nimport SVGDown from \"../svg/SVGDown.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { 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 open = ref(true);\n\nconst content = ref();\nconst contentMaxHeight = ref(Number.MAX_SAFE_INTEGER + \"px\");\n\nfunction computeHeight() {\n  if (content.value) {\n    contentMaxHeight.value =\n      content.value.getBoundingClientRect().height + \"px\";\n  }\n}\n\nonMounted(() => {\n  nextTick(() => {\n    computeHeight();\n    open.value = props.initOpen;\n  });\n});\n\nfunction toggleOpen() {\n  computeHeight();\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  <div>\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        :style=\"{\n          margin: `0 ${props.padding}`,\n          transition: `max-height ${props.duration}ms ease-in-out`,\n          maxHeight: open ? contentMaxHeight : '0'\n        }\"\n      >\n        <div ref=\"content\">\n          <slot name=\"content\"></slot>\n        </div>\n      </div>\n    </div>\n  </div>\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=\"ts\">\nimport { ref } from \"vue\";\nimport { useLoadScript, mapTDTJSSDK } from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\nconst props = withDefaults(\n  defineProps<{\n    mapKey?: string;\n    mapContainerID?: string;\n    mapWidth?: string;\n    mapHeight?: string;\n    mapZoom?: number;\n    // longitude\n    mapCenterLng?: number;\n    // latitude\n    mapCenterLat?: number;\n  }>(),\n  {\n    mapKey: \"8261564c2f1435b76dc5991adad737e6\",\n    mapContainerID: \"mapTiandituDiv\",\n    mapZoom: 18,\n    mapCenterLng: 120.619585,\n    mapCenterLat: 31.299379\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"click\"): void;\n}>();\n\nfunction mount() {\n  useLoadScript(`http://api.tianditu.gov.cn/api?v=4.0&tk=${props.mapKey}`)\n    .then(() => {\n      new mapTDTJSSDK(\n        props.mapContainerID,\n        props.mapCenterLng,\n        props.mapCenterLat,\n        props.mapZoom\n      );\n    })\n    .catch((e) => {\n      console.log(\"error\", e);\n    });\n}\n\nconst mapWidth = ref(props.mapWidth);\nconst mapHeight = ref(props.mapHeight);\nfunction resize(box) {\n  mapWidth.value = box.rect.width + \"px\";\n  mapHeight.value = box.rect.height + \"px\";\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <Box\n    display=\"full\"\n    @mount=\"mount\"\n    @resize=\"resize\"\n  >\n    <slot\n      :width=\"mapWidth\"\n      :height=\"mapHeight\"\n    >\n      <!-- 天地图动态注入的样式，目前在ce shadow root 中无法使用 -->\n      <!--\n        所以注入\n        <div id=\"mapTiandituDiv\" style=\"width: 100%; height: 100%\"></div>\n      -->\n    </slot>\n  </Box>\n</template>\n\n<style scoped></style>\n","<script setup lang=\"ts\">\nimport { onUnmounted } from \"vue\";\nimport { DOMSVGUtil } from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    canvasWidth?: string;\n    canvasHeight?: string;\n    borderColor?: string;\n    brushSize?: number;\n    brushDensity?: number;\n    brushColor?: string;\n    downloadFileName?: string;\n  }>(),\n  {\n    canvasWidth: \"400\",\n    canvasHeight: \"300\",\n    borderColor: \"#000000\",\n    brushSize: 4,\n    brushDensity: 200,\n    brushColor: \"#000000\",\n    downloadFileName: \"手写图片\"\n  }\n);\n\nlet download = () => {};\nlet unsubscribe = () => {};\n\nfunction start(drawContext) {\n  const options = {\n    brushSize: props.brushSize,\n    brushDensity: props.brushDensity,\n    brushColor: props.brushColor\n  };\n  unsubscribe = drawContext.drawMouseMoveLine(options);\n  // unsubscribe = drawContext.drawMouseMoveBrush(options); // brush 暂时无法转换为svg\n\n  download = () => {\n    DOMSVGUtil.downloadFromSVGString(\n      drawContext.ctx.toRawSVG().raw,\n      props.downloadFileName\n    );\n  };\n}\n\nonUnmounted(() => {\n  unsubscribe();\n});\n\ndefineExpose({ download: () => download() });\n</script>\n\n<template>\n  <div\n    class=\"hand-write-panel\"\n    :style=\"{\n      width: props.canvasWidth + 'px',\n      height: props.canvasHeight + 'px',\n      border: `1px solid ${borderColor}`\n    }\"\n  >\n    <Box\n      type=\"canvas\"\n      :enableCustomContext=\"true\"\n      @start=\"start\"\n    ></Box>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, reactive, watch, onMounted, onUnmounted } from \"vue\";\nimport { flushArray } from \"@zyzgroup/core-common\";\nimport { useSafeArea$ } from \"@zyzgroup/core-web\";\nimport Pop from \"../pop/Pop.vue\";\nimport SVGCleanLeft from \"../svg/SVGCleanLeft.vue\";\nimport Button from \"../form/Button.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Pop, SVGCleanLeft }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    initPlates?: string[];\n    completePlateLength?: number;\n  }>(),\n  {\n    initPlates: () => [],\n    completePlateLength: 7\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"open\"): void;\n  (event: \"close\"): void;\n  (event: \"resize\", rect: DOMRect): void;\n  (event: \"plates\", plates: string[]): void;\n}>();\n\nconst safeAreaBottom = ref(\"0px\");\nlet subcription;\nonMounted(() => {\n  subcription = useSafeArea$().subscribe((s) => {\n    safeAreaBottom.value = s.bottom;\n  });\n});\nonUnmounted(() => {\n  subcription?.unsubscribe();\n});\n\nconst FIRST = [\n  \"京\",\n  \"沪\",\n  \"津\",\n  \"渝\",\n  \"黑\",\n  \"吉\",\n  \"辽\",\n  \"蒙\",\n  \"冀\",\n  \"新\",\n  \"甘\",\n  \"青\",\n  \"陕\",\n  \"宁\",\n  \"豫\",\n  \"鲁\",\n  \"晋\",\n  \"皖\",\n  \"鄂\",\n  \"湘\",\n  \"苏\",\n  \"川\",\n  // \"黔\",\n  // \"滇\",\n  \"云\",\n  \"桂\",\n  \"藏\",\n  \"浙\",\n  \"赣\",\n  \"粤\",\n  \"闽\",\n  \"琼\",\n  \"贵\"\n];\nconst NUMBER = [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"0\"];\nconst ENGLISH = [\n  \"A\",\n  \"B\",\n  \"C\",\n  \"D\",\n  \"E\",\n  \"F\",\n  \"G\",\n  \"H\",\n  \"J\",\n  \"K\",\n  \"L\",\n  \"M\",\n  \"N\",\n  \"P\",\n  \"Q\",\n  \"R\",\n  \"S\",\n  \"T\",\n  \"U\",\n  \"V\",\n  \"W\",\n  \"X\",\n  \"Y\",\n  \"Z\"\n];\nconst CHINESE = [\n  // \"台\",\n  \"港\",\n  \"澳\",\n  \"学\",\n  \"警\",\n  \"使\",\n  \"领\",\n  \"挂\",\n  \"应\",\n  \"急\"\n];\n\nconst popRef = ref();\n\n// 0 中文 1 英文 2 英文+数字+中文\nconst keyboardStep = ref(0);\n\nconst plates = [];\n\nfunction platesChangeCallback() {\n  if (plates.length == 0) {\n    keyboardStep.value = 0;\n  } else if (plates.length == 1) {\n    keyboardStep.value = 1;\n  } else {\n    keyboardStep.value = 2;\n  }\n  if (plates.length >= props.completePlateLength) {\n    close();\n  }\n}\n\nwatch(\n  () => [...props.initPlates],\n  () => {\n    flushArray(plates, props.initPlates);\n    platesChangeCallback();\n  },\n  {\n    immediate: true\n  }\n);\n\nconst open = () => {\n  popRef.value?.open();\n};\n\nconst close = () => {\n  popRef.value?.close();\n};\n\nconst back = () => {\n  plates.pop();\n  platesChangeCallback();\n  emits(\"plates\", plates);\n};\n\nconst click = (number: string, unactive = false) => {\n  if (unactive) {\n    return;\n  }\n  if (number) {\n    plates.push(number);\n    platesChangeCallback();\n    emits(\"plates\", plates);\n  }\n};\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <Pop\n    ref=\"popRef\"\n    directionFrom=\"bottom\"\n    :global=\"true\"\n    :closeWhenClickOverlay=\"false\"\n    @open=\"() => emits('open')\"\n    @close=\"() => emits('close')\"\n    @resize=\"(rect) => emits('resize', rect)\"\n  >\n    <div>\n      <div\n        class=\"popup-plate\"\n        :style=\"{\n          paddingBottom: safeAreaBottom\n        }\"\n      >\n        <div class=\"popup-plate-close\">\n          <Button\n            class=\"popup-plate-close-content\"\n            mode=\"empty\"\n            @throttledClick=\"close\"\n          >\n            关闭\n          </Button>\n        </div>\n        <div\n          class=\"step\"\n          :class=\"keyboardStep == 0 ? '' : 'hide'\"\n        >\n          <Button\n            v-for=\"item in FIRST\"\n            :key=\"item\"\n            class=\"popitem\"\n            mode=\"empty\"\n            @throttledClick=\"() => click(item)\"\n            :data-number=\"item\"\n          >\n            {{ item }}\n          </Button>\n          <Button\n            class=\"popitem\"\n            mode=\"empty\"\n            @throttledClick=\"back\"\n          >\n            <div\n              style=\"width: 16px\"\n              class=\"popitem-clear\"\n            >\n              <SVGCleanLeft></SVGCleanLeft>\n            </div>\n          </Button>\n        </div>\n        <div\n          class=\"step\"\n          :class=\"keyboardStep != 0 ? '' : 'hide'\"\n        >\n          <Button\n            v-for=\"item in NUMBER\"\n            :key=\"item\"\n            class=\"popitem\"\n            :class=\"keyboardStep != 2 ? 'unactive' : ''\"\n            mode=\"empty\"\n            @throttledClick=\"() => click(item, keyboardStep != 2)\"\n            :data-number=\"item\"\n            :data-unactive=\"keyboardStep != 2 ? 'unactive' : ''\"\n          >\n            {{ item }}\n          </Button>\n          <Button\n            v-for=\"item in ENGLISH\"\n            :key=\"item\"\n            class=\"popitem\"\n            mode=\"empty\"\n            @throttledClick=\"() => click(item)\"\n            :data-number=\"item\"\n          >\n            {{ item }}\n          </Button>\n          <Button\n            v-for=\"item in CHINESE\"\n            :key=\"item\"\n            class=\"popitem\"\n            :class=\"keyboardStep != 2 ? 'unactive' : ''\"\n            mode=\"empty\"\n            @throttledClick=\"() => click(item, keyboardStep != 2)\"\n            :data-number=\"item\"\n            :data-unactive=\"keyboardStep != 2 ? 'unactive' : ''\"\n          >\n            {{ item }}\n          </Button>\n          <Button\n            class=\"popitem\"\n            mode=\"empty\"\n            @throttledClick=\"back\"\n          >\n            <div\n              style=\"width: 16px\"\n              class=\"popitem-clear\"\n            >\n              <SVGCleanLeft></SVGCleanLeft>\n            </div>\n          </Button>\n        </div>\n      </div>\n    </div>\n  </Pop>\n</template>\n\n<style scoped>\n.popup-plate {\n  box-sizing: border-box;\n  width: 100%;\n  background-color: #dddddd;\n  color: #333333;\n}\n.hide {\n  display: none !important;\n}\n.popup-plate-close {\n  display: flex;\n  justify-content: flex-end;\n  background-color: #ffffff;\n  border-top: 1px solid #e6e6e6;\n}\n.popup-plate-close-content {\n  flex: 0 0 auto;\n  padding: 0 15px;\n  color: #5a82f0;\n  font-size: 16px;\n  line-height: 2.6;\n  cursor: pointer;\n}\n.step {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  padding: 10px 10px 5px;\n}\n.popitem {\n  flex: 0 0 auto;\n  width: 50px;\n  padding: 010px 0;\n  border: 1px solid #e6e6e6;\n  border-radius: 4px;\n  margin-right: 5px;\n  margin-bottom: 5px;\n  font-size: 16px;\n  line-height: 1;\n  text-align: center;\n  background-color: #fff;\n  cursor: pointer;\n}\n.popitem:not(.unactive):active {\n  background-color: #eee;\n}\n.popitem.unactive {\n  color: #cccccc;\n}\n.popitem.popitem-clear {\n  background-color: #eee;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, reactive } from \"vue\";\nimport { flushArray } from \"@zyzgroup/core-common\";\nimport { getDocumentElement } from \"@zyzgroup/core-web\";\nimport { plateKeyboard } from \"../../globalTeleport\";\nimport Box from \"../base/Box.vue\";\nimport SVGCheck from \"../svg/SVGCheck.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { SVGCheck },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    maxWidth?: string;\n    showBottomInfo?: boolean;\n    stylePattern?: \"simple\" | \"dot\";\n    supportWhitePlate?: boolean;\n  }>(),\n  {\n    maxWidth: \"750px\",\n    showBottomInfo: true,\n    stylePattern: \"simple\",\n    supportWhitePlate: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"clear\"): void;\n  (event: \"complete\", type: string, plate: string): void;\n}>();\n\nconst PLATE_TYPES = [\n  {\n    name: \"蓝牌\",\n    style: \"background-color: #0078f0;\",\n    completePlateLength: 7,\n    symbol: \"b\"\n  },\n  {\n    name: \"绿牌\",\n    style: \"background-color: #00f08c;\",\n    completePlateLength: 8,\n    symbol: \"g\"\n  },\n  {\n    name: \"黄牌\",\n    style: \"background-color: #fac800;\",\n    completePlateLength: 7,\n    symbol: \"y\"\n  },\n  {\n    name: \"黄绿\",\n    style: \"background: linear-gradient(90deg, #fac800 51.5%, #00f08c 51.51%);\",\n    completePlateLength: 8,\n    symbol: \"q\"\n  },\n  {\n    name: \"黑牌\",\n    style: \"background-color: #222222;\",\n    completePlateLength: 7,\n    symbol: \"d\"\n  }\n];\nif (props.supportWhitePlate) {\n  PLATE_TYPES.push({\n    name: \"白牌\",\n    style: \"background-color: #ffffff;border: 1px solid #222222;\",\n    completePlateLength: 7,\n    symbol: \"w\"\n  });\n}\n\nconst currentTypeIndex = ref(0);\n\nconst plates = reactive<string[]>([]);\n\nconst focusIndex = ref(-1);\n\nconst isPlateKeyboardOpen = ref(false);\nconst scrollTopWhenKeyboardShow = ref(0);\n\nconst numbersRef = ref();\nlet numbersTop = 0;\n\nfunction openPlateKeyboard() {\n  plateKeyboard({\n    initPlates: plates,\n    completePlateLength:\n      PLATE_TYPES[currentTypeIndex.value].completePlateLength,\n    onPlates: (newPlates: string[]) => {\n      flushArray(plates, newPlates);\n      focusIndex.value = plates.length;\n      if (\n        plates.length ===\n        PLATE_TYPES[currentTypeIndex.value].completePlateLength\n      ) {\n        emits(\n          \"complete\",\n          PLATE_TYPES[currentTypeIndex.value].name,\n          plates.join(\"\")\n        );\n      }\n    },\n    onOpen: () => {\n      // 页面其余元素变化 导致 el.rect.x 或 el.rect.y 变化时，也要触发\n      // const systemHeight = getDocumentElement().clientHeight;\n      if (isPlateKeyboardOpen.value == false) {\n        // 初次打开时才变化\n        const rect = numbersRef.value.getBoundingClientRect();\n        numbersTop = rect.y + rect.height;\n      }\n      isPlateKeyboardOpen.value = true;\n    },\n    onClose: () => {\n      isPlateKeyboardOpen.value = false;\n    },\n    onResize: (rect) => {\n      scrollTopWhenKeyboardShow.value =\n        numbersTop <= rect.y ? 0 : rect.y - numbersTop;\n      // console.log(numbersTop, rect.y, scrollTopWhenKeyboardShow.value);\n    }\n  });\n}\n\nconst changePlateType = (index: number) => {\n  currentTypeIndex.value = index;\n  if (\n    focusIndex.value <= PLATE_TYPES[index].completePlateLength &&\n    plates.length < PLATE_TYPES[index].completePlateLength\n  ) {\n    focusIndex.value = plates.length;\n    openPlateKeyboard();\n    emits(\"clear\");\n  } else {\n    flushArray(plates, plates.slice(0, PLATE_TYPES[index].completePlateLength));\n  }\n  if (PLATE_TYPES[index].completePlateLength === plates.length) {\n    emits(\n      \"complete\",\n      PLATE_TYPES[currentTypeIndex.value].name,\n      plates.join(\"\")\n    );\n  }\n};\n\nconst tapNumber = (index: number) => {\n  flushArray(plates, plates.slice(0, index));\n  focusIndex.value = Math.min(Math.max(0, focusIndex.value), index);\n  openPlateKeyboard();\n  emits(\"clear\");\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"plate-mobile\"\n    :style=\"{\n      maxWidth: props.maxWidth,\n      transform: isPlateKeyboardOpen\n        ? `translate(0, ${scrollTopWhenKeyboardShow}px)`\n        : ''\n    }\"\n  >\n    <div class=\"title\">车牌颜色</div>\n    <div\n      class=\"plate-types\"\n      :class=\"props.stylePattern\"\n    >\n      <div\n        v-for=\"(item, index) in PLATE_TYPES\"\n        :key=\"index\"\n        :class=\"index == currentTypeIndex ? 'checked' : ''\"\n        @click=\"changePlateType(index)\"\n      >\n        <template v-if=\"props.stylePattern == 'dot'\">\n          <div :style=\"item.style\"></div>\n          <div>{{ item.name }}</div>\n          <div>\n            <SVGCheck\n              color=\"#ffffff\"\n              width=\"7px\"\n            ></SVGCheck>\n          </div>\n        </template>\n        <template v-else>\n          <div>{{ item.name }}</div>\n        </template>\n      </div>\n    </div>\n    <div class=\"title\">车牌号码</div>\n    <div ref=\"numbersRef\">\n      <div class=\"plate-numbers\">\n        <div\n          @click=\"tapNumber(0)\"\n          :class=\"0 == focusIndex ? 'current' : ''\"\n        >\n          {{ plates[0] }}\n        </div>\n        <div\n          @click=\"tapNumber(1)\"\n          :class=\"1 == focusIndex ? 'current' : ''\"\n        >\n          {{ plates[1] }}\n        </div>\n        <!-- <div class=\"dot\">·</div> -->\n        <div\n          v-for=\"index in PLATE_TYPES[currentTypeIndex].completePlateLength - 2\"\n          :key=\"index\"\n          :class=\"index + 1 == focusIndex ? 'current' : ''\"\n          @click=\"tapNumber(index + 1)\"\n        >\n          {{ plates[index + 1] }}\n        </div>\n      </div>\n    </div>\n    <div\n      class=\"info\"\n      v-if=\"props.showBottomInfo\"\n    >\n      请输入您真实有效的车牌号，便于正常使用系统功能。\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.plate-mobile {\n  background-color: #ffffff;\n  overflow: hidden;\n  border-radius: 8px;\n  padding-bottom: 15px;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.title {\n  font-size: 16px;\n  line-height: 1;\n  color: #333333;\n  font-weight: bold;\n  text-align: center;\n  margin-top: 20px;\n  margin-bottom: 10px;\n}\n.plate-types {\n  display: flex;\n  justify-content: center;\n}\n.plate-types > div {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  width: 60px;\n  height: 44px;\n  border-radius: 4px;\n  background-color: #f5f5f5;\n  cursor: pointer;\n  overflow: hidden;\n  box-sizing: border-box;\n}\n.plate-types > div + div {\n  margin-left: 5px;\n}\n.plate-types.dot > div > div:nth-child(1) {\n  width: 14px;\n  height: 14px;\n  margin-bottom: 5px;\n  border-radius: 50%;\n  background-color: #0078f0;\n}\n.plate-types.dot > div:nth-child(2) > div:nth-child(1) {\n  background-color: #00f08c;\n}\n.plate-types.dot > div:nth-child(3) > div:nth-child(1) {\n  background-color: #fac800;\n}\n.plate-types.dot > div:nth-child(4) > div:nth-child(1) {\n  background: linear-gradient(90deg, #fac800 51.5%, #00f08c 51.51%);\n}\n.plate-types.dot > div:nth-child(5) > div:nth-child(1) {\n  background-color: #222222;\n}\n.plate-types.dot > div > div:nth-child(2) {\n  color: #cccccc;\n  font-size: 14px;\n  line-height: 1;\n  font-weight: bold;\n}\n.plate-types.dot > div > div:nth-child(3) {\n  display: none;\n  position: absolute;\n  right: -1px;\n  bottom: -1px;\n  width: 16px;\n  height: 16px;\n  border-radius: 16px 0 4px 0;\n  background: #5a82f0;\n}\n.plate-types.dot > div > div:nth-child(3) > svg {\n  position: absolute;\n  top: 6px;\n  left: 6px;\n}\n.plate-types.dot > div.checked {\n  border: 1px solid #5a82f0;\n}\n.plate-types.dot > div.checked > div:nth-child(2) {\n  color: #333333;\n}\n.plate-types.dot > div.checked > div:nth-child(3) {\n  display: block;\n}\n.plate-types.simple > div > div:nth-child(1) {\n  color: #666666;\n  font-size: 14px;\n  line-height: 1;\n  font-weight: bold;\n}\n.plate-types.simple > div.checked > div:nth-child(1) {\n  color: #000000;\n}\n.plate-types.simple > div.checked:nth-child(1) {\n  background-color: #0078f0;\n}\n.plate-types.simple > div.checked:nth-child(1) > div {\n  color: #ffffff;\n}\n.plate-types.simple > div.checked:nth-child(2) {\n  background-color: #00f08c;\n}\n.plate-types.simple > div.checked:nth-child(3) {\n  background-color: #fac800;\n}\n.plate-types.simple > div.checked:nth-child(4) {\n  background: linear-gradient(90deg, #fac800 51.5%, #00f08c 51.51%);\n}\n.plate-types.simple > div.checked:nth-child(5) {\n  background-color: #222222;\n}\n.plate-types.simple > div.checked:nth-child(5) > div {\n  color: #ffffff;\n}\n.plate-types.simple > div.checked:nth-child(6) {\n  border: 1px solid #222222;\n  background-color: #ffffff;\n}\n.plate-numbers {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n.plate-numbers > div {\n  flex: 1;\n  max-width: 40px;\n  height: 44px;\n  line-height: 44px;\n  border-radius: 4px;\n  font-size: 18px;\n  color: #333333;\n  text-align: center;\n  border: 1px solid #cccccc;\n}\n.plate-numbers > div.current {\n  border: 1px solid #5a82f0;\n}\n.plate-numbers > div + div {\n  margin-left: 5px;\n}\n.plate-numbers > div.dot {\n  flex: 0;\n  border: 0;\n  padding: 0 2.5px;\n  color: #cccccc;\n  font-size: 46px;\n  margin-right: -5px;\n  margin-left: 0;\n}\n.info {\n  font-size: 12px;\n  line-height: 16px;\n  font-weight: 400;\n  color: #999999;\n  text-align: center;\n  padding: 0 5px;\n  margin-top: 20px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted } from \"vue\";\nimport { clearArray, isNaN, maxDotNumber } from \"@zyzgroup/core-common\";\nimport { useSafeArea$ } from \"@zyzgroup/core-web\";\nimport Pop from \"../pop/Pop.vue\";\nimport IconClose from \"../icon/IconClose.vue\";\nimport SVGCleanLeft from \"../svg/SVGCleanLeft.vue\";\nimport Button from \"../form/Button.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {}\n});\n\nconst props = withDefaults(\n  defineProps<{\n    min?: number;\n    max?: number;\n    title?: string;\n  }>(),\n  {\n    title: \"自定义金额\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"open\"): void;\n  (event: \"close\"): void;\n  (event: \"number\", n: number): void;\n  (event: \"error\", msg: string): void;\n}>();\n\nconst safeAreaBottom = ref(\"0px\");\nlet subcription;\nonMounted(() => {\n  subcription = useSafeArea$().subscribe((s) => {\n    safeAreaBottom.value = s.bottom;\n  });\n});\nonUnmounted(() => {\n  subcription?.unsubscribe();\n});\n\n// 小数点前数字\nconst dotBefore: number[] = [];\n// 小数点后数字\nconst dotAfter: number[] = [];\n// 是否点击了小数点\nlet hasTapDot = false;\n// 最终结果\nconst result = ref(\"\");\n\nconst popRef = ref();\n\nconst open = () => {\n  clearArray(dotBefore);\n  clearArray(dotAfter);\n  hasTapDot = false;\n  // if (props.min) {\n  //   _setResult(props.min);\n  // }\n  _computeResult();\n  popRef.value?.open();\n};\n\nconst close = () => {\n  popRef.value?.close();\n};\n\nconst confirm = () => {\n  if (result.value == \"\") {\n    emits(\"error\", `请输入金额！`);\n    return;\n  }\n  const n = parseFloat(result.value);\n  if (isNaN(n)) {\n    emits(\"error\", `${n} is NaN!`);\n    return;\n  }\n  // min 拦截\n  if (typeof props.min == \"number\") {\n    const min = maxDotNumber(props.min, 2);\n    if (!isNaN(n) && n < min) {\n      emits(\"error\", `${props.title} 不能小于 ${min}`);\n      // _setResult(min);\n      // _computeResult();\n      return;\n    }\n  }\n  // max 拦截\n  if (typeof props.max == \"number\") {\n    const max = maxDotNumber(props.max, 2);\n    if (!isNaN(n) && n > max) {\n      emits(\"error\", `${props.title} 不能大于 ${max}`);\n      // _setResult(max);\n      // _computeResult();\n      return;\n    }\n  }\n  emits(\"number\", n);\n  close();\n};\n\nfunction _setResult(n: number) {\n  n = maxDotNumber(n, 2);\n  hasTapDot = String(n).indexOf(\".\") > -1;\n  clearArray(dotBefore);\n  clearArray(dotAfter);\n  let b = Math.floor(n);\n  let t = b % 10;\n  while (t || b) {\n    dotBefore.unshift(t);\n    b = Math.floor(b / 10);\n    t = b % 10;\n  }\n  let a = maxDotNumber(n - Math.floor(n), 2);\n  let i = 1;\n  t = Math.floor(a * Math.pow(10, i));\n  while (t || a) {\n    dotAfter.push(t);\n    a = maxDotNumber(a - t / Math.pow(10, i), 2);\n    i++;\n    t = Math.floor(a * Math.pow(10, i));\n  }\n}\n\nfunction _computeResult() {\n  result.value = \"\";\n  dotBefore.forEach((d) => {\n    result.value += \"\" + d;\n  });\n  if (hasTapDot) {\n    result.value += \".\";\n  }\n  // 只保留2位小数\n  for (let i = 0, c = Math.min(dotAfter.length, 2); i < c; i++) {\n    result.value += \"\" + dotAfter[i];\n  }\n}\n\nconst _forward = (v: number | string) => {\n  if (typeof v == \"number\") {\n    if (!hasTapDot) {\n      dotBefore.push(v);\n    } else {\n      if (dotAfter.length < 2) {\n        dotAfter.push(v);\n      }\n    }\n  } else {\n    hasTapDot = true;\n  }\n  _computeResult();\n};\n\nconst _back = () => {\n  if (dotAfter.length) {\n    dotAfter.pop();\n  } else if (hasTapDot) {\n    hasTapDot = false;\n  } else if (dotBefore.length) {\n    dotBefore.pop();\n  }\n  _computeResult();\n};\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <Pop\n    ref=\"popRef\"\n    directionFrom=\"bottom\"\n    :global=\"true\"\n    :closeWhenClickOverlay=\"false\"\n    @open=\"() => emits('open')\"\n    @close=\"() => emits('close')\"\n  >\n    <div class=\"number-keyboard\">\n      <!-- 头部 -->\n      <div class=\"top\">\n        <div @click=\"close\">\n          <div style=\"width: 12px\"><IconClose></IconClose></div>\n        </div>\n        <div>{{ title }}</div>\n        <div @click=\"confirm\">完成</div>\n      </div>\n      <!-- 结果显示 -->\n      <div class=\"result\">\n        <!-- <div><input type=\"number\" step=\"any\" :value=\"result\" disabled /></div> -->\n        <div>\n          <div class=\"input\">\n            <span>{{ result }}</span>\n            <span class=\"cursor\">\n              <span class=\"line\"></span>\n            </span>\n          </div>\n        </div>\n      </div>\n      <!-- 选择项 -->\n      <div\n        class=\"numbers\"\n        :style=\"{\n          paddingBottom: safeAreaBottom\n        }\"\n      >\n        <div>\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(1)\"\n          >\n            <div class=\"item-inner\">1</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(2)\"\n          >\n            <div class=\"item-inner\">2</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(3)\"\n          >\n            <div class=\"item-inner\">3</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(4)\"\n          >\n            <div class=\"item-inner\">4</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(5)\"\n          >\n            <div class=\"item-inner\">5</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(6)\"\n          >\n            <div class=\"item-inner\">6</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(7)\"\n          >\n            <div class=\"item-inner\">7</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(8)\"\n          >\n            <div class=\"item-inner\">8</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(9)\"\n          >\n            <div class=\"item-inner\">9</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward('.')\"\n          >\n            <div class=\"item-inner no-bg\">.</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"() => _forward(0)\"\n          >\n            <div class=\"item-inner\">0</div>\n          </Button>\n\n          <Button\n            class=\"item\"\n            mode=\"empty\"\n            @throttledClick=\"_back\"\n          >\n            <div class=\"item-inner no-bg\">\n              <div style=\"width: 20px\"><SVGCleanLeft></SVGCleanLeft></div>\n            </div>\n          </Button>\n        </div>\n      </div>\n    </div>\n  </Pop>\n</template>\n\n<style scoped>\n@keyframes cursor-blinks {\n  0% {\n    opacity: 1;\n    display: block;\n  }\n  50% {\n    opacity: 0;\n    display: none;\n  }\n  100% {\n    opacity: 1;\n    display: block;\n  }\n}\n\n.number-keyboard {\n  box-sizing: border-box;\n  width: 100%;\n  background-color: #ffffff;\n  color: #333333;\n  border-top-left-radius: 16px;\n  border-top-right-radius: 16px;\n}\n.top {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  height: 56px;\n  line-height: 56px;\n  padding: 0 15px;\n  border-bottom: 1px solid #e6e6e6;\n}\n.top > div:nth-child(1) {\n  flex: 0 0 auto;\n  width: 24px;\n  height: 24px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding-right: 10px;\n}\n.top > div:nth-child(2) {\n  flex: 1 1 auto;\n  text-align: center;\n  font-size: 20px;\n  font-weight: bold;\n  color: #333333;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  word-wrap: normal;\n  word-break: break-all;\n}\n.top > div:nth-child(3) {\n  flex: 0 0 auto;\n  font-size: 16px;\n  font-weight: bold;\n  color: #5a82f0;\n  padding-left: 10px;\n}\n.result {\n  padding: 15px;\n}\n.result > div {\n  overflow: hidden;\n  display: flex;\n}\n.result > div > .input {\n  position: relative;\n  flex: 1 1 auto;\n  height: 44px;\n  line-height: 44px;\n  border: 1px solid #c8dcff;\n  background: #e6f0ff;\n  border-radius: 4px;\n  font-size: 20px;\n  font-weight: bold;\n  color: #5a82f0;\n  padding: 0 15px;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center;\n}\n.cursor {\n  width: 0;\n  overflow: visible;\n  position: relative;\n}\n.line {\n  position: absolute;\n  width: 1px;\n  height: 24px;\n  background: #5a82f0;\n  left: 0;\n  top: 50%;\n  transform: translate(0, -50%);\n  animation: cursor-blinks 1.5s infinite steps(1, start);\n}\n.numbers {\n  background-color: #c6cad1;\n}\n.numbers > div {\n  display: flex;\n  flex-wrap: wrap;\n  padding: 4px;\n}\n.item {\n  flex: 0 0 33%;\n  padding: 4px;\n  box-sizing: border-box;\n}\n.item-inner {\n  background: #ffffff;\n  width: 100%;\n  height: 44px;\n  line-height: 44px;\n  text-align: center;\n  color: #333333;\n  font-size: 20px;\n  border-radius: 4px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  box-shadow: 0 2px #aaaaaa;\n}\n.item-inner.no-bg {\n  background: rgba(255, 255, 255, 0);\n  box-shadow: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { reactive, ref } from \"vue\";\nimport { maxDotNumber, clamp } from \"@zyzgroup/core-common\";\nimport {\n  RingIndicatorShapeCombo,\n  createRunCycleInMaxRate\n} from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    percent?: number;\n    lineWidth?: number;\n    bgColor?: string;\n    startColor?: string;\n    endColor?: string;\n    half?: boolean;\n  }>(),\n  {\n    percent: 0,\n    lineWidth: 12,\n    bgColor: \"#B3C6E7\",\n    startColor: \"#5A82F0\",\n    endColor: \"#66B3FF\",\n    half: false // 半圆 或 全圆\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nlet currentPercent = ref(0);\nconst getPercent = createRunCycleInMaxRate(() => {\n  const percent = clamp(Math.floor(props.percent), 0, 100);\n  if (currentPercent.value < percent) {\n    currentPercent.value = Math.min(currentPercent.value + 1, percent);\n  } else if (currentPercent.value > percent) {\n    currentPercent.value = Math.max(currentPercent.value - 1, percent);\n  }\n  return maxDotNumber(currentPercent.value / 100, 2);\n}, 20);\n\nconst shapes = reactive([]);\nlet ringIndicator;\nfunction start(box) {\n  if (ringIndicator) {\n    return;\n  }\n  ringIndicator = new RingIndicatorShapeCombo({\n    half: props.half,\n    width: box.rect.width,\n    height: box.rect.height,\n    lineWidth: props.lineWidth,\n    bgColor: props.bgColor,\n    startColor: props.startColor,\n    endColor: props.endColor\n  });\n  shapes.push(ringIndicator);\n}\n\nfunction frame() {\n  ringIndicator?.setPercent(getPercent());\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <div class=\"ring-indicator\">\n    <Box\n      type=\"canvas\"\n      :shapes=\"shapes\"\n      :loop=\"true\"\n      @start=\"start\"\n      @frame=\"frame\"\n    ></Box>\n    <div\n      :class=\"{\n        'ring-text': true,\n        'ring-text-full': !props.half,\n        'ring-text-half': props.half\n      }\"\n    >\n      <span>{{ currentPercent }}</span>\n      <span>%</span>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.ring-indicator {\n  position: relative;\n  width: 100%;\n  height: 100%;\n}\n.ring-text-full {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 100%;\n  transform: translate(-50%, -50%);\n  text-align: center;\n  font-family: D-DINCondensed-number;\n  color: #333333;\n  text-indent: 1em;\n}\n.ring-text-half {\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  text-align: center;\n  font-family: D-DINCondensed-number;\n  color: #333333;\n  padding-bottom: 20px;\n  text-indent: 1em;\n}\n.ring-text > span:nth-child(1) {\n  font-size: 64px;\n}\n.ring-text > span:nth-child(2) {\n  font-size: 20px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    text?: string;\n    secondText?: string;\n    startColor?: string;\n    endColor?: string;\n    dur?: number;\n  }>(),\n  {\n    text: \"\",\n    secondText: \"\",\n    startColor: \"#5A82F0\",\n    endColor: \"#66B3FF\",\n    dur: 2000\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst ringGap = 10;\nconst ringWidth = 4;\n\nconst length = ref(0);\nconst resize = (box) => {\n  length.value = Math.floor(Math.min(box.rect.width, box.rect.height));\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <Box\n    display=\"full\"\n    @resize=\"resize\"\n  >\n    <div\n      class=\"ring\"\n      :style=\"{\n        width: length + 'px',\n        height: length + 'px',\n        padding: ringGap + 'px',\n        background: `linear-gradient(180deg, ${props.startColor} 0%, ${props.endColor} 100%)`\n      }\"\n    >\n      <div\n        class=\"ring-rotate\"\n        :style=\"{\n          animation: `rotate ${props.dur}ms infinite linear`,\n          mask: `radial-gradient(transparent ${\n            length / 2 - ringGap - ringWidth\n          }px, #000 ${length / 2 - ringGap - ringWidth}px)`\n        }\"\n      >\n        <div class=\"left\"></div>\n        <div class=\"right\"></div>\n      </div>\n      <div\n        class=\"ring-content\"\n        :style=\"{\n          top: ringGap + ringWidth + 'px',\n          left: ringGap + ringWidth + 'px',\n          width: length - (ringGap + ringWidth) * 2 + 'px',\n          height: length - (ringGap + ringWidth) * 2 + 'px'\n        }\"\n      >\n        <div v-if=\"props.text\">{{ props.text }}</div>\n        <div v-if=\"props.secondText\">{{ props.secondText }}</div>\n      </div>\n    </div>\n  </Box>\n</template>\n\n<style>\n/* @import \"../../../../../css/animate_ce.css\"; */\n@keyframes rotate {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n</style>\n\n<style scoped>\n.ring {\n  position: relative;\n  display: block;\n  margin: 0 auto;\n  border-radius: 50%;\n  overflow: hidden;\n  box-sizing: border-box;\n}\n.ring-rotate {\n  width: 100%;\n  height: 100%;\n  position: relative;\n  overflow: hidden;\n  box-sizing: border-box;\n  border-radius: 50%;\n}\n.ring-content {\n  position: absolute;\n  overflow: hidden;\n  box-sizing: border-box;\n  border-radius: 50%;\n  color: #ffffff;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n}\n.ring-content > div:nth-child(1) {\n  font-size: 20px;\n  font-weight: bold;\n}\n.ring-content > div:nth-child(2) {\n  font-size: 14px;\n  margin-top: 6px;\n}\n.left,\n.right {\n  position: absolute;\n  top: 0;\n  width: 50%;\n  height: 100%;\n  z-index: 0;\n}\n.left {\n  left: 0;\n  background: linear-gradient(\n    180deg,\n    rgba(255, 255, 255, 0),\n    rgba(255, 255, 255, 0.5)\n  );\n}\n.right {\n  right: 0;\n  background: linear-gradient(\n    180deg,\n    rgba(255, 255, 255, 1),\n    rgba(255, 255, 255, 0.5)\n  );\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, reactive } from \"vue\";\nimport {\n  Time,\n  parseTime,\n  increaseTime,\n  decreaseTime,\n  copyTime,\n  now\n} from \"@zyzgroup/core-common\";\nimport {\n  setTimeoutAccurate,\n  setIntervalAccurate,\n  injectStyle\n} from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    startTime?: string;\n    initStart?: boolean;\n    creaseType?: \"increase\" | \"decrease\";\n    flipDirection?: \"down\" | \"up\";\n    dur?: number; // 动画时间\n    bgColor?: string;\n    textColor?: string;\n    borderRadius?: number;\n    gap?: number;\n    perspective?: number;\n  }>(),\n  {\n    startTime: \"00:00:00\",\n    initStart: true,\n    creaseType: \"increase\",\n    flipDirection: \"down\",\n    dur: 800, // 动画时间\n    bgColor: \"#5a82f0\",\n    textColor: \"#ffffff\",\n    borderRadius: 8,\n    gap: 1,\n    perspective: 400\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst containerRef = ref();\nconst flipWidth = ref(40);\nconst lineHeight = ref(20);\nconst fontSize = ref(20);\n\nconst resize = (box) => {\n  flipWidth.value = Math.floor(box.rect.width / (6 + 1));\n  lineHeight.value = Math.floor(box.rect.height);\n  fontSize.value = Math.max(12, lineHeight.value);\n};\n\nconst mount = (box) => {\n  // for ce\n  injectStyle(\n    `\n  :root {\n    --yz-clock-flipper-bg-color:${props.bgColor};\n    --yz-clock-flipper-text-color:${props.textColor};\n    --yz-clock-flipper-border-radius:${props.borderRadius}px;\n    --yz-clock-flipper-gap:${props.gap}px;\n    --yz-clock-flipper-gap-double:${props.gap * 2}px;\n    --yz-clock-flipper-gap-four:${props.gap * 4}px;\n    --yz-clock-flipper-animation-duration:${props.dur}ms;\n    --yz-clock-flipper-perspective: ${props.perspective}px;\n  }\n  :host {\n    --yz-clock-flipper-bg-color:${props.bgColor};\n    --yz-clock-flipper-text-color:${props.textColor};\n    --yz-clock-flipper-border-radius:${props.borderRadius}px;\n    --yz-clock-flipper-gap:${props.gap}px;\n    --yz-clock-flipper-gap-double:${props.gap * 2}px;\n    --yz-clock-flipper-gap-four:${props.gap * 4}px;\n    --yz-clock-flipper-animation-duration:${props.dur}ms;\n    --yz-clock-flipper-perspective: ${props.perspective}px;\n  }\n  `,\n    box.el\n  );\n  if (props.initStart) {\n    start(props.startTime);\n  }\n};\n\nconst startTime: Time = [0, 0, 0, 0, 0, 0];\nconst time = reactive<Time>([0, 0, 0, 0, 0, 0]);\nconst timeNext = reactive<Time>([0, 0, 0, 0, 0, 0]);\n\nlet lastTimeOutCount = 0;\n\nconst start = (starttime?: string) => {\n  if (starttime) {\n    copyTime(parseTime(starttime), startTime);\n    startTime.forEach((t, i) => {\n      time[i] = t;\n      timeNext[i] = t;\n    });\n  }\n  pause();\n  lastTimeOutCount = 0;\n  flipAction(now(), 0, false);\n  clearInterval = setIntervalAccurate(\n    (t: DOMHighResTimeStamp, count: number, isTimeOut: boolean) => {\n      flipAction(t, count, isTimeOut);\n    },\n    1000\n  );\n};\n\nlet clearInterval: () => void;\nconst pause = () => {\n  clearInterval?.();\n};\n\nconst flipAction = (\n  _: DOMHighResTimeStamp,\n  count: number,\n  isTimeOut: boolean\n) => {\n  // 当前周期为超时周期\n  if (isTimeOut) {\n    lastTimeOutCount = count;\n    // 超时周期不更新\n  } else {\n    // 当前周期是正常周期，上个周期为超时周期\n    if (lastTimeOutCount > 0) {\n      // 尽量保持与开始时间的偏差\n      startTime.forEach((t, i) => {\n        time[i] = t;\n        timeNext[i] = t;\n      });\n      const currentCount = lastTimeOutCount + 1;\n      if (props.creaseType == \"increase\") {\n        copyTime(increaseTime(time, currentCount), time);\n        copyTime(increaseTime(timeNext, currentCount + 1), timeNext);\n      } else {\n        copyTime(decreaseTime(time, currentCount), time);\n        copyTime(decreaseTime(timeNext, currentCount + 1), timeNext);\n      }\n      lastTimeOutCount = 0;\n    } else {\n      // 正常周期\n      if (props.creaseType == \"increase\") {\n        copyTime(increaseTime(timeNext, 1), timeNext);\n      } else {\n        copyTime(decreaseTime(timeNext, 1), timeNext);\n      }\n    }\n    setTimeoutAccurate(() => {\n      timeNext.forEach((t, i) => {\n        time[i] = t;\n      });\n    }, props.dur);\n  }\n};\n\ndefineExpose({ start, pause });\n</script>\n\n<template>\n  <Box\n    ref=\"containerRef\"\n    display=\"full\"\n    :style=\"{ overflow: 'visible' }\"\n    @mount=\"mount\"\n    @resize=\"resize\"\n  >\n    <div\n      class=\"clock-flipper\"\n      :style=\"{\n        fontSize: fontSize + 'px',\n        lineHeight: lineHeight + 'px'\n      }\"\n    >\n      <template\n        v-for=\"(t, i) in time\"\n        :key=\"i\"\n      >\n        <!-- 小时 十位 -->\n        <!-- 小时 个位 -->\n        <!-- gap -->\n        <!-- 分钟 十位 -->\n        <!-- 分钟 个位 -->\n        <!-- gap -->\n        <!-- 秒 十位 -->\n        <!-- 秒 个位 -->\n        <div\n          class=\"flip\"\n          :class=\"[props.flipDirection, timeNext[i] != t ? 'go' : '']\"\n          :style=\"{ width: flipWidth + 'px' }\"\n        >\n          <div\n            class=\"front digital\"\n            :class=\"[`flipper_${i}`, `number_${t}`]\"\n          ></div>\n          <div\n            class=\"back digital\"\n            :class=\"[`number_${timeNext[i]}`]\"\n          ></div>\n        </div>\n        <div\n          v-if=\"i == 1 || i == 3\"\n          class=\"gap\"\n          :style=\"{\n            fontSize: Math.floor(fontSize * 0.6) + 'px',\n            lineHeight: 0\n          }\"\n        >\n          :\n        </div>\n      </template>\n    </div>\n  </Box>\n</template>\n\n<style>\n@keyframes frontFlipDown {\n  0% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(0deg);\n  }\n  100% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(-180deg);\n  }\n}\n@keyframes backFlipDown {\n  0% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(180deg);\n  }\n  100% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(0deg);\n  }\n}\n@keyframes frontFlipUp {\n  0% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(0deg);\n  }\n  100% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(180deg);\n  }\n}\n@keyframes backFlipUp {\n  0% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(-180deg);\n  }\n  100% {\n    transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(0deg);\n  }\n}\n</style>\n\n<style scoped>\n.clock-flipper {\n  position: relative;\n  margin: 0 auto;\n  box-sizing: border-box;\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n  height: 100%;\n  font-family: D-DINCondensed-number;\n}\n.flip {\n  position: relative;\n  height: 100%;\n  box-sizing: border-box;\n  color: var(--yz-clock-flipper-text-color);\n  /* border-radius: var(--yz-clock-flipper-border-radius) 0 0\n    var(--yz-clock-flipper-border-radius); */\n}\n.flip + .flip {\n  margin-left: var(--yz-clock-flipper-gap-double);\n  /* border-radius: 0 var(--yz-clock-flipper-border-radius)\n    var(--yz-clock-flipper-border-radius) 0; */\n}\n\n/*\n-------------- --------------\n.back:before  |  .front:before\n.back:after   |  .front:after\n-------------- ---------------\n*/\n\n/* 向下翻\n                      .back:after{z-index:2}\n                              *    .front:before{z-index:3}\n                              *         *\n                              *     *\n                              *  *\n.back:before{z-index:1} * * * *  *  *  *  *  * .front:after{z-index:1}\n*/\n.flip.down .front:after,\n.flip.down .back:before {\n  z-index: 1;\n}\n.flip.down .front:before {\n  z-index: 3;\n}\n.flip.down .back:after {\n  z-index: 2;\n  transform-origin: 50% 0%;\n  transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(180deg);\n}\n.flip.down.go .front:before {\n  transform-origin: 50% 100%;\n  animation: frontFlipDown var(--yz-clock-flipper-animation-duration)\n    ease-in-out both;\n  backface-visibility: hidden;\n  box-shadow: 0 -2px 6px rgba(255, 255, 255, 0.3);\n}\n.flip.down.go .back:after {\n  animation: backFlipDown var(--yz-clock-flipper-animation-duration) ease-in-out\n    both;\n}\n\n/* 向上翻\n                      .front:after{z-index:3}\n                              *    .back:before{z-index:2}\n                              *         *\n                              *     *\n                              *  *\n.front:before{z-index:1} * * * *  *  *  *  *  * .back:after{z-index:1}\n*/\n.flip.up .front:before,\n.flip.up .back:after {\n  z-index: 1;\n}\n.flip.up .front:after {\n  z-index: 3;\n}\n.flip.up .back:before {\n  z-index: 2;\n  transform-origin: 50% 100%;\n  transform: perspective(var(--yz-clock-flipper-perspective)) rotateX(-180deg);\n}\n.flip.up.go .front:after {\n  transform-origin: 50% 0;\n  animation: frontFlipUp var(--yz-clock-flipper-animation-duration) ease-in-out\n    both;\n  backface-visibility: hidden;\n  box-shadow: 0 -2px 6px rgba(255, 255, 255, 0.3);\n}\n.flip.up.go .back:before {\n  animation: backFlipUp var(--yz-clock-flipper-animation-duration) ease-in-out\n    both;\n}\n\n.gap {\n  margin: 0 var(--yz-clock-flipper-gap-four);\n  color: var(--yz-clock-flipper-bg-color);\n}\n\n.digital:before,\n.digital:after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  height: 50%;\n  box-sizing: border-box;\n  background: var(--yz-clock-flipper-bg-color);\n  overflow: hidden;\n}\n.digital:before {\n  top: 0;\n  bottom: 50%;\n  border-radius: var(--yz-clock-flipper-border-radius)\n    var(--yz-clock-flipper-border-radius) 0 0;\n  border-bottom: solid var(--yz-clock-flipper-gap)\n    var(--yz-clock-flipper-text-color);\n}\n.digital:after {\n  top: 50%;\n  bottom: 0;\n  border-radius: 0 0 var(--yz-clock-flipper-border-radius)\n    var(--yz-clock-flipper-border-radius);\n  border-top: solid var(--yz-clock-flipper-gap)\n    var(--yz-clock-flipper-text-color);\n  /* 下半张”纸牌只显示文字的下半部分，并且与“上半张”纸牌衔接在一起 */\n  line-height: 0;\n}\n\n.digital.number_0:before,\n.digital.number_0:after {\n  content: \"0\";\n}\n.digital.number_1:before,\n.digital.number_1:after {\n  content: \"1\";\n}\n.digital.number_2:before,\n.digital.number_2:after {\n  content: \"2\";\n}\n.digital.number_3:before,\n.digital.number_3:after {\n  content: \"3\";\n}\n.digital.number_4:before,\n.digital.number_4:after {\n  content: \"4\";\n}\n.digital.number_5:before,\n.digital.number_5:after {\n  content: \"5\";\n}\n.digital.number_6:before,\n.digital.number_6:after {\n  content: \"6\";\n}\n.digital.number_7:before,\n.digital.number_7:after {\n  content: \"7\";\n}\n.digital.number_8:before,\n.digital.number_8:after {\n  content: \"8\";\n}\n.digital.number_9:before,\n.digital.number_9:after {\n  content: \"9\";\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted } from \"vue\";\nimport {\n  useVisible$,\n  Timeline,\n  TWEEN,\n  type EasingFunction,\n  DrawContext\n} from \"@zyzgroup/core-web\";\nimport Button from \"../form/Button.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Button, Box },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    easeName: string;\n    easeFunction: EasingFunction;\n    canvasWidth?: number;\n    canvasHeight?: number;\n    graphHorizontalGap?: number;\n    graphVerticalGap?: number;\n    easeDuration?: number;\n    isSelected?: boolean;\n  }>(),\n  {\n    canvasWidth: 180,\n    canvasHeight: 100,\n    graphHorizontalGap: 5,\n    graphVerticalGap: 20,\n    easeDuration: 2000,\n    isSelected: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"mount\", easeName: string, easeFunction: EasingFunction): void;\n  (event: \"start\", easeName: string, easeFunction: EasingFunction): void;\n  (event: \"complete\", easeName: string, easeFunction: EasingFunction): void;\n  (event: \"select\", easeName: string, easeFunction: EasingFunction): void;\n}>();\n\nlet drawContext: DrawContext;\nlet subscription: any;\nlet isRunning = false;\n\nconst start = (ctx, box) => {\n  if (subscription) {\n    return;\n  }\n  drawContext = ctx;\n  emits(\"mount\", props.easeName, props.easeFunction);\n  subscription = useVisible$(box.el).subscribe((v) => {\n    if (!v) {\n      return;\n    }\n    if (isRunning) {\n      return;\n    }\n    forceStart();\n  });\n};\n\nconst forceStart = () => {\n  isRunning = true;\n\n  emits(\"start\", props.easeName, props.easeFunction);\n\n  // 背景颜色\n  drawContext.ctx.fillStyle = \"rgb(250,250,250)\";\n  drawContext.ctx.fillRect(0, 0, props.canvasWidth, props.canvasHeight);\n\n  drawContext.ctx.lineWidth = 0.5;\n  drawContext.ctx.strokeStyle = \"rgb(230,230,230)\";\n  drawContext.ctx.beginPath();\n  // 上线\n  drawContext.ctx.moveTo(0, props.graphVerticalGap);\n  drawContext.ctx.lineTo(props.canvasWidth, props.graphVerticalGap);\n  // 下线\n  drawContext.ctx.moveTo(0, props.canvasHeight - props.graphVerticalGap);\n  drawContext.ctx.lineTo(\n    props.canvasWidth,\n    props.canvasHeight - props.graphVerticalGap\n  );\n  drawContext.ctx.closePath();\n  drawContext.ctx.stroke();\n\n  drawContext.ctx.lineWidth = 2;\n  drawContext.ctx.strokeStyle = \"rgb(255,127,127)\";\n\n  const position = {\n    x: props.graphHorizontalGap,\n    y: props.canvasHeight - props.graphVerticalGap\n  };\n  const position_prev = {\n    x: props.graphHorizontalGap,\n    y: props.canvasHeight - props.graphVerticalGap\n  };\n\n  const tl = new Timeline({ frameDuration: props.easeDuration });\n  // x轴匀速变化\n  tl.addTween(\n    position,\n    { x: props.canvasWidth - props.graphHorizontalGap },\n    {\n      frames: 1,\n      delay: 0,\n      easeFunction: TWEEN.Easing.Linear.None,\n      onUpdate: (d) => {\n        position.x = d.x;\n      },\n      onComplete: () => {}\n    }\n  );\n  // y轴 easeFunction 变化\n  tl.addTween(\n    position,\n    { y: props.graphVerticalGap },\n    {\n      frames: 1,\n      delay: 0,\n      easeFunction: props.easeFunction,\n      onUpdate: (d) => {\n        position.y = d.y;\n        drawContext.ctx.beginPath();\n        drawContext.ctx.moveTo(position_prev.x, position_prev.y);\n        drawContext.ctx.lineTo(position.x, position.y);\n        drawContext.ctx.closePath();\n        drawContext.ctx.stroke();\n        position_prev.x = position.x;\n        position_prev.y = position.y;\n      },\n      onComplete: () => {\n        emits(\"complete\", props.easeName, props.easeFunction);\n        isRunning = false;\n      }\n    }\n  );\n  tl.play();\n};\n\nconst select = () => {\n  emits(\"select\", props.easeName, props.easeFunction);\n};\n\nonUnmounted(() => {\n  subscription?.unsubscribe();\n});\n\ndefineExpose({ start: forceStart });\n</script>\n\n<template>\n  <div class=\"ease-graph-display\">\n    <div>缓动：{{ easeName }}</div>\n    <div>\n      <div>\n        <Button\n          stylePattern=\"outline\"\n          height=\"32px\"\n          padding=\"10px\"\n          @click=\"forceStart\"\n        >\n          开始\n        </Button>\n      </div>\n      <div>\n        <Button\n          :stylePattern=\"props.isSelected ? 'fullfill' : 'outline'\"\n          height=\"32px\"\n          padding=\"10px\"\n          @click=\"select\"\n        >\n          选择\n        </Button>\n      </div>\n    </div>\n    <div\n      :style=\"{\n        width: canvasWidth + 'px',\n        height: canvasHeight + 'px',\n        backgroundColor: '#ffffff'\n      }\"\n    >\n      <Box\n        type=\"canvas\"\n        @start=\"start\"\n      ></Box>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.ease-graph-display {\n  display: inline-block;\n}\n.ease-graph-display > div:nth-child(1) {\n  margin-top: 10px;\n  font-size: 14px;\n}\n.ease-graph-display > div:nth-child(2) {\n  margin-bottom: 10px;\n}\n.ease-graph-display > div:nth-child(2) > div {\n  display: inline-block;\n}\n.ease-graph-display > div:nth-child(2) > div + div {\n  margin-left: 10px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport {\n  ScheduleDependOnResult,\n  createTask,\n  deferred\n} from \"@zyzgroup/core-common\";\nimport { TWEEN, type EasingFunction } from \"@zyzgroup/core-web\";\nimport EaseGraphDisplay from \"./EaseGraphDisplay.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { EaseGraphDisplay },\n  inheritAttrs: true\n});\n\nconst defaultEaseDuration = 2000;\n\nconst props = withDefaults(\n  defineProps<{\n    easeList?: {\n      easeName: string;\n      easeFunction?: EasingFunction;\n      easeDuration?: number;\n    }[];\n  }>(),\n  {\n    easeList: () => [\n      {\n        easeName: \"Linear\",\n        easeFunction: TWEEN.Easing.Linear.None\n      },\n      {\n        easeName: \"QuadraticIn\",\n        easeFunction: TWEEN.Easing.Quadratic.In\n      },\n      {\n        easeName: \"QuadraticOut\",\n        easeFunction: TWEEN.Easing.Quadratic.Out\n      },\n      {\n        easeName: \"QuadraticInOut\",\n        easeFunction: TWEEN.Easing.Quadratic.InOut\n      },\n      {\n        easeName: \"CubicIn\",\n        easeFunction: TWEEN.Easing.Cubic.In\n      },\n      {\n        easeName: \"CubicOut\",\n        easeFunction: TWEEN.Easing.Cubic.Out\n      },\n      {\n        easeName: \"CubicInOut\",\n        easeFunction: TWEEN.Easing.Cubic.InOut\n      },\n      {\n        easeName: \"QuarticIn\",\n        easeFunction: TWEEN.Easing.Quartic.In\n      },\n      {\n        easeName: \"QuarticOut\",\n        easeFunction: TWEEN.Easing.Quartic.Out\n      },\n      {\n        easeName: \"QuarticInOut\",\n        easeFunction: TWEEN.Easing.Quartic.InOut\n      },\n      {\n        easeName: \"QuinticIn\",\n        easeFunction: TWEEN.Easing.Quintic.In\n      },\n      {\n        easeName: \"QuinticOut\",\n        easeFunction: TWEEN.Easing.Quintic.Out\n      },\n      {\n        easeName: \"QuinticInOut\",\n        easeFunction: TWEEN.Easing.Quintic.InOut\n      },\n      {\n        easeName: \"SinusoidalIn\",\n        easeFunction: TWEEN.Easing.Sinusoidal.In\n      },\n      {\n        easeName: \"SinusoidalOut\",\n        easeFunction: TWEEN.Easing.Sinusoidal.Out\n      },\n      {\n        easeName: \"SinusoidalInOut\",\n        easeFunction: TWEEN.Easing.Sinusoidal.InOut\n      },\n      {\n        easeName: \"ExponentialIn\",\n        easeFunction: TWEEN.Easing.Exponential.In\n      },\n      {\n        easeName: \"ExponentialOut\",\n        easeFunction: TWEEN.Easing.Exponential.Out\n      },\n      {\n        easeName: \"ExponentialInOut\",\n        easeFunction: TWEEN.Easing.Exponential.InOut\n      },\n      {\n        easeName: \"CircularIn\",\n        easeFunction: TWEEN.Easing.Circular.In\n      },\n      {\n        easeName: \"CircularOut\",\n        easeFunction: TWEEN.Easing.Circular.Out\n      },\n      {\n        easeName: \"CircularInOut\",\n        easeFunction: TWEEN.Easing.Circular.InOut\n      },\n      {\n        easeName: \"ElasticIn\",\n        easeFunction: TWEEN.Easing.Elastic.In\n      },\n      {\n        easeName: \"ElasticOut\",\n        easeFunction: TWEEN.Easing.Elastic.Out\n      },\n      {\n        easeName: \"ElasticInOut\",\n        easeFunction: TWEEN.Easing.Elastic.InOut\n      },\n      {\n        easeName: \"BackIn\",\n        easeFunction: TWEEN.Easing.Back.In\n      },\n      {\n        easeName: \"BackOut\",\n        easeFunction: TWEEN.Easing.Back.Out\n      },\n      {\n        easeName: \"BackInOut\",\n        easeFunction: TWEEN.Easing.Back.InOut\n      },\n      {\n        easeName: \"BounceIn\",\n        easeFunction: TWEEN.Easing.Bounce.In\n      },\n      {\n        easeName: \"BounceOut\",\n        easeFunction: TWEEN.Easing.Bounce.Out\n      },\n      {\n        easeName: \"BounceInOut\",\n        easeFunction: TWEEN.Easing.Bounce.InOut\n      },\n      {\n        easeName: \"generatePow(10)In\",\n        easeFunction: TWEEN.Easing.generatePow(10).In\n      },\n      {\n        easeName: \"generatePow(10)Out\",\n        easeFunction: TWEEN.Easing.generatePow(10).Out\n      },\n      {\n        easeName: \"generatePow(10)InOut\",\n        easeFunction: TWEEN.Easing.generatePow(10).InOut\n      },\n      {\n        easeName: \"4 steps\",\n        easeFunction: TWEEN.Easing.createStep(4)\n      },\n      {\n        easeName: \"8 steps\",\n        easeFunction: TWEEN.Easing.createStep(8)\n      },\n      {\n        easeName: \"12 steps\",\n        easeFunction: TWEEN.Easing.createStep(12)\n      },\n      {\n        easeName: \"16 steps\",\n        easeFunction: TWEEN.Easing.createStep(16)\n      },\n      {\n        easeName: \"Noisy Exponential.InOut\",\n        easeFunction: TWEEN.Easing.createNoisyEasing(\n          TWEEN.Easing.Exponential.InOut,\n          0.1\n        )\n      },\n      {\n        easeName: \"Noisy Elastic.InOut\",\n        easeFunction: TWEEN.Easing.createNoisyEasing(\n          TWEEN.Easing.Elastic.InOut,\n          0.2\n        )\n      },\n      {\n        easeName: \"Noisy Circular.InOut\",\n        easeFunction: TWEEN.Easing.createNoisyEasing(\n          TWEEN.Easing.Circular.InOut,\n          0.1\n        )\n      },\n      {\n        easeName: \"swing\",\n        easeFunction: TWEEN.Easing.swing\n      },\n      {\n        easeName: \"causeSeizures\",\n        easeFunction: TWEEN.Easing.causeSeizures\n      }\n    ]\n  }\n);\n\nconst emits = defineEmits<{\n  (\n    event: \"selectedEaseFunction\",\n    easeName: string,\n    easeFunction: EasingFunction\n  ): void;\n}>();\n\nconst children: Record<string, any> = {};\nfunction setChildRef(el: any, easeName: string) {\n  if (el) {\n    children[easeName] = { el, defer: deferred() };\n  }\n}\n\n// 初次加载全部执行一遍\nconst schedule = new ScheduleDependOnResult({ concurrency: 10 });\nfunction onMount(easeName: string) {\n  schedule.asap(\n    createTask({\n      fn: () => {\n        children[easeName].el.start();\n        return children[easeName].defer.promise;\n      }\n    })\n  );\n}\n\nfunction onComplete(easeName: string) {\n  const child = children[easeName];\n  if (child) {\n    child.defer.resolve();\n    delete children[easeName];\n  }\n}\n\nconst selectedEaseName = ref(\"Linear\");\nfunction onSelect(easeName: string, easeFunction: EasingFunction) {\n  selectedEaseName.value = easeName;\n  emits(\"selectedEaseFunction\", easeName, easeFunction);\n}\n\nonMounted(() => {\n  onSelect(\"Linear\", TWEEN.Easing.Linear.None);\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div>\n    <template\n      v-for=\"ease in props.easeList\"\n      :key=\"ease.easeName\"\n    >\n      <div class=\"ease-graph-display-wrap\">\n        <EaseGraphDisplay\n          v-if=\"ease.easeFunction\"\n          :easeName=\"ease.easeName\"\n          :easeFunction=\"ease.easeFunction\"\n          :easeDuration=\"ease.easeDuration || defaultEaseDuration\"\n          :isSelected=\"selectedEaseName == ease.easeName\"\n          @mount=\"onMount\"\n          @select=\"onSelect\"\n          @complete=\"onComplete\"\n          :ref=\"(el) => setChildRef(el, ease.easeName)\"\n        />\n      </div>\n    </template>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.ease-graph-display-wrap {\n  display: inline-block;\n  margin-right: 10px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted } from \"vue\";\nimport {\n  useVisible$,\n  Timeline,\n  TWEEN,\n  DrawContext,\n  type InterpolationFunction\n} from \"@zyzgroup/core-web\";\nimport Button from \"../form/Button.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Button, Box },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    interpolationName: string;\n    interpolationFunction: InterpolationFunction;\n    canvasWidth?: number;\n    canvasHeight?: number;\n    interpolationDuration?: number;\n  }>(),\n  {\n    canvasWidth: 240,\n    canvasHeight: 160,\n    interpolationDuration: 2000\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"mount\", easeName: string): void;\n  (event: \"start\", easeName: string): void;\n  (event: \"complete\", easeName: string): void;\n}>();\n\nlet drawContext: DrawContext;\nlet subscription: any;\nlet isRunning = false;\n\nconst start = (ctx, box) => {\n  if (subscription) {\n    return;\n  }\n  drawContext = ctx;\n  emits(\"mount\", props.interpolationName);\n  subscription = useVisible$(box.el).subscribe((v) => {\n    if (!v) {\n      return;\n    }\n    if (isRunning) {\n      return;\n    }\n    forceStart();\n  });\n};\n\nconst min = 1 / 6;\nconst max = 5 / 6;\n\nconst x0 = props.canvasWidth * min;\nconst y0 = props.canvasHeight / 2;\n\nconst xA = [props.canvasWidth * max, props.canvasWidth / 2];\nconst yA = [props.canvasHeight * min, props.canvasHeight * max];\n\n/// start === end\nconst xB = [...xA, x0];\nconst yB = [...yA, y0];\n\nconst forceStart = () => {\n  isRunning = true;\n\n  emits(\"start\", props.interpolationName);\n\n  // 背景颜色\n  drawContext.ctx.fillStyle = \"rgb(250,250,250)\";\n  drawContext.ctx.fillRect(0, 0, props.canvasWidth, props.canvasHeight);\n\n  drawContext.ctx.fillStyle = \"rgb(200,200,200)\";\n  drawContext.ctx.fillRect(x0 - 3, y0 - 3, 6, 6);\n  drawContext.ctx.fillRect(xA[xA.length - 1] - 3, yA[yA.length - 1] - 3, 6, 6);\n\n  for (let i = 0; i < xA.length; i++) {\n    drawContext.ctx.fillRect(xA[i] - 2, yA[i] - 2, 4, 4);\n  }\n\n  const tl = new Timeline({ frameDuration: props.interpolationDuration });\n\n  tl.addTween(\n    { x: x0, y: y0, old: { x: x0, y: y0 } },\n    { x: xA, y: yA },\n    {\n      frames: 1,\n      delay: 0,\n      easeFunction: TWEEN.Easing.Linear.None,\n      interpolationFunction: props.interpolationFunction,\n      onUpdate: (object) => {\n        drawContext.ctx.lineWidth = 2;\n        drawContext.ctx.strokeStyle = \"rgba(255,127,127,0.9)\";\n\n        drawContext.ctx.beginPath();\n        drawContext.ctx.moveTo(object.old.x, object.old.y);\n        drawContext.ctx.lineTo(object.x, object.y);\n        drawContext.ctx.closePath();\n        drawContext.ctx.stroke();\n\n        object.old.x = object.x;\n        object.old.y = object.y;\n      },\n      onComplete: () => {}\n    }\n  );\n\n  tl.addTween(\n    { x: x0, y: y0, old: { x: x0, y: y0 } },\n    { x: xB, y: yB },\n    {\n      frames: 1,\n      delay: 0,\n      easeFunction: TWEEN.Easing.Linear.None,\n      interpolationFunction: props.interpolationFunction,\n      onUpdate: (object) => {\n        drawContext.ctx.lineWidth = 2;\n        drawContext.ctx.strokeStyle = \"rgba(255,127,127,0.5)\";\n\n        drawContext.ctx.beginPath();\n        drawContext.ctx.moveTo(object.old.x, object.old.y);\n        drawContext.ctx.lineTo(object.x, object.y);\n        drawContext.ctx.closePath();\n        drawContext.ctx.stroke();\n\n        object.old.x = object.x;\n        object.old.y = object.y;\n      },\n      onComplete: () => {\n        emits(\"complete\", props.interpolationName);\n        isRunning = false;\n      }\n    }\n  );\n  tl.play();\n};\n\nonUnmounted(() => {\n  subscription?.unsubscribe();\n});\n\ndefineExpose({ start: forceStart });\n</script>\n\n<template>\n  <div class=\"interpolation-graph-display\">\n    <div>\n      插值：{{ interpolationName }}\n      <Button\n        stylePattern=\"outline\"\n        height=\"32px\"\n        @click=\"forceStart\"\n      >\n        开始\n      </Button>\n    </div>\n    <div\n      :style=\"{\n        width: canvasWidth + 'px',\n        height: canvasHeight + 'px',\n        backgroundColor: '#ffffff'\n      }\"\n    >\n      <Box\n        type=\"canvas\"\n        @start=\"start\"\n      ></Box>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.interpolation-graph-display {\n  display: inline-block;\n}\n.interpolation-graph-display > div:nth-child(1) {\n  margin-top: 10px;\n  margin-bottom: 10px;\n  font-size: 14px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n  ScheduleDependOnResult,\n  createTask,\n  deferred\n} from \"@zyzgroup/core-common\";\nimport { TWEEN, type InterpolationFunction } from \"@zyzgroup/core-web\";\nimport InterpolationGraphDisplay from \"./InterpolationGraphDisplay.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { InterpolationGraphDisplay },\n  inheritAttrs: true\n});\n\nconst defaultEaseDuration = 2000;\n\nconst props = withDefaults(\n  defineProps<{\n    interpolationList?: {\n      interpolationName: string;\n      interpolationFunction: InterpolationFunction;\n      easeDuration?: number;\n    }[];\n  }>(),\n  {\n    interpolationList: () => [\n      {\n        interpolationName: \"Linear\",\n        interpolationFunction: TWEEN.Interpolation.Linear\n      },\n      {\n        interpolationName: \"Bezier\",\n        interpolationFunction: TWEEN.Interpolation.Bezier\n      },\n      {\n        interpolationName: \"CatmullRom\",\n        interpolationFunction: TWEEN.Interpolation.CatmullRom\n      }\n    ]\n  }\n);\n\nconst emits = defineEmits<{\n  // (event: \"click\"): void;\n}>();\n\nconst children: Record<string, any> = {};\nfunction setChild(el: any, interpolationName: string) {\n  if (el) {\n    children[interpolationName] = { el, defer: deferred() };\n  }\n}\n\n// 初次加载全部执行一遍\nconst schedule = new ScheduleDependOnResult({ concurrency: 1 });\nfunction onMount(interpolationName: string) {\n  schedule.asap(\n    createTask({\n      fn: () => {\n        children[interpolationName].el.start();\n        return children[interpolationName].defer.promise;\n      }\n    })\n  );\n}\n\nfunction onComplete(interpolationName: string) {\n  const child = children[interpolationName];\n  if (child) {\n    child.defer.resolve();\n    delete children[interpolationName];\n  }\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <div>\n    <template\n      v-for=\"interpolation in props.interpolationList\"\n      :key=\"interpolation.interpolationName\"\n    >\n      <div class=\"interpolation-graph-display-wrap\">\n        <InterpolationGraphDisplay\n          :interpolationName=\"interpolation.interpolationName\"\n          :interpolationFunction=\"interpolation.interpolationFunction\"\n          :easeDuration=\"interpolation.easeDuration || defaultEaseDuration\"\n          @mount=\"onMount\"\n          @complete=\"onComplete\"\n          :ref=\"(el) => setChild(el, interpolation.interpolationName)\"\n        />\n      </div>\n    </template>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  color: v-bind(fontColor);\n-->\n<style scoped>\n.interpolation-graph-display-wrap {\n  display: inline-block;\n  margin-right: 10px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"\" | \"slide\";\n    dur?: number;\n    perspective?: string;\n  }>(),\n  {\n    type: \"\",\n    dur: 500,\n    perspective: \"600px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"click\", isFlipped: boolean): void;\n}>();\n\nconst flip = ref(false);\nconst click = () => {\n  flip.value = !flip.value;\n  emits(\"click\", flip.value);\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"card-flip-scene\"\n    :style=\"{ perspective: props.perspective }\"\n  >\n    <div\n      class=\"card\"\n      :class=\"[props.type, { flip }]\"\n      :style=\"{\n        transition: `transform ${props.dur}ms`\n      }\"\n      @click=\"click\"\n    >\n      <div class=\"face front\"><slot name=\"front\">front</slot></div>\n      <div class=\"face back\"><slot name=\"back\">back</slot></div>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  border: 1px solid v-bind(borderColor);\n-->\n<style scoped>\n.card-flip-scene {\n  width: 100%;\n  height: 100%;\n  cursor: pointer;\n}\n.card {\n  width: 100%;\n  height: 100%;\n  position: relative;\n  transform-style: preserve-3d;\n}\n.card.slide {\n  transform-origin: center right;\n}\n.card.flip {\n  transform: rotateY(180deg);\n}\n.card.slide.flip {\n  transform: translateX(-100%) rotateY(-180deg);\n}\n.face {\n  position: absolute;\n  height: 100%;\n  width: 100%;\n  backface-visibility: hidden;\n}\n.face > :nth-child(1) {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.back {\n  transform: rotateY(180deg);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport { injectStyle } from \"@zyzgroup/core-web\";\nimport RadioGroup from \"../form/RadioGroup.vue\";\nimport CheckboxGroup from \"../form/CheckboxGroup.vue\";\nimport InputRange from \"../form/InputRange.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { RadioGroup, CheckboxGroup, InputRange },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    width?: number;\n    height?: number;\n    dur?: number;\n    perspective?: number; // perspective 定义摄像机（也就是作为观众的我们）到屏幕的距离 : 100px ~ 2000px | none\n  }>(),\n  { width: 200, height: 200, dur: 1000, perspective: 400 }\n);\n\nconst emits = defineEmits<{\n  // (event: \"click\", isFlipped: boolean): void;\n}>();\n\nconst hW = ref(Math.floor(props.width / 2));\n// const hH = ref(Math.floor(props.height / 2));\nconst styleSheet = `\n  :root {\n    --spin-cube-z: -${hW.value}px;\n  }\n  :host {\n    --spin-cube-z: -${hW.value}px;\n  }\n`;\nconst container = ref();\nwatch(container, () => {\n  if (!container.value) {\n    return;\n  }\n  injectStyle(styleSheet, container.value);\n});\n\n/// perspective: 400px;\nconst p = ref(props.perspective + \"px\");\nconst perspectiveChange = (v: number) => {\n  p.value = v == 2000 ? \"none\" : v + \"px\";\n};\n\n/// perspective-origin 定义摄像机观察到的画面中的灭点（vanishing point）的位置\n/// perspective-origin: 50% 50%;\nconst pox = ref(\"50%\");\nconst perspectiveOriginXChange = (v: number) => {\n  pox.value = v + \"%\";\n};\nconst poy = ref(\"50%\");\nconst perspectiveOriginYChange = (v: number) => {\n  poy.value = v + \"%\";\n};\n\n/// cube transform\nconst b = `translateZ(-${hW.value}px)`;\nconst cubeT = ref(b);\nconst sideChange = (side: string) => {\n  switch (side) {\n    case \"front\":\n      cubeT.value = b + \" rotateY(0deg)\";\n      break;\n    case \"right\":\n      cubeT.value = b + \" rotateY(-90deg)\";\n      break;\n    case \"back\":\n      cubeT.value = b + \" rotateY(-180deg)\";\n      break;\n    case \"left\":\n      cubeT.value = b + \" rotateY(90deg)\";\n      break;\n    case \"top\":\n      cubeT.value = b + \" rotateX(-90deg)\";\n      break;\n    case \"bottom\":\n      cubeT.value = b + \" rotateX(90deg)\";\n      break;\n    default:\n      cubeT.value = b;\n      break;\n  }\n};\n\n/// animation: spinCube 8s infinite ease-in-out;\nconst cubeA = ref(false);\nconst spinCubeChange = (a: string[]) => {\n  if (a.length) {\n    cubeA.value = true;\n  } else {\n    cubeA.value = false;\n  }\n};\n\n/// backface-visibility: hidden;\nconst bv = ref<\"visible\" | \"hidden\">(\"visible\");\nconst backVisibleChange = (a: string[]) => {\n  if (a.length) {\n    bv.value = \"visible\";\n  } else {\n    bv.value = \"hidden\";\n  }\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <div ref=\"container\">\n    <div\n      class=\"cube-scene\"\n      :style=\"{\n        width: `${props.width}px`,\n        height: `${props.height}px`,\n        perspective: `${p}`,\n        perspectiveOrigin: `${pox} ${poy}`\n      }\"\n    >\n      <div\n        class=\"cube\"\n        :class=\"{ spinning: cubeA }\"\n        :style=\"{\n          transformStyle: `preserve-3d`,\n          transform: cubeT,\n          transition: `transform ${props.dur}ms`\n        }\"\n      >\n        <div\n          class=\"face front\"\n          :style=\"{\n            transform: `rotateY(0deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"front\">front</slot>\n        </div>\n        <div\n          class=\"face back\"\n          :style=\"{\n            transform: `rotateY(180deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"back\">back</slot>\n        </div>\n        <div\n          class=\"face right\"\n          :style=\"{\n            transform: `rotateY(90deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"right\">right</slot>\n        </div>\n        <div\n          class=\"face left\"\n          :style=\"{\n            transform: `rotateY(-90deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"left\">left</slot>\n        </div>\n        <div\n          class=\"face top\"\n          :style=\"{\n            transform: `rotateX(90deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"top\">top</slot>\n        </div>\n        <div\n          class=\"face bottom\"\n          :style=\"{\n            transform: `rotateX(-90deg) translateZ(${hW}px)`,\n            backfaceVisibility: bv\n          }\"\n        >\n          <slot name=\"bottom\">bottom</slot>\n        </div>\n      </div>\n    </div>\n    <div>\n      <RadioGroup\n        :options=\"['front', 'right', 'back', 'left', 'top', 'bottom']\"\n        @change=\"sideChange\"\n      ></RadioGroup>\n    </div>\n    <div>\n      <CheckboxGroup\n        :options=\"['Backface visible']\"\n        @change=\"backVisibleChange\"\n      ></CheckboxGroup>\n    </div>\n    <div>\n      <CheckboxGroup\n        :options=\"['spin cube']\"\n        @change=\"spinCubeChange\"\n      ></CheckboxGroup>\n    </div>\n    <div>\n      perspective:\n      <InputRange\n        :min=\"1\"\n        :max=\"2000\"\n        :defaultValue=\"props.perspective\"\n        unit=\"px\"\n        @change=\"perspectiveChange\"\n      ></InputRange>\n    </div>\n    <div>\n      perspective-origin x:\n      <InputRange\n        :min=\"0\"\n        :max=\"100\"\n        :defaultValue=\"50\"\n        unit=\"%\"\n        @change=\"perspectiveOriginXChange\"\n      ></InputRange>\n    </div>\n    <div>\n      perspective-origin y:\n      <InputRange\n        :min=\"0\"\n        :max=\"100\"\n        :defaultValue=\"50\"\n        unit=\"%\"\n        @change=\"perspectiveOriginYChange\"\n      ></InputRange>\n    </div>\n  </div>\n</template>\n\n<!--\n  ce 中不要使用v-bind\n  border: 1px solid v-bind(borderColor);\n-->\n<style scoped>\n.cube {\n  position: relative;\n  width: 100%;\n  height: 100%;\n}\n.face {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n}\n.front {\n  background: hsla(0, 100%, 50%, 0.7);\n}\n.right {\n  background: hsla(60, 100%, 50%, 0.7);\n}\n.back {\n  background: hsla(120, 100%, 50%, 0.7);\n}\n.left {\n  background: hsla(180, 100%, 50%, 0.7);\n}\n.top {\n  background: hsla(240, 100%, 50%, 0.7);\n}\n.bottom {\n  background: hsla(300, 100%, 50%, 0.7);\n}\n\n.spinning {\n  animation: spinCube 8s infinite ease-in-out;\n}\n@keyframes spinCube {\n  0% {\n    transform: translateZ(var(--spin-cube-z)) rotateX(0deg) rotateY(0deg);\n  }\n  100% {\n    transform: translateZ(var(--spin-cube-z)) rotateX(360deg) rotateY(360deg);\n  }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, reactive } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n    dur?: number;\n  }>(),\n  {\n    color: \"#3cefff\",\n    dur: 750\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst style = reactive<Record<string, string>>({\n  transition: `box-shadow ${props.dur}ms`,\n  borderRadius: \"100%\"\n});\n\nconst resize = (box) => {\n  style.width = style.height =\n    Math.ceil(Math.max(box.rect.width, box.rect.height)) + \"px\";\n  start();\n};\n\nconst start = () => {\n  const c = __color.set(props.color).setAlpha(0.2).toString();\n  style.boxShadow = `\n    inset ${style.width} 0 0 ${c},\n    inset 0 ${style.width} 0 ${c},\n    inset -${style.width} 0 0 ${c},\n    inset 0 -${style.width} 0 ${c}\n  `;\n};\n\nconst end = () => {\n  style.boxShadow = `\n    inset 0.5em 0 0 rgba(255, 0, 0, 0.5),\n    inset 0 0.5em 0 rgba(252, 150, 0, 0.5),\n    inset -0.5em 0 0 rgba(0, 255, 0, 0.5),\n    inset 0 -0.5em 0 rgba(0, 150, 255, 0.5)\n  `;\n};\n\ndefineExpose({ start, end });\n</script>\n\n<template>\n  <Box\n    class=\"circle\"\n    display=\"shrink\"\n    @resize=\"resize\"\n  >\n    <div\n      class=\"circle-before\"\n      :style=\"style\"\n    ></div>\n    <div class=\"circle-inner\">\n      <slot></slot>\n    </div>\n  </Box>\n</template>\n\n<style scoped>\n.circle-before {\n  position: absolute;\n  z-index: 2;\n}\n.circle-inner {\n  position: relative;\n  z-index: 1;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    text?: string;\n    textSize?: number;\n    borderColor?: string;\n    borderWidth?: number;\n    borderRadius?: number;\n  }>(),\n  {\n    text: \"\",\n    textSize: 12,\n    borderColor: \"#5a82f0\",\n    borderWidth: 2,\n    borderRadius: 8\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst isFocus = ref(false);\nconst start = () => {\n  isFocus.value = true;\n};\nconst end = () => {\n  isFocus.value = false;\n};\n\ndefineExpose({ start, end });\n</script>\n\n<template>\n  <Box\n    class=\"border-focus-text\"\n    display=\"shrink\"\n  >\n    <div\n      class=\"text\"\n      v-if=\"isFocus\"\n      :style=\"{\n        fontSize: `${textSize}px`,\n        top: `${-Math.ceil(textSize / 2) - 4}px`,\n        padding: '4px 12px',\n        backgroundColor: borderColor,\n        borderRadius: `${textSize}px 0 ${textSize}px 0`,\n        color: __color\n          .set(borderColor)\n          .opposite(true, '#333333', '#ffffff')\n          .toString()\n      }\"\n    >\n      {{ props.text }}\n    </div>\n    <div\n      class=\"inner\"\n      :style=\"{\n        border: `${borderWidth}px solid ${\n          isFocus ? borderColor : 'transparent'\n        }`,\n        borderRadius: `${borderRadius}px`\n      }\"\n    >\n      <slot></slot>\n    </div>\n  </Box>\n</template>\n\n<style scoped>\n.text {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n}\n.inner {\n  position: relative;\n  overflow: hidden;\n  box-sizing: border-box;\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 } from \"vue\";\nimport Container from \"../Container.vue\";\nimport SVGMaskNapkin from \"../svg/SVGMaskNapkin.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Container, SVGMaskNapkin },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    maskMode?: \"alaph\" | \"luminance\" | \"match-source\"; // 使用「不透明度」或「亮度值」作为 mask value, 数值越大越暴露\n    imageUrl?: string;\n  }>(),\n  {\n    maskMode: \"alaph\",\n    // imageUrl: \"https://github.githubassets.com/pinned-octocat.svg\"\n    imageUrl: \"\"\n  }\n);\n\nconst width = ref(0);\nconst height = ref(0);\nconst resize = (controller) => {\n  width.value = controller.rect.width;\n  height.value = controller.rect.height;\n};\n\n// mask-composite: add; /* 叠加（默认） */\n// mask-composite: subtract; /* 减去，排除掉上层的区域 */\n// mask-composite: intersect; /* 相交，只显示重合的地方 */\n// mask-composite: exclude; /* 排除，只显示不重合的地方 */\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    :style=\"{\n      width: `${width}px`,\n      height: `${height}px`,\n      maskImage: props.imageUrl ? `url(${props.imageUrl})` : `url(#mask)`,\n      'mask-mode': props.maskMode\n    }\"\n  >\n    <!-- slot 必须包含 #mask 元素 -->\n    <slot name=\"mask\"><SVGMaskNapkin></SVGMaskNapkin></slot>\n    <Container\n      type=\"shrink\"\n      @ready=\"resize\"\n      @update=\"resize\"\n    >\n      <slot></slot>\n    </Container>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { reactive } from \"vue\";\nimport Container, {\n  ContainerType,\n  EffectTriggerTiming\n} from \"../Container.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Container },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    containerType?: ContainerType;\n    supportCopyText?: boolean;\n    effectTriggerTiming?: EffectTriggerTiming;\n    color?: string;\n    dur?: number;\n    direction?: \"up\" | \"down\" | \"left\" | \"right\";\n  }>(),\n  {\n    containerType: \"shrink\",\n    supportCopyText: true,\n    effectTriggerTiming: \"mouseMove\",\n    color: \"#3cefff\",\n    dur: 200,\n    direction: \"up\"\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst style = reactive<Record<string, string>>({});\n\nconst start = () => {\n  switch (props.direction) {\n    case \"left\":\n      style.transformOrigin = \"center left\";\n      style.transform = \"scaleX(0)\";\n      break;\n    case \"right\":\n      style.transformOrigin = \"center right\";\n      style.transform = \"scaleX(0)\";\n      break;\n    case \"down\":\n      style.transformOrigin = \"center bottom\";\n      style.transform = \"scaleY(0)\";\n      break;\n    case \"up\":\n      style.transformOrigin = \"center top\";\n      style.transform = \"scaleY(0)\";\n      break;\n  }\n};\nconst end = () => {\n  switch (props.direction) {\n    case \"left\":\n      style.transformOrigin = \"center right\";\n      style.transform = \"scaleX(1)\";\n      break;\n    case \"right\":\n      style.transformOrigin = \"center left\";\n      style.transform = \"scaleX(1)\";\n      break;\n    case \"down\":\n      style.transformOrigin = \"center top\";\n      style.transform = \"scaleY(1)\";\n      break;\n    case \"up\":\n      style.transformOrigin = \"center bottom\";\n      style.transform = \"scaleY(1)\";\n      break;\n  }\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <Container\n    :type=\"props.containerType\"\n    :supportCopyText=\"props.supportCopyText\"\n    :effectTriggerTiming=\"props.effectTriggerTiming\"\n    @start=\"start\"\n    @end=\"end\"\n    style=\"overflow: hidden\"\n  >\n    <div\n      class=\"slide-before\"\n      :style=\"{\n        backgroundColor: props.color,\n        transition: `transform ${props.dur}ms ease-in-out`,\n        ...style\n      }\"\n    ></div>\n    <div class=\"slide\">\n      <slot></slot>\n    </div>\n  </Container>\n</template>\n\n<style scoped>\n.slide-before {\n  position: absolute;\n  z-index: 0;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  width: 100%;\n  height: 100%;\n}\n.slide {\n  position: relative;\n  z-index: 1;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { reactive } from \"vue\";\nimport Container, {\n  ContainerType,\n  EffectTriggerTiming\n} from \"../Container.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Container },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    containerType?: ContainerType;\n    supportCopyText?: boolean;\n    effectTriggerTiming?: EffectTriggerTiming;\n    color?: string;\n    timeGap?: number;\n    direction?:\n      | \"fromBottomLeft\"\n      | \"fromBottomRight\"\n      | \"fromTopLeft\"\n      | \"fromTopRight\"\n      | \"fromCenter\";\n  }>(),\n  {\n    containerType: \"shrink\",\n    supportCopyText: true,\n    effectTriggerTiming: \"mouseMove\",\n    color: \"#3cefff\",\n    timeGap: 100,\n    direction: \"fromBottomLeft\"\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nconst style = reactive<Record<string, string>>({});\n\nlet ratio = 1;\nlet scale = ratio * 2;\nconst resize = (controller) => {\n  ratio = Math.ceil(\n    Math.max(controller.rect.width, controller.rect.height) /\n      Math.min(controller.rect.width, controller.rect.height)\n  );\n  scale = ratio * 2;\n  style.width = style.height =\n    Math.ceil(Math.min(controller.rect.width, controller.rect.height)) + \"px\";\n};\n\nconst start = () => {\n  switch (props.direction) {\n    case \"fromBottomLeft\":\n      style.top = \"100%\";\n      style.right = \"100%\";\n      style.transform = \"translate(50%, -50%) scale3d(0, 0, 0)\";\n      break;\n    case \"fromBottomRight\":\n      style.top = \"100%\";\n      style.left = \"100%\";\n      style.transform = `translate(-50%, -50%) scale3d(0, 0, 0)`;\n      break;\n    case \"fromTopLeft\":\n      style.bottom = \"100%\";\n      style.right = \"100%\";\n      style.transform = `translate(50%, 50%) scale3d(0, 0, 0)`;\n      break;\n    case \"fromTopRight\":\n      style.bottom = \"100%\";\n      style.left = \"100%\";\n      style.transform = `translate(-50%, 50%) scale3d(0, 0, 0)`;\n      break;\n    case \"fromCenter\":\n      style.top = \"50%\";\n      style.left = \"50%\";\n      style.transform = `translate(-50%, -50%) scale3d(0, 0, 0)`;\n      break;\n  }\n};\nconst end = () => {\n  switch (props.direction) {\n    case \"fromBottomLeft\":\n      style.top = \"100%\";\n      style.right = \"100%\";\n      style.transform = `translate(50%, -50%) scale3d(${scale}, ${scale}, ${scale})`;\n      break;\n    case \"fromBottomRight\":\n      style.top = \"100%\";\n      style.left = \"100%\";\n      style.transform = `translate(-50%, -50%) scale3d(${scale}, ${scale}, ${scale})`;\n      break;\n    case \"fromTopLeft\":\n      style.bottom = \"100%\";\n      style.right = \"100%\";\n      style.transform = `translate(50%, 50%) scale3d(${scale}, ${scale}, ${scale})`;\n      break;\n    case \"fromTopRight\":\n      style.bottom = \"100%\";\n      style.left = \"100%\";\n      style.transform = `translate(-50%, 50%) scale3d(${scale}, ${scale}, ${scale})`;\n      break;\n    case \"fromCenter\":\n      style.top = \"50%\";\n      style.left = \"50%\";\n      style.transform = `translate(-50%, -50%) scale3d(${scale}, ${scale}, ${scale})`;\n      break;\n  }\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <Container\n    :type=\"props.containerType\"\n    :supportCopyText=\"props.supportCopyText\"\n    :effectTriggerTiming=\"props.effectTriggerTiming\"\n    @start=\"start\"\n    @end=\"end\"\n    @ready=\"resize\"\n    @update=\"resize\"\n    style=\"overflow: hidden\"\n  >\n    <div\n      class=\"slide-corner-before\"\n      :style=\"{\n        backgroundColor: props.color,\n        borderRadius: '50%',\n        transition: `transform ${props.timeGap * ratio}ms ease-in-out`,\n        transformOrigin: 'center',\n        ...style\n      }\"\n    ></div>\n    <div class=\"slide-corner\">\n      <slot></slot>\n    </div>\n  </Container>\n</template>\n\n<style scoped>\n.slide-corner-before {\n  position: absolute;\n  z-index: 0;\n}\n.slide-corner {\n  position: relative;\n  z-index: 1;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { reactive } from \"vue\";\nimport Container, {\n  ContainerType,\n  EffectTriggerTiming\n} from \"../Container.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Container },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    containerType?: ContainerType;\n    supportCopyText?: boolean;\n    effectTriggerTiming?: EffectTriggerTiming;\n    color?: string;\n    timeGap?: number;\n    lineHeight?: number;\n    location?: \"underline\" | \"overline\" | \"through\";\n    direction?: \"right\" | \"left\" | \"fromCenter\";\n  }>(),\n  {\n    containerType: \"shrink\",\n    supportCopyText: true,\n    effectTriggerTiming: \"mouseMove\",\n    color: \"#3cefff\",\n    timeGap: 50,\n    lineHeight: 2,\n    location: \"underline\",\n    direction: \"right\"\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nlet ratio = 1;\nconst resize = (controller) => {\n  ratio = Math.ceil(\n    Math.max(controller.rect.width, controller.rect.height) /\n      Math.min(controller.rect.width, controller.rect.height)\n  );\n};\n\nconst style = reactive<Record<string, string>>({});\nswitch (props.location) {\n  case \"underline\":\n    style.bottom = \"0\";\n    break;\n  case \"overline\":\n    style.top = \"0\";\n    break;\n  case \"through\":\n    style.top = \"50%\";\n    break;\n}\n\nconst start = () => {\n  switch (props.direction) {\n    case \"right\":\n      style.transformOrigin = \"bottom right\";\n      style.transform = \"scaleX(0)\";\n      break;\n    case \"left\":\n      style.transformOrigin = \"bottom left\";\n      style.transform = \"scaleX(0)\";\n      break;\n    case \"fromCenter\":\n      style.transformOrigin = \"center\";\n      style.transform = \"scaleX(0)\";\n      break;\n  }\n};\nconst end = () => {\n  switch (props.direction) {\n    case \"right\":\n      style.transformOrigin = \"bottom left\";\n      style.transform = \"scaleX(1)\";\n      break;\n    case \"left\":\n      style.transformOrigin = \"bottom right\";\n      style.transform = \"scaleX(1)\";\n      break;\n    case \"fromCenter\":\n      style.transformOrigin = \"center\";\n      style.transform = \"scaleX(1)\";\n      break;\n  }\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <Container\n    :type=\"props.containerType\"\n    :supportCopyText=\"props.supportCopyText\"\n    :effectTriggerTiming=\"props.effectTriggerTiming\"\n    @start=\"start\"\n    @end=\"end\"\n    @ready=\"resize\"\n    @update=\"resize\"\n  >\n    <div\n      class=\"line-single-before\"\n      :style=\"{\n        left: 0,\n        width: '100%',\n        height: props.lineHeight + 'px',\n        backgroundColor: props.color,\n        transition: `transform ${props.timeGap * ratio}ms ease-in-out`,\n        ...style\n      }\"\n    ></div>\n    <div class=\"line-single\">\n      <slot></slot>\n    </div>\n  </Container>\n</template>\n\n<style scoped>\n.line-single-before {\n  position: absolute;\n  z-index: 0;\n}\n.line-single {\n  position: relative;\n  z-index: 1;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { reactive } from \"vue\";\nimport Container, {\n  ContainerType,\n  EffectTriggerTiming\n} from \"../Container.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Container },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    containerType?: ContainerType;\n    supportCopyText?: boolean;\n    effectTriggerTiming?: EffectTriggerTiming;\n    color?: string;\n    timeGap?: number;\n    lineHeight?: number;\n    location?: \"horizontal\" | \"vertical\";\n    direction?: \"toEnd\" | \"toStart\" | \"towards\" | \"fromCenter\";\n  }>(),\n  {\n    containerType: \"shrink\",\n    supportCopyText: true,\n    effectTriggerTiming: \"mouseMove\",\n    color: \"#3cefff\",\n    timeGap: 50,\n    lineHeight: 2,\n    location: \"horizontal\",\n    direction: \"toEnd\"\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\nlet ratio = 1;\nconst resize = (controller) => {\n  ratio = Math.ceil(\n    Math.max(controller.rect.width, controller.rect.height) /\n      Math.min(controller.rect.width, controller.rect.height)\n  );\n};\n\nconst commonStyle = reactive<Record<string, string>>({});\nconst beforeStyle = reactive<Record<string, string>>({});\nconst afterStyle = reactive<Record<string, string>>({});\nswitch (props.location) {\n  case \"horizontal\":\n    commonStyle.width = \"100%\";\n    commonStyle.height = props.lineHeight + \"px\";\n    beforeStyle.top = \"0\";\n    afterStyle.bottom = \"0\";\n    break;\n  case \"vertical\":\n    commonStyle.width = props.lineHeight + \"px\";\n    commonStyle.height = \"100%\";\n    beforeStyle.left = \"0\";\n    afterStyle.right = \"0\";\n    break;\n}\n\nconst start = () => {\n  switch (props.direction) {\n    case \"toEnd\":\n      switch (props.location) {\n        case \"horizontal\":\n          beforeStyle.right = \"0\";\n          afterStyle.right = \"0\";\n          commonStyle.transformOrigin = \"center right\";\n          commonStyle.transform = \"scaleX(0)\";\n          break;\n        case \"vertical\":\n          beforeStyle.bottom = \"0\";\n          afterStyle.bottom = \"0\";\n          commonStyle.transformOrigin = \"center bottom\";\n          commonStyle.transform = \"scaleY(0)\";\n          break;\n      }\n      break;\n    case \"toStart\":\n      switch (props.location) {\n        case \"horizontal\":\n          beforeStyle.left = \"0\";\n          afterStyle.left = \"0\";\n          commonStyle.transformOrigin = \"center left\";\n          commonStyle.transform = \"scaleX(0)\";\n          break;\n        case \"vertical\":\n          beforeStyle.top = \"0\";\n          afterStyle.top = \"0\";\n          commonStyle.transformOrigin = \"center top\";\n          commonStyle.transform = \"scaleY(0)\";\n          break;\n      }\n      break;\n    case \"towards\":\n      switch (props.location) {\n        case \"horizontal\":\n          beforeStyle.right = \"0\";\n          beforeStyle.transformOrigin = \"center right\";\n          afterStyle.left = \"0\";\n          afterStyle.transformOrigin = \"center left\";\n          commonStyle.transform = \"scaleX(0)\";\n          break;\n        case \"vertical\":\n          beforeStyle.bottom = \"0\";\n          beforeStyle.transformOrigin = \"center bottom\";\n          afterStyle.top = \"0\";\n          afterStyle.transformOrigin = \"center top\";\n          commonStyle.transform = \"scaleY(0)\";\n          break;\n      }\n      break;\n    case \"fromCenter\":\n      switch (props.location) {\n        case \"horizontal\":\n          beforeStyle.left = \"50%\";\n          afterStyle.left = \"50%\";\n          commonStyle.transformOrigin = \"center\";\n          commonStyle.transform = \"translateX(-50%) scaleX(0)\";\n          break;\n        case \"vertical\":\n          beforeStyle.top = \"50%\";\n          afterStyle.top = \"50%\";\n          commonStyle.transformOrigin = \"center\";\n          commonStyle.transform = \"translateY(-50%) scaleY(0)\";\n          break;\n      }\n      break;\n  }\n};\nconst end = () => {\n  switch (props.direction) {\n    case \"toEnd\":\n      switch (props.location) {\n        case \"horizontal\":\n          beforeStyle.left = \"0\";\n          afterStyle.left = \"0\";\n          commonStyle.transformOrigin = \"center left\";\n          commonStyle.transform = \"scaleX(1)\";\n          break;\n        case \"vertical\":\n          beforeStyle.top = \"0\";\n          afterStyle.top = \"0\";\n          commonStyle.transformOrigin = \"center top\";\n          commonStyle.transform = \"scaleY(1)\";\n          break;\n      }\n      break;\n    case \"toStart\":\n      switch (props.location) {\n        case \"horizontal\":\n          beforeStyle.right = \"0\";\n          afterStyle.right = \"0\";\n          commonStyle.transformOrigin = \"center right\";\n          commonStyle.transform = \"scaleX(1)\";\n          break;\n        case \"vertical\":\n          beforeStyle.bottom = \"0\";\n          afterStyle.bottom = \"0\";\n          commonStyle.transformOrigin = \"center bottom\";\n          commonStyle.transform = \"scaleY(1)\";\n          break;\n      }\n      break;\n    case \"towards\":\n      switch (props.location) {\n        case \"horizontal\":\n          beforeStyle.left = \"0\";\n          beforeStyle.transformOrigin = \"center left\";\n          afterStyle.right = \"0\";\n          afterStyle.transformOrigin = \"center right\";\n          commonStyle.transform = \"scaleX(1)\";\n          break;\n        case \"vertical\":\n          beforeStyle.top = \"0\";\n          beforeStyle.transformOrigin = \"center top\";\n          afterStyle.bottom = \"0\";\n          afterStyle.transformOrigin = \"center bottom\";\n          commonStyle.transform = \"scaleY(1)\";\n          break;\n      }\n      break;\n    case \"fromCenter\":\n      switch (props.location) {\n        case \"horizontal\":\n          beforeStyle.left = \"50%\";\n          afterStyle.left = \"50%\";\n          commonStyle.transformOrigin = \"center\";\n          commonStyle.transform = \"translateX(-50%) scaleX(1)\";\n          break;\n        case \"vertical\":\n          beforeStyle.top = \"50%\";\n          afterStyle.top = \"50%\";\n          commonStyle.transformOrigin = \"center\";\n          commonStyle.transform = \"translateY(-50%) scaleY(1)\";\n          break;\n      }\n      break;\n  }\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <Container\n    :type=\"props.containerType\"\n    :supportCopyText=\"props.supportCopyText\"\n    :effectTriggerTiming=\"props.effectTriggerTiming\"\n    @start=\"start\"\n    @end=\"end\"\n    @ready=\"resize\"\n    @update=\"resize\"\n  >\n    <div\n      class=\"line-double-before\"\n      :style=\"{\n        backgroundColor: props.color,\n        transition: `transform ${props.timeGap * ratio}ms ease-in-out`,\n        ...commonStyle,\n        ...beforeStyle\n      }\"\n    ></div>\n    <div class=\"line-double\">\n      <slot></slot>\n    </div>\n    <div\n      class=\"line-double-after\"\n      :style=\"{\n        backgroundColor: props.color,\n        transition: `transform ${props.timeGap * ratio}ms ease-in-out`,\n        ...commonStyle,\n        ...afterStyle\n      }\"\n    ></div>\n  </Container>\n</template>\n\n<style scoped>\n.line-double-before,\n.line-double-after {\n  position: absolute;\n  z-index: 0;\n}\n.line-double {\n  position: relative;\n  z-index: 1;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport Container from \"../Container.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Container },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    text?: string;\n    bgImageUrl?: string;\n  }>(),\n  {\n    text: \"文字背景为图片\",\n    bgImageUrl:\n      \"https://s3-us-west-2.amazonaws.com/s.cdpn.io/181794/kl-deer.png\"\n  }\n);\n\n// const emits = defineEmits<{\n//   (event: \"click\"): void;\n// }>();\n\ndefineExpose({});\n</script>\n\n<template>\n  <Container>\n    <div\n      :style=\"{\n        // backgroundImage: linear-gradient(45deg, lightblue, lightgreen);\n        backgroundImage: `url(${props.bgImageUrl})`,\n        'background-clip': 'text',\n        // 文字设为透明\n        color: 'transparent'\n      }\"\n    >\n      {{ props.text }}\n    </div>\n  </Container>\n</template>\n","/*\n<yz-responsive-video>\n  <video\n    width=\"640\"\n    height=\"360\"\n    controls\n    autoplay\n    loop>\n    <source\n      src=\"../assets/videos/large.mp4\"\n      type=\"video/mp4\"\n      media=\"(min-width: 600px)\"\n    />\n    <source\n      src=\"../assets/videos/small.mp4\"\n      type=\"video/mp4\"\n    />\n    <source\n      src=\"landscape.webm\"\n      type=\"video/webm\"\n      media=\"(orientation: landscape)\"\n    />\n    <source\n      src=\"@root/assets/videos/movieclip.ogv\"\n      type=\"video/ogg\"\n    />\n  </video>\n</yz-responsive-video>\n\n<video src=\"https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8\"></video>\n\n<video src=\"../assets/videos/sintel.webm\" width=\"320\" height=\"138\"></video>\n\n<audio controls>\n  <source\n    src=\"/sandbox/video-media/roar.mp3\"\n    media=\"(max-width: 599px)\"\n  />\n  <source src=\"/sandbox/video-media/cluck.mp3\" />\n</audio>\n*/\n\nexport class ResponsiveVideo extends HTMLElement {\n  constructor() {\n    super();\n    this.listenedMedia = [];\n    this.reloadQueued = false;\n  }\n  connectedCallback() {\n    this.video = this.querySelector(\"video\");\n    this.bindMediaListeners();\n  }\n  disconnectedCallback() {\n    this.unbindMediaListeners();\n  }\n  bindMediaListeners() {\n    this.querySelectorAll(\"source\").forEach((source) => {\n      if (source.media) {\n        const mqListener = () => {\n          if (\n            source.media === this.video.currentSrc ||\n            (!this.previousSiblingIsPlaying(source, this.video.currentSrc) &&\n              !this.reloadQueued)\n          ) {\n            this.reloadVideo();\n          }\n        };\n        this.listenedMedia.push({ media: source.media, handler: mqListener });\n        window.matchMedia(source.media).addEventListener(\"change\", mqListener);\n      }\n    });\n  }\n  unbindMediaListeners() {\n    this.listenedMedia.forEach((listener) => {\n      window\n        .matchMedia(listener.media)\n        .removeEventListener(\"change\", listener.handler);\n    });\n  }\n  previousSiblingIsPlaying(elem, src) {\n    const prevSibling = elem;\n    while (elem.previousElementSibling) {\n      if (prevSibling.src === src) {\n        return true;\n      }\n    }\n    return false;\n  }\n  reloadVideo() {\n    this.reloadQueued = true;\n    const currentTime = this.video.currentTime;\n    const playState = this.video.playState;\n    this.video.load();\n    const videoLoaded = () => {\n      this.video.playState = playState;\n      this.video.currentTime = currentTime.toString();\n      this.reloadQueued = false;\n      this.video.removeEventListener(\"loadeddata\", videoLoaded);\n    };\n    this.video.addEventListener(\"loadeddata\", videoLoaded);\n  }\n}\n\nexport default ResponsiveVideo;\n","<script setup lang=\"ts\">\n// import \"@zyzgroup/core-web/dist/css/better.css\";\n// import \"@zyzgroup/core-web/dist/css/theme.css\";\n// import \"@zyzgroup/core-web/dist/css/font.css\";\n\nimport \"@zyzgroup/core-web/dist/css/rem_750.css\";\nimport {\n  FeRouteDirection,\n  setRem,\n  SupportedEaseNameToCubicBezier\n} from \"@zyzgroup/core-web\";\n\nimport {\n  provide,\n  onUnmounted,\n  ref,\n  shallowRef,\n  reactive,\n  shallowReactive\n} from \"vue\";\nimport type { Component } from \"vue\";\nimport {\n  context,\n  ContextEventBusListeners,\n  Context,\n  mapState\n} from \"../../context/context\";\n\nimport {\n  RouterView,\n  getCurrentRouteDetail,\n  routeChange$\n} from \"../../hooks/useVueRouter\";\nimport Page from \"./Page.vue\";\nimport { CSSAnimationName } from \"@zyzgroup/core-common\";\n\n// import ResizeObserver from \"./components/base/ResizeObserver.vue\";\n// import FPSStats from \"../fps/FPSStats.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    designWidth?: number;\n  }>(),\n  {\n    designWidth: 750\n  }\n);\n\n// import(\n//   /* @vite-ignore */ `@zyzgroup/core-web/dist/rem_${props.designWidth}.css`\n// );\nsetRem(props.designWidth);\n\n// const layout = ref(document.documentElement.dataset.layout);\n\nprovide<Context<ContextEventBusListeners>>(\"context\", context);\n// const context = inject<Context<ContextEventBusListeners>>(\"context\");\n// const context = inject<Context>(\"context\");\n\n// const app = inject(\"app\", null) as unknown as App<Element>;\n\nconst mappedState = mapState([\"color.panelPattern\", \"color.fontPattern\"]);\n\n// const resize = (size: { width: number; height: number }) => {\n//   context.eb.emit(\"globalResize\", size.width, size.height);\n// };\n\nconst RouteComboEffecs: Record<\n  string,\n  Record<\n    \"prev\" | \"next\",\n    {\n      name: CSSAnimationName;\n      timingFunction: SupportedEaseNameToCubicBezier;\n      duration: number;\n      delay: number;\n      top?: (direction: FeRouteDirection) => -1 | 1;\n    }\n  >\n> = {\n  moveToLeft: {\n    prev: {\n      name: \"moveToLeft\",\n      timingFunction: \"ease-out\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromRight\",\n      timingFunction: \"ease-out\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToRight: {\n    prev: {\n      name: \"moveToRight\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromLeft\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToTop: {\n    prev: {\n      name: \"moveToTop\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromBottom\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToBottom: {\n    prev: {\n      name: \"moveToBottom\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromTop\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveFromLeftPrevFade: {\n    prev: {\n      name: \"fade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0,\n      top: (direction: FeRouteDirection) => (direction == \"forward\" ? -1 : 1)\n    },\n    next: {\n      name: \"moveFromLeft\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0,\n      top: (direction: FeRouteDirection) => (direction == \"forward\" ? 1 : -1)\n    }\n  },\n  moveFromRightPrevFade: {\n    prev: {\n      name: \"fade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromRight\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveFromTopPrevFade: {\n    prev: {\n      name: \"fade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromTop\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveFromBottomPrevFade: {\n    prev: {\n      name: \"fade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromBottom\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToLeftFade: {\n    prev: {\n      name: \"moveToLeftFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromRightFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToRightFade: {\n    prev: {\n      name: \"moveToRightFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromLeftFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToTopFade: {\n    prev: {\n      name: \"moveToTopFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromBottomFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToBottomFade: {\n    prev: {\n      name: \"moveToBottomFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromTopFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToLeftEasing: {\n    prev: {\n      name: \"moveToLeft\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromRight\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  }\n};\n\nconst comboEffect = RouteComboEffecs[\"moveToLeft\"];\n\nconst pages = shallowReactive<\n  {\n    fullPath: string;\n    component: Component;\n    props: Record<string, any>;\n  }[]\n>([]);\nconst refs = [];\n\nlet direction = \"keep\";\nconst fromIndex = ref(-1);\nconst toIndex = ref(-1);\n\nlet forwardNewPageAction = null;\n\nconst rs$ = routeChange$.subscribe(([newRoute, oldRoute, route, history]) => {\n  // console.log(\"Root: \", newRoute, oldRoute, route, history);\n  const foundNewIndex = pages.findIndex((p) => p.fullPath == newRoute.fullPath);\n  const foundOldIndex = pages.findIndex((p) => p.fullPath == oldRoute.fullPath);\n  direction = route.direction;\n  switch (route.direction) {\n    case \"keep\":\n      const keepIndex =\n        foundNewIndex >= 0\n          ? foundNewIndex\n          : foundOldIndex >= 0\n          ? foundOldIndex\n          : -1;\n      if (keepIndex < 0) {\n        pages.push({\n          fullPath: newRoute.fullPath,\n          component: newRoute.component,\n          props: newRoute.props\n        });\n      }\n      fromIndex.value = -1;\n      toIndex.value = keepIndex >= 0 ? keepIndex : pages.length - 1;\n      break;\n    case \"forward\":\n      if (foundOldIndex < 0) {\n        pages.push({\n          fullPath: oldRoute.fullPath,\n          component: oldRoute.component,\n          props: oldRoute.props\n        });\n        fromIndex.value = pages.length - 1;\n      } else {\n        fromIndex.value = foundOldIndex;\n      }\n      if (foundNewIndex < 0) {\n        // 与浏览器行为保持一致：删除部分记录\n        pages.splice(fromIndex.value + 1);\n        pages.push({\n          fullPath: newRoute.fullPath,\n          component: newRoute.component,\n          props: newRoute.props\n        });\n        // 只添加新数据\n        toIndex.value = -1;\n        refs[fromIndex.value]?.open(comboEffect.prev);\n        forwardNewPageAction = () => {\n          // 开启动画\n          toIndex.value = pages.length - 1;\n          refs[toIndex.value]?.open(comboEffect.next);\n        };\n      } else {\n        toIndex.value = foundNewIndex;\n        refs[fromIndex.value]?.open(comboEffect.prev);\n        refs[toIndex.value]?.open(comboEffect.next);\n      }\n      break;\n    case \"backward\":\n      if (foundOldIndex < 0) {\n        pages.push({\n          fullPath: oldRoute.fullPath,\n          component: oldRoute.component,\n          props: oldRoute.props\n        });\n        fromIndex.value = pages.length - 1;\n      } else {\n        fromIndex.value = foundOldIndex;\n      }\n      if (foundNewIndex < 0) {\n        const newIndex = Math.max(fromIndex.value - 1, 0);\n        pages.splice(newIndex, 0, {\n          fullPath: newRoute.fullPath,\n          component: newRoute.component,\n          props: newRoute.props\n        });\n        toIndex.value = newIndex;\n      } else {\n        toIndex.value = foundNewIndex;\n      }\n      refs[fromIndex.value]?.close(comboEffect.next);\n      refs[toIndex.value]?.close(comboEffect.prev);\n      break;\n  }\n  // console.log(\"pages: \", pages);\n});\n\nfunction getDynamicZIndex(index: number): number {\n  const defaulZIndex = 1;\n  const lowerZIndex = 2;\n  const higherZIndex = 3;\n  // console.log(\"*******\");\n  // console.log(...pages);\n  // console.log(\"current index: \", index);\n  // console.log(\"direction: \", direction);\n  // console.log(\"from index: \", fromIndex.value);\n  // console.log(\"to index: \", toIndex.value);\n  let resultIndex = defaulZIndex;\n  switch (direction) {\n    case \"keep\":\n      break;\n    case \"forward\":\n      if (index == fromIndex.value) {\n        resultIndex = comboEffect.prev.top\n          ? comboEffect.prev.top(direction) > 0\n            ? higherZIndex\n            : lowerZIndex\n          : defaulZIndex;\n      }\n      if (index == toIndex.value) {\n        resultIndex = comboEffect.next.top\n          ? comboEffect.next.top(direction) > 0\n            ? higherZIndex\n            : lowerZIndex\n          : defaulZIndex;\n      }\n      break;\n    case \"backward\":\n      if (index == fromIndex.value) {\n        resultIndex = comboEffect.next.top\n          ? comboEffect.next.top(direction) > 0\n            ? higherZIndex\n            : lowerZIndex\n          : defaulZIndex;\n      }\n      if (index == toIndex.value) {\n        resultIndex = comboEffect.prev.top\n          ? comboEffect.prev.top(direction) > 0\n            ? higherZIndex\n            : lowerZIndex\n          : defaulZIndex;\n      }\n      break;\n  }\n  // console.log(\"resultIndex: \", resultIndex);\n  return resultIndex;\n}\n\nfunction resetNewPage() {\n  // 同一祖先下，如果有多个Page，可能会出错\n  context.ds.clear();\n}\n\nfunction dismissOldPage() {\n  fromIndex.value = -1;\n}\n\nconst pageOpenStart = () => {\n  // console.log(\"pageOpenStart\");\n  resetNewPage();\n  forwardNewPageAction?.();\n  forwardNewPageAction = null;\n};\nconst pageOpenEnd = () => {\n  // console.log(\"pageOpenEnd\");\n  dismissOldPage();\n};\nconst pageCloseStart = () => {\n  // console.log(\"pageCloseStart\");\n  resetNewPage();\n};\nconst pageCloseEnd = () => {\n  // console.log(\"pageCloseEnd\");\n  dismissOldPage();\n};\n\nonUnmounted(() => {\n  rs$.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"root\"\n    style=\"\n      position: relative;\n      width: 100%;\n      width: 100vw;\n      height: 100%;\n      height: 100vh;\n      margin: 0 auto;\n      overflow: hidden;\n      box-sizing: border-box;\n    \"\n    :style=\"{\n      backgroundColor: `${mappedState['color.panelPattern'].value}`,\n      color: `${mappedState['color.fontPattern'].value}`\n    }\"\n  >\n    <!-- <KeepAlive> 是一个内置组件，它的功能是在多个组件间动态切换时缓存被移除的组件实例 -->\n    <!-- 它会根据组件的 name 选项进行匹配，所以组件如果想要条件性地被 KeepAlive 缓存，就必须显式声明一个 name 选项 -->\n    <!-- include=\"a,b\" :include=\"/a|b/\" :include=\"['a', 'b']\" -->\n    <!-- exclude=\"a,b\" :exclude=\"/a|b/\" :exclude=\"['a', 'b']\" -->\n    <!-- 限制可被缓存的最大组件实例数 :max=\"10\" -->\n    <!--\n  <KeepAlive>\n    <Suspense>\n      <component :is=\"Component\"></component>\n      <template #fallback>正在加载...</template>\n    </Suspense>\n  </KeepAlive>\n  -->\n\n    <!--\n      Vue Router 使用动态导入对懒加载组件进行了内置支持。\n      这些与异步组件不同，目前他们不会触发 <Suspense>。\n      但是，它们仍然可以有异步组件作为后代，这些组件可以照常触发 <Suspense>。\n    -->\n    <!-- <RouterView v-slot=\"{ Component, route }\">\n      <KeepAlive>\n        <component\n          :is=\"Component\"\n          v-bind=\"getCurrentRouteDetail(route).props\"\n        ></component>\n      </KeepAlive>\n    </RouterView> -->\n\n    <!-- 自定义 <RouterView> -->\n    <Page\n      v-for=\"(page, index) in pages\"\n      v-show=\"fromIndex == index || toIndex == index\"\n      :ref=\"(el) => (refs[index] = el)\"\n      @pageOpenStart=\"pageOpenStart\"\n      @pageOpenEnd=\"pageOpenEnd\"\n      @pageCloseStart=\"pageCloseStart\"\n      @pageCloseEnd=\"pageCloseEnd\"\n      :style=\"{\n        position: 'absolute',\n        width: '100%',\n        height: '100%',\n        zIndex: getDynamicZIndex(index)\n      }\"\n    >\n      <KeepAlive>\n        <component\n          :is=\"page.component\"\n          v-bind=\"page.props\"\n        ></component>\n      </KeepAlive>\n    </Page>\n\n    <!-- <ResizeObserver @resize=\"resize\"></ResizeObserver> -->\n    <!-- <FPSStats></FPSStats> -->\n  </div>\n</template>\n\n<style>\n/* for ce */\n/* index.html 全局加载：@import \"@zyzgroup/core-web/dist/css/better.css\"; */\n/* index.html 全局加载：@import \"@zyzgroup/core-web/dist/css/theme.css\"; */\n/* index.html 全局加载：@import \"@zyzgroup/core-web/dist/css/font.css\"; */\n\n/* for ce ： 在上方<script>内引入 */\n/* @import \"@zyzgroup/core-web/dist/rem_750.css\"; */\n</style>\n","<template>\n  <Root></Root>\n</template>\n\n<script setup lang=\"ts\">\nimport Root from \"./components/base/Root.vue\";\n\n// 所有 router 中定义的可访问的有style的页面\nimport Lot from \"./components/xg/Lot.vue\";\nimport Park from \"./components/xg/Park.vue\";\nimport Result from \"./components/xg/Result.vue\";\nimport Unlocking from \"./components/xg/Unlocking.vue\";\nimport LoginInPhone from \"./components/xg/LoginInPhone.vue\";\nimport ViewDocument from \"./components/view/ViewDocument.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Lot, Park, Result, Unlocking, LoginInPhone, ViewDocument },\n  inheritAttrs: true\n});\n\ndefineExpose({});\n</script>\n","<script setup lang=\"tsx\">\nimport { onDeactivated, onUnmounted, ref } from \"vue\";\nimport { searchToRecord } from \"@zyzgroup/core-common\";\nimport { mapState, context } from \"../../context/context\";\nimport { dialog, loading, popTel } from \"../../globalTeleport\";\nimport { pageShow$, routeChange$, useRouter } from \"../../hooks\";\nimport Page from \"../base/Page.vue\";\nimport Footer from \"./Footer.vue\";\nimport PlateDisplay from \"../plate/PlateDisplay.vue\";\nimport ImageView from \"../image/ImageView.vue\";\nimport ContentCenter from \"../layout/ContentCenter.vue\";\nimport IconArrowRight from \"../icon/IconArrowRight.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {\n    Page,\n    Footer,\n    PlateDisplay,\n    ImageView,\n    ContentCenter,\n    IconArrowRight\n  },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    lottag: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\n  \"bill.sn\",\n  \"bill.feeFormatted\",\n  \"park.tag\",\n  \"park.name\",\n  \"park.phone\",\n  \"park.feebookurl\",\n  \"lot.no\",\n  \"order.sn\",\n  \"order.fee\",\n  \"order.feeFormatted\",\n  \"order.starttimeFormatted\",\n  \"order.duringtimeFormatted\",\n  \"order.pics\",\n  \"plate.color\",\n  \"plate.plate\",\n  \"user.openid\",\n  \"color.primaryPattern\",\n  \"color.gradientPattern\",\n  \"color.fontSecondaryPattern\",\n  \"color.foregroundPattern\",\n  \"color.foregroundBorderPattern\",\n  \"color.fontPattern\",\n  \"color.redCommon\",\n  \"color.yellowCommon\"\n]);\n\nconst desc = ref<string[]>([]);\n\nfunction loadOrder(lottag) {\n  context.ds.immediately(loading);\n  context.axios\n    // .post(`/api/v6/lot/${lottag}/getwithorder6`, {\n    .post(`/api/v6/lot/${lottag}/genbill`, {\n      openid: mappedState[\"user.openid\"].value,\n      paytype: \"U\"\n    })\n    .catch((result) => {\n      // context.ds.closeLast()\n      // context.store.dispatch({\n      //   type: \"SET_RESULT\",\n      //   payload: {\n      //     status: \"error\",\n      //     title: result.data.error || JSON.stringify(result.data)\n      //   }\n      // });\n      context.ds.immediately(dialog, {\n        title: \"接口出错\",\n        content: result.data.error,\n        confirmText: \"知道了\",\n        mode: \"mini\",\n        onClose: () => {}\n      });\n      return result;\n    })\n    .then((result) => {\n      context.ds.closeLast();\n      context.store.dispatch({\n        type: \"SET_PARK\",\n        payload: result.data.pk || {}\n      });\n      context.store.dispatch({\n        type: \"SET_LOT\",\n        payload: result.data.pl || {}\n      });\n      context.store.dispatch({\n        type: \"SET_BILL\",\n        payload: result.data.bill || {}\n      });\n      context.store.dispatch({\n        type: \"SET_ORDER\",\n        payload: {\n          ...result.data.uo,\n          pics: result.data.pics\n        }\n      });\n      context.store.dispatch({\n        type: \"SET_PLATE\",\n        payload: result.data.uo || {}\n      });\n      context.store.dispatch({\n        type: \"SET_GROUP\",\n        payload: result.data.grp || {}\n      });\n      desc.value = result.data.sdesc || [];\n    });\n}\n\nconst router = useRouter();\n\nconst token = ref(\"\");\n\nconst rs$ = pageShow$(\"lot\").subscribe(() => {\n  // console.log(\"** show **\");\n  // 监听到当前页面显示\n  // 对应二维码 https://tstxg.ruolin-link.com/l?n=2175\n  // 本地链接   http://192.168.1.30/l.html?n=2175  http://127.0.0.1/l.html?n=739#/\n  // 测试服链接 https://test.xinge.me/l.html?n=2175\n  // 正式服链接 https://xinge.ruolin-link.com/xg/l?n=2175\n  const records = searchToRecord();\n  const lottag = records.n || props.lottag;\n  if (!lottag) {\n    context.ds.immediately(dialog, {\n      title: \"扫码失败\",\n      content: `lottag=${lottag} 不符规则，请重扫或联系客服：400-158-8363`,\n      confirmText: \"知道了\",\n      mode: \"mini\"\n    });\n  } else {\n    loadOrder(lottag);\n  }\n  const tokenLocal = context.static.token.get();\n  if (tokenLocal) {\n    token.value = tokenLocal;\n    context.store.dispatch({\n      type: \"SET_USER\",\n      payload: { token: tokenLocal }\n    });\n  }\n});\n\nfunction destroy() {\n  rs$.unsubscribe();\n}\nonDeactivated(() => {\n  destroy();\n});\n\nfunction viewDocument() {\n  const url = mappedState[\"park.feebookurl\"].value;\n  if (!url) {\n    return;\n  }\n  router.push({\n    name: \"view-document\",\n    params: {\n      title: \"收费标准\",\n      src: encodeURIComponent(url)\n    }\n  });\n}\n\nconst imageViewEl = ref();\nfunction viewPhotos() {\n  const pics = mappedState[\"order.pics\"].value;\n  if (!pics.length) {\n    return;\n  }\n  imageViewEl.value?.open();\n}\n</script>\n\n<template>\n  <Page\n    v-if=\"mappedState['lot.no'].value\"\n    class=\"lot\"\n  >\n    <div\n      class=\"lot-main-bg\"\n      :style=\"{\n        background: `linear-gradient(180deg, ${mappedState['color.primaryPattern'].value} 0%, ${mappedState['color.gradientPattern'].value} 100%)`\n      }\"\n    ></div>\n    <div\n      class=\"lot-main\"\n      :style=\"{ color: `${mappedState['color.foregroundPattern'].value}` }\"\n    >\n      <div>{{ mappedState[\"park.name\"].value }}</div>\n      <div>\n        <div\n          :style=\"{\n            background: `linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, ${mappedState['color.foregroundPattern'].value} 100%)`\n          }\"\n        ></div>\n        <div>编号</div>\n        <div\n          :style=\"{\n            background: `linear-gradient(90deg,  ${mappedState['color.foregroundPattern'].value} 0%, rgba(255, 255, 255, 0) 100%)`\n          }\"\n        ></div>\n      </div>\n      <div>\n        <span>{{ mappedState[\"park.tag\"].value }}</span>\n        <span>{{ mappedState[\"lot.no\"].value }}</span>\n      </div>\n      <div>\n        <!-- <div class=\"disabled\">停车场主页</div>\n        <div class=\"disabled\">更换附近车位</div> -->\n        <div\n          :class=\"mappedState['park.feebookurl'].value ? '' : 'disabled'\"\n          @click=\"viewDocument\"\n        >\n          收费标准\n        </div>\n      </div>\n      <div\n        v-if=\"!mappedState['bill.sn'].value\"\n        class=\"error-info\"\n        :style=\"{\n          background: `${mappedState['color.foregroundPattern'].value}`,\n          color: `${mappedState['color.fontPattern'].value}`\n        }\"\n      >\n        <div v-for=\"item in desc\">{{ item }}</div>\n      </div>\n      <div\n        v-else\n        class=\"lot-detail\"\n        :style=\"{\n          background: `${mappedState['color.foregroundPattern'].value}`,\n          color: `${mappedState['color.fontPattern'].value}`\n        }\"\n      >\n        <div\n          :style=\"{\n            borderBottom: `1px solid ${mappedState['color.foregroundBorderPattern'].value}`\n          }\"\n        >\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            待支付\n          </div>\n          <div\n            :style=\"{\n              color: `${mappedState['color.redCommon'].value}`\n            }\"\n          >\n            ￥{{ mappedState[\"bill.feeFormatted\"].value }}\n          </div>\n        </div>\n        <div v-if=\"mappedState['order.fee'].value\">\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            已支付\n          </div>\n          <div>￥{{ mappedState[\"order.feeFormatted\"].value }}</div>\n        </div>\n        <div>\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            订单编号\n          </div>\n          <div>{{ mappedState[\"order.sn\"].value || \"-\" }}</div>\n        </div>\n        <div>\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            开始时间\n          </div>\n          <div>{{ mappedState[\"order.starttimeFormatted\"].value || \"-\" }}</div>\n        </div>\n        <div>\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            停车时长\n          </div>\n          <div>{{ mappedState[\"order.duringtimeFormatted\"].value || \"-\" }}</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\n          v-if=\"\n            mappedState['plate.plate'].value ||\n            mappedState['order.pics'].value.length\n          \"\n          :style=\"{\n            borderTop: `1px solid ${mappedState['color.foregroundBorderPattern'].value}`\n          }\"\n        ></div>\n        <div v-if=\"mappedState['plate.plate'].value\">\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            车牌号\n          </div>\n          <div class=\"bold\">\n            <PlateDisplay\n              :plate=\"mappedState['plate.plate'].value\"\n              :plate-color=\"mappedState['plate.color'].value\"\n              font-weight=\"bold\"\n            ></PlateDisplay>\n          </div>\n        </div>\n        <div v-if=\"mappedState['order.pics'].value.length\">\n          <div\n            :style=\"{\n              color: `${mappedState['color.fontSecondaryPattern'].value}`\n            }\"\n          >\n            现场照片\n          </div>\n          <div\n            class=\"blue\"\n            @click=\"viewPhotos\"\n          >\n            查看\n          </div>\n        </div>\n      </div>\n      <div\n        class=\"lot-actions\"\n        :style=\"{\n          background: `${mappedState['color.foregroundPattern'].value}`,\n          color: `${mappedState['color.primaryPattern'].value}`\n        }\"\n      >\n        <ContentCenter\n          v-if=\"!token\"\n          direction=\"row\"\n          class=\"lot-action-login\"\n          :style=\"{\n            background: `${mappedState['color.yellowCommon'].value}`,\n            color: `${mappedState['color.foregroundPattern'].value}`\n          }\"\n          @click=\"() => router.push('/login')\"\n        >\n          <div>立即登录</div>\n          <div style=\"width: 14px\">\n            <IconArrowRight\n              :color=\"mappedState['color.foregroundPattern'].value\"\n            ></IconArrowRight>\n          </div>\n        </ContentCenter>\n        <div\n          class=\"lot-action\"\n          @click=\"\n            () =>\n              popTel(mappedState['park.phone'].value || context.static.hotline)\n          \"\n        >\n          联系客服\n        </div>\n      </div>\n    </div>\n    <template #footer>\n      <Footer\n        v-if=\"mappedState['bill.sn'].value\"\n        :billsn=\"mappedState['bill.sn'].value\"\n        @reloadOrder=\"() => loadOrder(lottag)\"\n      ></Footer>\n    </template>\n    <template #global>\n      <ImageView\n        ref=\"imageViewEl\"\n        :urls=\"mappedState['order.pics'].value\"\n      ></ImageView>\n    </template>\n  </Page>\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}\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  padding: 0 var(--yz-padding-horizontal);\n  margin-bottom: var(--yz-padding-horizontal);\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}\n.lot-main > div:nth-child(2) > div:nth-child(3) {\n  width: 2.4rem;\n  height: 0.04rem;\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-number\";\n  font-weight: bold;\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  cursor: pointer;\n}\n.lot-main > div:nth-child(4) > div.disabled {\n  opacity: var(--yz-disabled-alpha);\n}\n.lot-main > div:nth-child(4) > div + div {\n  border-left: 1px solid rgba(255, 255, 255, var(--yz-disabled-alpha));\n}\n.error-info {\n  min-height: 3.8rem;\n  padding: 0.4rem 0.3rem;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  position: relative;\n  box-shadow: 0 0.04rem 0.1rem rgba(0, 0, 0, 0.1);\n  border-radius: 0.08rem;\n  font-size: 14px;\n  line-height: 19px;\n  word-break: break-all;\n  text-align: center;\n}\n.error-info > div:nth-child(1) {\n  font-size: 16px;\n  line-height: 24px;\n  font-weight: bold;\n}\n.error-info > div + div {\n  margin-top: 0.14rem;\n}\n.lot-detail {\n  position: relative;\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n  border-radius: 4px;\n  padding: 0 var(--yz-padding-horizontal) 5px;\n  font-size: 14px;\n  line-height: 20px;\n}\n.lot-detail > div {\n  margin: var(--yz-padding-vertical) auto;\n  display: flex;\n  justify-content: space-between;\n}\n.lot-detail > div:nth-child(1) {\n  line-height: 44px;\n  margin: 0 0 var(--yz-padding-vertical);\n  font-weight: bold;\n}\n.lot-detail > div:nth-child(1) > div:nth-child(2) {\n  font-size: 20px;\n}\n.lot-detail > div > div:nth-child(1) {\n  flex: 0 0 auto;\n  padding-right: 10px;\n}\n.lot-detail > div > div:nth-child(2).blue {\n  color: var(--yz-xg-blue);\n  cursor: pointer;\n}\n.lot-actions {\n  margin: 10px 0;\n  box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);\n  border-radius: 4px;\n  display: flex;\n  align-items: center;\n  font-size: 14px;\n  position: relative;\n}\n.lot-actions > .lot-action {\n  flex: 1;\n  line-height: 44px;\n  position: relative;\n  cursor: pointer;\n  text-align: center;\n  font-weight: 700;\n}\n.lot-actions > .lot-action-login {\n  position: absolute;\n  left: 0;\n  top: 50%;\n  transform: translate(0, -50%);\n  padding: 8px 8px;\n  border-radius: 0 100px 100px 0;\n  z-index: 2;\n  cursor: pointer;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\nimport { useLocalStorage } from \"@zyzgroup/core-web\";\nimport { mapState, context } from \"../../context/context\";\nimport { dialog, loading } from \"../../globalTeleport\";\nimport { useRouter } from \"../../hooks\";\nimport Button from \"../form/Button.vue\";\nimport Text from \"../form/Text.vue\";\nimport ContentSpaceBetween from \"../layout/ContentSpaceBetween.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Button, Text, ContentSpaceBetween },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    billsn: string;\n  }>(),\n  {\n    billsn: \"\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"reloadOrder\", ordersn: string): void;\n}>();\n\nconst mappedState = mapState([\n  \"user.openid\",\n  \"bill.sn\",\n  \"bill.merchsn\",\n  \"park.isROBOT\",\n  \"color.foregroundPattern\",\n  \"color.panelBorderPattern\",\n  \"color.redCommon\",\n  \"color.redSecondaryCommon\",\n  \"color.redSecondaryBorderCommon\"\n]);\n\nconst router = useRouter();\n\n// https://yaoyao.cebbank.com/LifePayment/webApp/h5/router.html?transType=01&canalType=13&canal=njczfs&ItemCode=860729765&userNo=32010025101035852255\nfunction gotoPay() {\n  context.ds.immediately(loading);\n  const billsn = props.billsn || mappedState[\"bill.sn\"].value;\n  context.axios\n    .post(\n      // `/api/v6/bill/${billsn}/pay`,\n      `/api/v6/bill/${billsn}/paywithmerch`,\n      {\n        openid: mappedState[\"user.openid\"].value,\n        type: \"U\",\n        merchsn: mappedState[\"bill.merchsn\"].value\n      },\n      {\n        retry: 0,\n        cache: 0\n      }\n    )\n    .then((result) => {\n      if (result.data.path) {\n        context.ds.closeLast();\n\n        // 跳转到第三方链接\n        // location.href = result.data.path;\n\n        // if (mappedState[\"park.isROBOT\"].value) {\n        //   push(\"/unlocking\");\n        // } else {\n        context.store.dispatch({\n          type: \"SET_RESULT\",\n          payload: {\n            status: \"success\",\n            title: \"支付成功\",\n            subtitle: \"请及时驶离车位，否则将继续计费\"\n          }\n        });\n        router.push(\"/result\");\n        // }\n      } else {\n        context.ds.immediately(dialog, {\n          title: \"接口出错\",\n          content: \"接口未返回跳转链接 path !\",\n          confirmText: \"知道了\",\n          mode: \"mini\",\n          onClose: () => {}\n        });\n      }\n    })\n    .catch((result) => {\n      context.ds.immediately(dialog, {\n        title: \"接口出错\",\n        content: result.data.error,\n        confirmText: \"知道了\",\n        mode: \"mini\",\n        onClose: () => {\n          const ordersn = result.data.sn ? String(result.data.sn) : \"\";\n          // 800 {\"error\":\"预订单已经过期，请重新生成订单！\",\"data\":{\"sn\":170172}}\n          // 600 {\"error\":\"支付单已经有明确的商户号！\"}\n          // if (result.status == 800) {\n          emits(\"reloadOrder\", ordersn);\n          // }\n        }\n      });\n    });\n}\n\nconst { get, set } = useLocalStorage(\"xg-footer-warn\");\nconst showWarn = ref(!get());\nfunction closeWarn() {\n  set(\"hide\");\n  showWarn.value = false;\n}\n</script>\n\n<template>\n  <div\n    class=\"xg-footer\"\n    :style=\"{\n      backgroundColor: `${mappedState['color.foregroundPattern'].value}`,\n      borderTop: `1px solid ${mappedState['color.panelBorderPattern'].value}`\n    }\"\n  >\n    <ContentSpaceBetween\n      v-if=\"showWarn\"\n      class=\"xg-footer-warn\"\n      :style=\"{\n        color: mappedState['color.redCommon'].value,\n        backgroundColor: mappedState['color.redSecondaryCommon'].value,\n        border: `1px solid ${mappedState['color.redSecondaryBorderCommon'].value}`\n      }\"\n    >\n      <Text\n        type=\"warn\"\n        :color=\"mappedState['color.redCommon'].value\"\n      >\n        上车前，请确认车底翻板已降下完成。\n      </Text>\n      <Button\n        colorPattern=\"red\"\n        mode=\"transparent\"\n        size=\"tertiary\"\n        :capsule=\"true\"\n        :backgroundColor=\"mappedState['color.foregroundPattern'].value\"\n        @throttledClick=\"closeWarn\"\n      >\n        不再提醒\n      </Button>\n    </ContentSpaceBetween>\n    <div class=\"xg-footer-inner\">\n      <Button\n        width=\"100%\"\n        @throttledClick=\"gotoPay\"\n      >\n        去支付\n      </Button>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.xg-footer {\n  position: relative;\n  box-sizing: border-box;\n}\n.xg-footer-warn {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  transform: translate(0, -100%);\n  font-size: 14px;\n  box-sizing: border-box;\n  padding: 6px var(--yz-padding-horizontal);\n}\n.xg-footer-inner {\n  box-sizing: border-box;\n  width: 100%;\n  padding: var(--yz-padding-vertical) var(--yz-padding-horizontal);\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { Status, mapState, context } from \"../../context/context\";\nimport Page from \"../base/Page.vue\";\nimport ContentTopCenter from \"../layout/ContentTopCenter.vue\";\nimport IconStatus from \"../icon/IconStatus.vue\";\nimport CallPhone from \"../widget/CallPhone.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page, ContentTopCenter, IconStatus, CallPhone },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    status?: Status;\n    title?: string;\n    subtitle?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\n  \"result.status\",\n  \"result.title\",\n  \"result.subtitle\",\n  \"park.phone\",\n  \"color.fontPattern\",\n  \"color.fontTertiaryPattern\"\n]);\n\nconst status = props.status || mappedState[\"result.status\"].value;\nconst title = props.title || mappedState[\"result.title\"].value;\nconst subtitle = props.subtitle || mappedState[\"result.subtitle\"].value;\n</script>\n\n<template>\n  <Page class=\"result\">\n    <ContentTopCenter class=\"result-content\">\n      <div class=\"result-img\">\n        <IconStatus\n          :status=\"status\"\n          mode=\"fullfill\"\n        ></IconStatus>\n      </div>\n      <div\n        v-if=\"title\"\n        class=\"result-title\"\n        :style=\"{\n          color: mappedState['color.fontPattern'].value\n        }\"\n      >\n        {{ title }}\n      </div>\n      <div\n        v-if=\"subtitle\"\n        class=\"result-subtitle\"\n        :style=\"{\n          color: mappedState['color.fontTertiaryPattern'].value\n        }\"\n      >\n        {{ subtitle }}\n      </div>\n    </ContentTopCenter>\n\n    <template #footer>\n      <CallPhone\n        class=\"result-bottom\"\n        :phone=\"mappedState['park.phone'].value || context.static.hotline\"\n      ></CallPhone>\n    </template>\n  </Page>\n</template>\n\n<style scoped>\n.result-content {\n  padding: 40px var(--yz-padding-horizontal, 15px) 0;\n}\n.result-img {\n  width: 64px;\n}\n.result-title {\n  font-size: 20px;\n  margin-top: 16px;\n  font-weight: bold;\n  text-align: center;\n}\n.result-subtitle {\n  font-size: 14px;\n  margin-top: 7px;\n  text-align: center;\n}\n.result-bottom {\n  padding-bottom: var(--yz-padding-vertical-double, 20px);\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { mapState, context } from \"../../context/context\";\nimport Page from \"../base/Page.vue\";\nimport LayoutCenter from \"../layout/LayoutCenter.vue\";\nimport ContentCenter from \"../layout/ContentCenter.vue\";\nimport CallPhone from \"../widget/CallPhone.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page, LayoutCenter, ContentCenter, CallPhone },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(defineProps<{}>(), {});\n\nconst mappedState = mapState([\n  \"park.phone\",\n  \"color.fontPattern\",\n  \"color.fontTertiaryPattern\"\n]);\n\n// const robot = `${import.meta.env.YZ_IMAGE_PATH}/lb-robot.png`;\n// const robotAnimate = `${import.meta.env.YZ_IMAGE_PATH}/lb-robot-animate.gif`;\nconst robot = `/public/images/xg/lb-robot.png`;\nconst robotAnimate = `/public/images/xg/lb-robot-animate.gif`;\n</script>\n\n<template>\n  <Page class=\"unlocking\">\n    <LayoutCenter>\n      <ContentCenter style=\"padding: var(--yz-padding-horizontal, 15px)\">\n        <div class=\"unlocking-img\">\n          <img :src=\"robot\" />\n          <img :src=\"robotAnimate\" />\n        </div>\n        <div\n          class=\"unlocking-text\"\n          :style=\"{\n            color: mappedState['color.fontPattern'].value\n          }\"\n        >\n          车底翻板正在降下，请耐心等待...\n        </div>\n      </ContentCenter>\n    </LayoutCenter>\n    <CallPhone\n      class=\"unlocking-bottom\"\n      :phone=\"mappedState['park.phone'].value || context.static.hotline\"\n    ></CallPhone>\n  </Page>\n</template>\n\n<style scoped>\n.unlocking-img {\n  position: relative;\n}\n.unlocking-img > img:nth-child(1) {\n  width: 4rem;\n  height: 1.82rem;\n}\n.unlocking-img > img:nth-child(2) {\n  position: absolute;\n  top: -0.5rem;\n  right: 0;\n  width: 1.86rem;\n  height: 1.94rem;\n}\n.unlocking-text {\n  font-size: var(--yz-font-size, 16px);\n  margin-top: 17px;\n  font-weight: bold;\n  text-align: center;\n}\n.unlocking-bottom {\n  position: absolute;\n  z-index: 2;\n  bottom: var(--yz-padding-vertical-double, 20px);\n  width: 100%;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\nimport {\n  createCommonPhoneValidator,\n  createCommonLengthValidator\n} from \"@zyzgroup/core-common\";\nimport { context } from \"../../context/context\";\nimport { loading, toast } from \"../../globalTeleport\";\nimport { useRouter } from \"../../hooks/useVueRouter\";\nimport Page from \"../base/Page.vue\";\nimport Input from \"../form/Input.vue\";\nimport Button from \"../form/Button.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page, Input, Button },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(defineProps<{}>(), {});\n\nconst router = useRouter();\n\nconst disabledCaptcha = ref(true);\nconst disabledLogin = ref(true);\n\nconst commonPhoneValidator = createCommonPhoneValidator({\n  emptyError: \"请输入手机号\",\n  error: \"请输入正确的手机号\"\n});\nconst commonLengthValidator = createCommonLengthValidator(4, {\n  emptyError: \"请输入验证码\",\n  error: \"验证码必须为4位数\"\n});\n\nlet phone = \"\";\nfunction inputPhone(v) {\n  phone = v;\n  checkBtnStatus();\n}\n\nlet captcha = \"\";\nfunction inputCaptcha(v) {\n  captcha = v;\n  checkBtnStatus();\n}\n\nfunction checkBtnStatus() {\n  disabledCaptcha.value = !!captchaInterval || !phone;\n  disabledLogin.value = !phone || !captcha;\n}\n\nconst captchaText = ref(\"获取验证码\");\nlet captchaInterval;\n\nasync function clickCaptcha() {\n  if (captchaInterval) {\n    return;\n  }\n  disabledCaptcha.value = true;\n  context.ds.immediately(loading);\n  context.axios\n    .post(\"/api/v2/auth/genValidSN\", { mobileno: phone })\n    .then((result) => {\n      context.ds.closeLast();\n      let count = 60;\n      captchaText.value = `${count}秒后可重发`;\n      captchaInterval = setInterval(() => {\n        count--;\n        captchaText.value = `${count}秒后可重发`;\n        if (count == 0) {\n          clearInterval(captchaInterval);\n          captchaInterval = undefined;\n          captchaText.value = `获取验证码`;\n          checkBtnStatus();\n        }\n      }, 1000);\n    })\n    .catch((result) => {\n      context.ds.immediately(toast, {\n        status: \"error\",\n        content: result.data.error || JSON.stringify(result.data),\n        onClose: () => {\n          checkBtnStatus();\n        }\n      });\n    });\n}\n\nfunction clickLogin() {\n  context.ds.immediately(loading);\n  context.axios\n    .post(\"/api/v2/auth/quickLogin\", {\n      mobileno: phone,\n      validsn: captcha,\n      ufrom: \"h5\"\n    })\n    .then((result) => {\n      const token = result.data.r.token;\n      context.static.token.set(token);\n      context.store.dispatch({\n        type: \"SET_USER\",\n        payload: result.data.r || {}\n      });\n      context.ds.immediately(toast, {\n        status: \"success\",\n        content: \"登录成功\",\n        onClose: () => {\n          router.back();\n        }\n      });\n    })\n    .catch((result) => {\n      context.ds.immediately(toast, {\n        status: \"error\",\n        content: result.data.error || JSON.stringify(result.data),\n        onClose: () => {\n          checkBtnStatus();\n        }\n      });\n    });\n}\n</script>\n\n<template>\n  <Page class=\"login-in-phone\">\n    <div class=\"title\">手机验证码登录</div>\n    <div class=\"phone\">\n      <Input\n        placeholderType=\"underline\"\n        placeholder=\"请输入手机号\"\n        :showError=\"true\"\n        :validator=\"commonPhoneValidator\"\n        @input=\"inputPhone\"\n      ></Input>\n    </div>\n    <div class=\"captcha\">\n      <Input\n        placeholderType=\"underline\"\n        placeholder=\"请输入验证码\"\n        :showError=\"true\"\n        :validator=\"commonLengthValidator\"\n        @input=\"inputCaptcha\"\n      >\n        <Button\n          mode=\"transparent\"\n          :disabled=\"disabledCaptcha\"\n          @throttled-click=\"clickCaptcha\"\n        >\n          {{ captchaText }}\n        </Button>\n      </Input>\n    </div>\n    <div class=\"btn\">\n      <Button\n        mode=\"primary\"\n        :capsule=\"true\"\n        width=\"100%\"\n        :disabled=\"disabledLogin\"\n        @throttled-click=\"clickLogin\"\n      >\n        登录\n      </Button>\n    </div>\n  </Page>\n</template>\n\n<style scoped>\n.login-in-phone {\n  padding: 0.76rem 0.6rem 0.6rem;\n}\n.login-in-phone .title {\n  font-size: 20px;\n  font-weight: bold;\n}\n.login-in-phone .phone {\n  margin-top: 0.3rem;\n}\n.login-in-phone .captcha {\n  margin-top: 0.3rem;\n}\n.login-in-phone .btn {\n  margin-top: 0.6rem;\n}\n</style>\n","<script lang=\"tsx\" setup>\nimport { setWindowTitle } from \"@zyzgroup/core-web\";\nimport Page from \"../base/Page.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    src?: string; // encodeURIComponent(\"https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159\")\n    title?: string;\n  }>(),\n  {\n    src: \"\",\n    title: \"\"\n  }\n);\n\nsetWindowTitle(props.title);\nconst src = decodeURIComponent(props.src);\n</script>\n\n<template>\n  <Page>\n    <div class=\"view-document\">\n      <img\n        class=\"view-document-img\"\n        :src=\"src\"\n      />\n    </div>\n  </Page>\n</template>\n\n<style scoped>\n.view-document {\n  box-sizing: border-box;\n  width: 100%;\n  padding: var(--yz-padding-horizontal, 15px);\n}\n.view-document-img {\n  width: 100%;\n}\n</style>\n","<script setup lang=\"ts\">\n// import \"@zyzgroup/core-web/dist/css/better.css\";\n// import \"@zyzgroup/core-web/dist/css/theme.css\";\n// import \"@zyzgroup/core-web/dist/css/font.css\";\n\nimport \"@zyzgroup/core-web/dist/css/rem_750.css\";\nimport {\n  FeRouteDirection,\n  setRem,\n  SupportedEaseNameToCubicBezier\n} from \"@zyzgroup/core-web\";\n\nimport {\n  provide,\n  onUnmounted,\n  ref,\n  shallowRef,\n  reactive,\n  shallowReactive\n} from \"vue\";\nimport type { Component } from \"vue\";\nimport {\n  context,\n  ContextEventBusListeners,\n  Context,\n  mapState\n} from \"../../context/context\";\n\nimport {\n  RouterView,\n  getCurrentRouteDetail,\n  routeChange$\n} from \"../../hooks/useVueRouter\";\nimport Page from \"./Page.vue\";\nimport { CSSAnimationName } from \"@zyzgroup/core-common\";\n\n// import ResizeObserver from \"./components/base/ResizeObserver.vue\";\n// import FPSStats from \"../fps/FPSStats.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Page },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    designWidth?: number;\n  }>(),\n  {\n    designWidth: 750\n  }\n);\n\n// import(\n//   /* @vite-ignore */ `@zyzgroup/core-web/dist/rem_${props.designWidth}.css`\n// );\nsetRem(props.designWidth);\n\n// const layout = ref(document.documentElement.dataset.layout);\n\nprovide<Context<ContextEventBusListeners>>(\"context\", context);\n// const context = inject<Context<ContextEventBusListeners>>(\"context\");\n// const context = inject<Context>(\"context\");\n\n// const app = inject(\"app\", null) as unknown as App<Element>;\n\nconst mappedState = mapState([\"color.panelPattern\", \"color.fontPattern\"]);\n\n// const resize = (size: { width: number; height: number }) => {\n//   context.eb.emit(\"globalResize\", size.width, size.height);\n// };\n\nconst RouteComboEffecs: Record<\n  string,\n  Record<\n    \"prev\" | \"next\",\n    {\n      name: CSSAnimationName;\n      timingFunction: SupportedEaseNameToCubicBezier;\n      duration: number;\n      delay: number;\n      top?: (direction: FeRouteDirection) => -1 | 1;\n    }\n  >\n> = {\n  moveToLeft: {\n    prev: {\n      name: \"moveToLeft\",\n      timingFunction: \"ease-out\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromRight\",\n      timingFunction: \"ease-out\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToRight: {\n    prev: {\n      name: \"moveToRight\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromLeft\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToTop: {\n    prev: {\n      name: \"moveToTop\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromBottom\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToBottom: {\n    prev: {\n      name: \"moveToBottom\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromTop\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveFromLeftPrevFade: {\n    prev: {\n      name: \"fade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0,\n      top: (direction: FeRouteDirection) => (direction == \"forward\" ? -1 : 1)\n    },\n    next: {\n      name: \"moveFromLeft\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0,\n      top: (direction: FeRouteDirection) => (direction == \"forward\" ? 1 : -1)\n    }\n  },\n  moveFromRightPrevFade: {\n    prev: {\n      name: \"fade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromRight\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveFromTopPrevFade: {\n    prev: {\n      name: \"fade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromTop\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveFromBottomPrevFade: {\n    prev: {\n      name: \"fade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromBottom\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToLeftFade: {\n    prev: {\n      name: \"moveToLeftFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromRightFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToRightFade: {\n    prev: {\n      name: \"moveToRightFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromLeftFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToTopFade: {\n    prev: {\n      name: \"moveToTopFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromBottomFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToBottomFade: {\n    prev: {\n      name: \"moveToBottomFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromTopFade\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  },\n  moveToLeftEasing: {\n    prev: {\n      name: \"moveToLeft\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    },\n    next: {\n      name: \"moveFromRight\",\n      timingFunction: \"linear\",\n      duration: 300,\n      delay: 0\n    }\n  }\n};\n\nconst comboEffect = RouteComboEffecs[\"moveToLeft\"];\n\nconst pages = shallowReactive<\n  {\n    fullPath: string;\n    component: Component;\n    props: Record<string, any>;\n  }[]\n>([]);\nconst refs = [];\n\nlet direction = \"keep\";\nconst fromIndex = ref(-1);\nconst toIndex = ref(-1);\n\nlet forwardNewPageAction = null;\n\nconst rs$ = routeChange$.subscribe(([newRoute, oldRoute, route, history]) => {\n  // console.log(\"Root: \", newRoute, oldRoute, route, history);\n  const foundNewIndex = pages.findIndex((p) => p.fullPath == newRoute.fullPath);\n  const foundOldIndex = pages.findIndex((p) => p.fullPath == oldRoute.fullPath);\n  direction = route.direction;\n  switch (route.direction) {\n    case \"keep\":\n      const keepIndex =\n        foundNewIndex >= 0\n          ? foundNewIndex\n          : foundOldIndex >= 0\n          ? foundOldIndex\n          : -1;\n      if (keepIndex < 0) {\n        pages.push({\n          fullPath: newRoute.fullPath,\n          component: newRoute.component,\n          props: newRoute.props\n        });\n      }\n      fromIndex.value = -1;\n      toIndex.value = keepIndex >= 0 ? keepIndex : pages.length - 1;\n      break;\n    case \"forward\":\n      if (foundOldIndex < 0) {\n        pages.push({\n          fullPath: oldRoute.fullPath,\n          component: oldRoute.component,\n          props: oldRoute.props\n        });\n        fromIndex.value = pages.length - 1;\n      } else {\n        fromIndex.value = foundOldIndex;\n      }\n      if (foundNewIndex < 0) {\n        // 与浏览器行为保持一致：删除部分记录\n        pages.splice(fromIndex.value + 1);\n        pages.push({\n          fullPath: newRoute.fullPath,\n          component: newRoute.component,\n          props: newRoute.props\n        });\n        // 只添加新数据\n        toIndex.value = -1;\n        refs[fromIndex.value]?.open(comboEffect.prev);\n        forwardNewPageAction = () => {\n          // 开启动画\n          toIndex.value = pages.length - 1;\n          refs[toIndex.value]?.open(comboEffect.next);\n        };\n      } else {\n        toIndex.value = foundNewIndex;\n        refs[fromIndex.value]?.open(comboEffect.prev);\n        refs[toIndex.value]?.open(comboEffect.next);\n      }\n      break;\n    case \"backward\":\n      if (foundOldIndex < 0) {\n        pages.push({\n          fullPath: oldRoute.fullPath,\n          component: oldRoute.component,\n          props: oldRoute.props\n        });\n        fromIndex.value = pages.length - 1;\n      } else {\n        fromIndex.value = foundOldIndex;\n      }\n      if (foundNewIndex < 0) {\n        const newIndex = Math.max(fromIndex.value - 1, 0);\n        pages.splice(newIndex, 0, {\n          fullPath: newRoute.fullPath,\n          component: newRoute.component,\n          props: newRoute.props\n        });\n        toIndex.value = newIndex;\n      } else {\n        toIndex.value = foundNewIndex;\n      }\n      refs[fromIndex.value]?.close(comboEffect.next);\n      refs[toIndex.value]?.close(comboEffect.prev);\n      break;\n  }\n  // console.log(\"pages: \", pages);\n});\n\nfunction getDynamicZIndex(index: number): number {\n  const defaulZIndex = 1;\n  const lowerZIndex = 2;\n  const higherZIndex = 3;\n  // console.log(\"*******\");\n  // console.log(...pages);\n  // console.log(\"current index: \", index);\n  // console.log(\"direction: \", direction);\n  // console.log(\"from index: \", fromIndex.value);\n  // console.log(\"to index: \", toIndex.value);\n  let resultIndex = defaulZIndex;\n  switch (direction) {\n    case \"keep\":\n      break;\n    case \"forward\":\n      if (index == fromIndex.value) {\n        resultIndex = comboEffect.prev.top\n          ? comboEffect.prev.top(direction) > 0\n            ? higherZIndex\n            : lowerZIndex\n          : defaulZIndex;\n      }\n      if (index == toIndex.value) {\n        resultIndex = comboEffect.next.top\n          ? comboEffect.next.top(direction) > 0\n            ? higherZIndex\n            : lowerZIndex\n          : defaulZIndex;\n      }\n      break;\n    case \"backward\":\n      if (index == fromIndex.value) {\n        resultIndex = comboEffect.next.top\n          ? comboEffect.next.top(direction) > 0\n            ? higherZIndex\n            : lowerZIndex\n          : defaulZIndex;\n      }\n      if (index == toIndex.value) {\n        resultIndex = comboEffect.prev.top\n          ? comboEffect.prev.top(direction) > 0\n            ? higherZIndex\n            : lowerZIndex\n          : defaulZIndex;\n      }\n      break;\n  }\n  // console.log(\"resultIndex: \", resultIndex);\n  return resultIndex;\n}\n\nfunction resetNewPage() {\n  // 同一祖先下，如果有多个Page，可能会出错\n  context.ds.clear();\n}\n\nfunction dismissOldPage() {\n  fromIndex.value = -1;\n}\n\nconst pageOpenStart = () => {\n  // console.log(\"pageOpenStart\");\n  resetNewPage();\n  forwardNewPageAction?.();\n  forwardNewPageAction = null;\n};\nconst pageOpenEnd = () => {\n  // console.log(\"pageOpenEnd\");\n  dismissOldPage();\n};\nconst pageCloseStart = () => {\n  // console.log(\"pageCloseStart\");\n  resetNewPage();\n};\nconst pageCloseEnd = () => {\n  // console.log(\"pageCloseEnd\");\n  dismissOldPage();\n};\n\nonUnmounted(() => {\n  rs$.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"root\"\n    style=\"\n      position: relative;\n      width: 100%;\n      width: 100vw;\n      height: 100%;\n      height: 100vh;\n      margin: 0 auto;\n      overflow: hidden;\n      box-sizing: border-box;\n    \"\n    :style=\"{\n      backgroundColor: `${mappedState['color.panelPattern'].value}`,\n      color: `${mappedState['color.fontPattern'].value}`\n    }\"\n  >\n    <!-- <KeepAlive> 是一个内置组件，它的功能是在多个组件间动态切换时缓存被移除的组件实例 -->\n    <!-- 它会根据组件的 name 选项进行匹配，所以组件如果想要条件性地被 KeepAlive 缓存，就必须显式声明一个 name 选项 -->\n    <!-- include=\"a,b\" :include=\"/a|b/\" :include=\"['a', 'b']\" -->\n    <!-- exclude=\"a,b\" :exclude=\"/a|b/\" :exclude=\"['a', 'b']\" -->\n    <!-- 限制可被缓存的最大组件实例数 :max=\"10\" -->\n    <!--\n  <KeepAlive>\n    <Suspense>\n      <component :is=\"Component\"></component>\n      <template #fallback>正在加载...</template>\n    </Suspense>\n  </KeepAlive>\n  -->\n\n    <!--\n      Vue Router 使用动态导入对懒加载组件进行了内置支持。\n      这些与异步组件不同，目前他们不会触发 <Suspense>。\n      但是，它们仍然可以有异步组件作为后代，这些组件可以照常触发 <Suspense>。\n    -->\n    <!-- <RouterView v-slot=\"{ Component, route }\">\n      <KeepAlive>\n        <component\n          :is=\"Component\"\n          v-bind=\"getCurrentRouteDetail(route).props\"\n        ></component>\n      </KeepAlive>\n    </RouterView> -->\n\n    <!-- 自定义 <RouterView> -->\n    <Page\n      v-for=\"(page, index) in pages\"\n      v-show=\"fromIndex == index || toIndex == index\"\n      :ref=\"(el) => (refs[index] = el)\"\n      @pageOpenStart=\"pageOpenStart\"\n      @pageOpenEnd=\"pageOpenEnd\"\n      @pageCloseStart=\"pageCloseStart\"\n      @pageCloseEnd=\"pageCloseEnd\"\n      :style=\"{\n        position: 'absolute',\n        width: '100%',\n        height: '100%',\n        zIndex: getDynamicZIndex(index)\n      }\"\n    >\n      <KeepAlive>\n        <component\n          :is=\"page.component\"\n          v-bind=\"page.props\"\n        ></component>\n      </KeepAlive>\n    </Page>\n\n    <!-- <ResizeObserver @resize=\"resize\"></ResizeObserver> -->\n    <!-- <FPSStats></FPSStats> -->\n  </div>\n</template>\n\n<style>\n/* for ce */\n/* index.html 全局加载：@import \"@zyzgroup/core-web/dist/css/better.css\"; */\n/* index.html 全局加载：@import \"@zyzgroup/core-web/dist/css/theme.css\"; */\n/* index.html 全局加载：@import \"@zyzgroup/core-web/dist/css/font.css\"; */\n\n/* for ce ： 在上方<script>内引入 */\n/* @import \"@zyzgroup/core-web/dist/rem_750.css\"; */\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref, watchEffect } from \"vue\";\nimport { CSSAnimationName } from \"@zyzgroup/core-common\";\nimport {\n  useSafeArea$,\n  SupportedEaseNameToCubicBezier\n} from \"@zyzgroup/core-web\";\nimport CSSAnimation, { type CSSAnimationOptions } from \"./CSSAnimation.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { CSSAnimation },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    action?: \"open\" | \"close\" | \"static\";\n    name?: CSSAnimationName;\n    timingFunction?: SupportedEaseNameToCubicBezier;\n    duration?: number;\n    delay?: number;\n  }>(),\n  {\n    action: \"static\", // 默认：已 open\n    name: \"moveFromRight\",\n    timingFunction: \"ease\",\n    duration: 300,\n    delay: 0\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"pageOpenStart\"): void;\n  (event: \"pageOpenEnd\"): void;\n  (event: \"pageCloseStart\"): void;\n  (event: \"pageCloseEnd\"): void;\n}>();\n\nconst r = ref();\n\nconst safeAreaBottom = ref(\"0px\");\nlet safeArea$;\nonMounted(() => {\n  safeArea$ = useSafeArea$().subscribe((s) => {\n    safeAreaBottom.value = s.bottom;\n  });\n});\nonUnmounted(() => {\n  safeArea$?.unsubscribe();\n});\n\nlet action = \"static\";\n\nconst cssanimationstart = () => {\n  switch (action) {\n    case \"open\":\n      emits(\"pageOpenStart\");\n      break;\n    case \"close\":\n      emits(\"pageCloseStart\");\n      break;\n    default:\n      // 忽略：其他组件触发的 cssanimationstart\n      break;\n  }\n};\n\nconst cssanimationend = () => {\n  switch (action) {\n    case \"open\":\n      emits(\"pageOpenEnd\");\n      break;\n    case \"close\":\n      emits(\"pageCloseEnd\");\n      break;\n    default:\n      // 忽略：其他组件触发的 cssanimationend\n      break;\n  }\n  action = \"static\";\n};\n\nconst open = (options?: CSSAnimationOptions) => {\n  action = \"open\";\n  r.value?.trigger(options);\n};\n\nconst close = (options?: CSSAnimationOptions) => {\n  action = \"close\";\n  r.value?.triggerReverse(options);\n};\n\nwatchEffect(() => {\n  switch (props.action) {\n    case \"open\":\n      open();\n      break;\n    case \"close\":\n      close();\n      break;\n    case \"static\":\n    default:\n      break;\n  }\n});\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <CSSAnimation\n    ref=\"r\"\n    class=\"page\"\n    :class=\"props.name\"\n    :name=\"props.name\"\n    :timingFunction=\"props.timingFunction\"\n    :duration=\"props.duration\"\n    :delay=\"props.delay\"\n    @cssanimationstart=\"cssanimationstart\"\n    @cssanimationend=\"cssanimationend\"\n  >\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\n      class=\"page-footer\"\n      :style=\"{ paddingBottom: safeAreaBottom }\"\n    >\n      <slot name=\"footer\"></slot>\n    </div>\n\n    <div class=\"page-global\">\n      <slot name=\"global\"></slot>\n    </div>\n  </CSSAnimation>\n</template>\n\n<style scoped>\n.page {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  box-sizing: border-box;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n}\n.page-header {\n  z-index: 2;\n  flex: 0 0 auto;\n  width: 100%;\n  box-sizing: border-box;\n  position: relative;\n}\n.page-main {\n  z-index: 1;\n  flex: 1 1 auto;\n  width: 100%;\n  box-sizing: border-box;\n  position: relative;\n  overflow: hidden;\n  display: flex;\n  flex-direction: column;\n}\n.page-main-scroll {\n  flex: 1 1 auto;\n  width: 100%;\n  box-sizing: border-box;\n  position: relative;\n  overflow-y: scroll;\n}\n.page-footer {\n  z-index: 2;\n  flex: 0 0 auto;\n  width: 100%;\n  box-sizing: border-box;\n  position: relative;\n}\n/*\n.page-main-scroll > :nth-child(1) {\n  min-height: 100%;\n}\n*/\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { throttle } from \"@zyzgroup/core-common\";\nimport CSSAnimation from \"./CSSAnimation.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { CSSAnimation },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    isRefreshing?: boolean;\n    isLoading?: boolean;\n    isNoMore?: boolean;\n  }>(),\n  {\n    isRefreshing: false, // 父组件正在响应：下拉刷新\n    isLoading: false, // 父组件正在响应：上拉加载\n    isNoMore: false // 没有更多了\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"refreshing\"): void; // 顶部下拉刷新\n  (event: \"loading\"): void; // 底部上拉加载\n}>();\n\nconst el = ref();\n\n// const scroll = throttle(() => {\nconst scroll = () => {\n  const container = el.value;\n  if (!container) {\n    return;\n  }\n  const scrollTop = container.scrollTop;\n  const scrollHeight = container.scrollHeight;\n  const clientHeight = container.clientHeight;\n  // 顶部下拉刷新\n  if (scrollTop <= 0 && !props.isRefreshing && !props.isLoading) {\n    emits(\"refreshing\");\n    return;\n  }\n  // 底部上拉加载\n  if (props.isNoMore) {\n    return;\n  }\n  if (\n    scrollTop + clientHeight >= scrollHeight &&\n    !props.isRefreshing &&\n    !props.isLoading\n  ) {\n    emits(\"loading\");\n    return;\n  }\n};\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    ref=\"el\"\n    class=\"list\"\n    @scroll=\"scroll\"\n  >\n    <!-- 顶部下拉刷新 -->\n    <div\n      v-if=\"props.isRefreshing\"\n      class=\"list-refreshing\"\n    >\n      <div class=\"list-loader\"></div>\n    </div>\n\n    <!-- 真正内容 -->\n    <slot></slot>\n\n    <!-- 底部上拉加载 -->\n    <div\n      v-if=\"props.isLoading\"\n      class=\"list-loading\"\n    >\n      <div class=\"list-loader\"></div>\n    </div>\n\n    <!-- 没有更多了 -->\n    <div\n      v-if=\"props.isNoMore\"\n      class=\"list-loading\"\n    >\n      没有更多了\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.list {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  overflow-y: scroll;\n}\n.list-refreshing,\n.list-loading {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  font-size: var(--yz-font-size-secondary, 14px);\n  color: #cccccc;\n  padding: 10px 0;\n}\n.list-loader {\n  width: 20px;\n  height: 20px;\n  background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n  background-position: 50%;\n  background-size: 100%;\n  background-repeat: no-repeat;\n  animation: loader-spin 1s steps(12, end) infinite;\n}\n@keyframes loader-spin {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport {\n  StyleValue,\n  onMounted,\n  onUnmounted,\n  ref,\n  watch,\n  watchEffect\n} from \"vue\";\nimport { throttle } from \"@zyzgroup/core-common\";\nimport {\n  getInnerText,\n  useClipboard,\n  tap$,\n  DrawShape,\n  DrawType,\n  DrawContext,\n  requestAnimationFrameCycle\n} from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nexport type DisplayType = \"full\" | \"shrink\" | \"empty\";\n\nconst props = withDefaults(\n  defineProps<{\n    type?: DrawType;\n    display?: DisplayType;\n    shapes?: DrawShape[]; // const shapes = ref([]);\n    loop?: boolean;\n    enableCustomContext?: boolean;\n    supportCopyToClipboard?: boolean; // 是否支持复制文字\n  }>(),\n  {\n    type: \"div\",\n    display: \"full\",\n    shapes: () => [],\n    loop: false,\n    enableCustomContext: false,\n    supportCopyToClipboard: false\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"mount\", box: { el: HTMLElement; rect: DOMRect }): void;\n  (event: \"resize\", box: { el: HTMLElement; rect: DOMRect }): void;\n  (\n    event: \"start\",\n    drawContext: DrawContext,\n    box: { el: HTMLElement; rect: DOMRect }\n  ): void;\n  (\n    event: \"frame\",\n    drawContext: DrawContext,\n    box: { el: HTMLElement; rect: DOMRect }\n  ): void;\n  (\n    event: \"end\",\n    drawContext: DrawContext,\n    box: { el: HTMLElement; rect: DOMRect }\n  ): void;\n  (event: \"copyToClipboardSuccess\", text: string): void;\n  (event: \"copyToClipboardError\", err: string): void;\n  (event: \"throttledClick\", e: Event): void;\n  (event: \"click\", e: Event): void;\n}>();\n\nconst r = ref();\n\nlet drawContext;\nlet resizeSubscription;\nlet tapSubscription;\nlet cancelAnimationFrame;\n\nlet isEmitMount = false;\n\n// props.shapes 地址更新时，重新 emits(\"start\")\nlet isShapesUpdated = true;\nwatch(\n  () => props.shapes,\n  (newVal, oldVal) => {\n    if (!drawContext) {\n      return;\n    }\n    if (!r.value) {\n      return;\n    }\n    isShapesUpdated = newVal !== oldVal;\n    if (isShapesUpdated) {\n      startAnimationFrame(drawContext, {\n        el: r.value,\n        rect: drawContext.rect\n      });\n    }\n  }\n);\n\nfunction startAnimationFrame(drawContext, box) {\n  cancelAnimationFrame?.();\n  emits(\"start\", drawContext, box);\n  cancelAnimationFrame = requestAnimationFrameCycle(() => {\n    emits(\"frame\", drawContext, box);\n    if (props.shapes.length) {\n      if (isShapesUpdated) {\n        drawContext.draw(...props.shapes);\n        isShapesUpdated = false;\n      } else {\n        drawContext.draw(); // 传入空数组：保持原 shapes 以提高性能\n      }\n    } else {\n      drawContext.clear();\n      cancelAnimationFrame?.();\n      emits(\"end\", drawContext, box);\n    }\n    return props.loop;\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\n  if (!drawContext) {\n    drawContext = new DrawContext(\n      r.value,\n      props.type,\n      props.enableCustomContext\n    );\n    resizeSubscription = drawContext.size$.subscribe((rect) => {\n      if (rect) {\n        const box = { el: r.value, rect };\n        if (!isEmitMount) {\n          isEmitMount = true;\n          emits(\"mount\", box);\n        }\n        emits(\"resize\", box);\n        startAnimationFrame(drawContext, box);\n      }\n    });\n  }\n\n  if (props.supportCopyToClipboard && !tapSubscription) {\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\nconst isClicked = ref(false);\nconst throttledClick = throttle((e: Event) => {\n  isClicked.value = true;\n  setTimeout(() => {\n    isClicked.value = false;\n    emits(\"throttledClick\", e);\n    emits(\"click\", e);\n    // const dataset = (e.target as HTMLElement).dataset;\n  }, 100);\n  // const dataset = (e.currentTarget as HTMLElement).dataset;\n\n  // 注意 ce 中不可用： const dataset = ((e.currentTarget || e.target) as HTMLElement).dataset;\n  // ce 中 e.currentTarget 为 null, e.target 为 customElement 实例\n}, 300);\n\nonMounted(() => {});\n\nonUnmounted(() => {\n  cancelAnimationFrame?.();\n  resizeSubscription?.unsubscribe();\n  tapSubscription?.unsubscribe();\n  drawContext?.destroy();\n});\n\n// 不推荐使用\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      props.display == 'empty' ? {} :\n      Object.assign(\n        props.display == 'shrink' ? {\n          display:'inline-block',\n          width: 'auto',\n          height: 'auto'\n        } :\n        props.display == 'full' ? {\n          display:  'block',\n          width:  '100%',\n          height: '100%',\n        } :\n        {},\n        {\n          position: 'relative',\n          boxSizing: 'border-box',\n          userSelect: 'auto',\n          /* overflow: 'hidden', */\n          /* pointer-events: 'none', */\n          /* cursor: 'pointer' */\n        }\n      ) as StyleValue\n    \"\n    @click=\"throttledClick\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { CSSProperties, onUnmounted, ref, watchEffect } from \"vue\";\nimport {\n  SupportedEaseNameToCubicBezier,\n  transitionStart$,\n  transitionEnd$\n} from \"@zyzgroup/core-web\";\n\nconst CSSTransitionNames = [\"superRainbow\"] as const;\nexport type CSSTransitionName = (typeof CSSTransitionNames)[number];\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nexport type CSSTransitionOptions = {\n  name?: CSSTransitionName;\n  timingFunction?: SupportedEaseNameToCubicBezier;\n  duration?: number;\n  delay?: number;\n};\n\nconst props = withDefaults(\n  defineProps<{\n    name?: CSSTransitionName;\n    timingFunction?: SupportedEaseNameToCubicBezier;\n    // linear\n    // ease\n    // ease-in\n    // ease-in-out\n    // ease-out\n    // cubic-bezier(0.25, 0.1, 0.25, 1)\n    duration?: number;\n    delay?: number;\n  }>(),\n  {\n    name: \"superRainbow\",\n    duration: 300,\n    timingFunction: \"ease-out\",\n    delay: 0\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"csstransitionstart\", e: TransitionEvent): void;\n  (event: \"csstransitionend\", e: TransitionEvent): void;\n}>();\n\nconst r = ref();\n\nlet s1;\nlet s2;\nwatchEffect(() => {\n  if (!r.value || s1 || s2) {\n    return;\n  }\n  s1 = transitionStart$(r.value).subscribe((e) => {\n    emits(\"csstransitionstart\", e);\n  });\n  s2 = transitionEnd$(r.value).subscribe((e) => {\n    emits(\"csstransitionend\", e);\n  });\n});\n\n// 设置预定义变化\nfunction getPredefinedStyle(options?: CSSTransitionOptions) {\n  switch (options?.name || props.name) {\n    case \"superRainbow\":\n      return {\n        common: {\n          backgroundSize: \"200% 100%\",\n          backgroundImage: `linear-gradient(90deg,red,orange,yellow,green,blue,violet)`\n        },\n        start: {\n          backgroundPosition: \"0 0\"\n        },\n        end: {\n          backgroundPosition: \"-100% 100%\"\n        }\n      };\n    default:\n      return {\n        common: {} as CSSProperties,\n        start: {} as CSSProperties,\n        end: {} as CSSProperties\n      };\n  }\n}\n\nfunction getBasicStyle(options?: CSSTransitionOptions) {\n  return {\n    // css-transition 渐变属性 : 某个属性 从 指定的开始状态 过渡到 特定的结束状态\n    // 一次性 + 不可暂停 + 不可反转\n\n    // transition: 属性名称 duration timing-function delay\n\n    // 可选属性名称:\n    // all\n    // width\n    // height\n    // border-width\n    // color\n    // background-color\n    // border-color\n    // text-decoration-color\n    // fill\n    // stroke\n    // opacity\n    // box-shadow\n    // transform\n    // filter\n    // backdrop-filter\n\n    // transition: `transform ${props.duration}ms ease-in-out, box-shadow ${props.duration}ms ease-in-out`,\n    transition: `all ${\n      typeof options?.duration == \"number\" ? options?.duration : props.duration\n    }ms ${options?.timingFunction || props.timingFunction} ${\n      typeof options?.delay == \"number\" ? options?.delay : props.delay\n    }ms`\n    // willChange: \"box-shadow, transform\",\n  } as CSSProperties;\n}\n\nconst style = ref<CSSProperties>({});\n\n// 清除\nfunction clear(options?: CSSTransitionOptions) {\n  const predefinedStyle = getPredefinedStyle(options);\n  style.value = {\n    ...getBasicStyle(options),\n    ...predefinedStyle.common,\n    ...predefinedStyle.start\n  };\n}\n// 初始化执行\nclear();\n\n// 触发\nfunction trigger(options?: CSSTransitionOptions) {\n  const predefinedStyle = getPredefinedStyle(options);\n  style.value = {\n    ...getBasicStyle(options),\n    ...predefinedStyle.common,\n    ...predefinedStyle.end\n  };\n}\n\nonUnmounted(() => {\n  s1?.unsubscribe();\n  s2?.unsubscribe();\n});\n\ndefineExpose({ clear, trigger });\n</script>\n\n<template>\n  <div\n    ref=\"r\"\n    class=\"css-transition\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, onUnmounted, watchEffect, CSSProperties } from \"vue\";\nimport { CSSAnimationName } from \"@zyzgroup/core-common\";\nimport {\n  SupportedEaseNameToCubicBezier,\n  animationEnd$,\n  animationStart$\n} from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nexport type CSSAnimationOptions = {\n  name?: CSSAnimationName;\n  timingFunction?: SupportedEaseNameToCubicBezier;\n  duration?: number;\n  delay?: number;\n};\n\nconst props = withDefaults(\n  defineProps<{\n    name?: CSSAnimationName;\n    timingFunction?: SupportedEaseNameToCubicBezier;\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(0.25, 0.1, 0.25, 1)\n    // steps()\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    name: \"jelly\",\n    delay: 0,\n    fillMode: \"both\",\n    playState: \"running\",\n    perspective: \"1200px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"cssanimationstart\", e: AnimationEvent): void;\n  (event: \"cssanimationend\", e: AnimationEvent): void;\n}>();\n\nconst r = ref();\n\nlet s1;\nlet s2;\nwatchEffect(() => {\n  if (!r.value || s1 || s2) {\n    return;\n  }\n  s1 = animationStart$(r.value).subscribe((e) => {\n    emits(\"cssanimationstart\", e);\n  });\n  s2 = animationEnd$(r.value).subscribe((e) => {\n    emits(\"cssanimationend\", e);\n  });\n});\n\n// 设置预定义变化\nfunction getPredefinedStyle(options?: CSSAnimationOptions) {\n  let defaultStyle: {\n    duration?: number;\n    timingFunction?: SupportedEaseNameToCubicBezier;\n    repeat?: number | \"infinite\";\n    direction?: \"normal\" | \"reverse\" | \"alternate\" | \"alternate-reverse\";\n    transformOrigin?: string;\n    parentOverflow?: string;\n    backfaceVisibility?: \"visible\" | \"hidden\";\n  } = {};\n  switch (options?.name || props.name) {\n    case \"bounce\":\n      defaultStyle = {\n        transformOrigin: \"center bottom\", // \"50% 100%\"\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"bounceIn\":\n      defaultStyle = {\n        duration: 750,\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"bounceOut\":\n      defaultStyle = {\n        duration: 750\n      };\n      break;\n    case \"fade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"fadeIn\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"fadeOut\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flip\":\n      defaultStyle = {\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flash\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flipInLeft\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"flipInRight\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"flipInBottom\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"flipInTop\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"flipInX\":\n      defaultStyle = {\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flipInY\":\n      defaultStyle = {\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flipOutBottom\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"flipOutLeft\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"flipOutRight\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"flipOutTop\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"flipOutX\":\n      defaultStyle = {\n        duration: 750,\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"flipOutY\":\n      defaultStyle = {\n        backfaceVisibility: \"visible\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"headShake\":\n      defaultStyle = {\n        timingFunction: \"ease-in-out\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"heartBeat\":\n      defaultStyle = {\n        duration: 1300,\n        timingFunction: \"ease-in-out\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"hinge\":\n      defaultStyle = {\n        duration: 750,\n        transformOrigin: \"left top\", // \"0% 0%\"\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"jackInTheBox\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"jello\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"jelly\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"lightSpeedInLeft\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"lightSpeedInRight\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"lightSpeedOutLeft\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"lightSpeedOutRight\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"moveFromLeftFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveToLeftFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveFromRightFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveToRightFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveFromTopFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveToTopFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveFromBottomFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveToBottomFade\":\n      defaultStyle = {\n        duration: 700\n      };\n      break;\n    case \"moveFromLeft\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveToLeft\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveFromRight\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveToRight\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveFromTop\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveToTop\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveFromBottom\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"moveToBottom\":\n      defaultStyle = {\n        duration: 600\n      };\n      break;\n    case \"pulse\":\n      defaultStyle = {\n        timingFunction: \"ease-in-out\",\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"rotateFall\":\n      defaultStyle = {\n        duration: 1000,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"left top\" // \"0% 0%\"\n      };\n      break;\n    case \"rotateSlideOut\":\n      defaultStyle = {\n        duration: 1000\n      };\n      break;\n    case \"rotateSlideIn\":\n      defaultStyle = {\n        duration: 1000\n      };\n      break;\n    case \"rotateRightSideFirst\":\n      defaultStyle = {\n        duration: 800,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateLeftSideFirst\":\n      defaultStyle = {\n        duration: 800,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateTopSideFirst\":\n      defaultStyle = {\n        duration: 800,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateBottomSideFirst\":\n      defaultStyle = {\n        duration: 800,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotatePushLeft\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotatePullBottom\":\n      defaultStyle = {\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotatePullLeft\":\n      defaultStyle = {\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotatePullRight\":\n      defaultStyle = {\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotatePullTop\":\n      defaultStyle = {\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotatePushRight\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotatePushTop\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotatePushBottom\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateRoomLeftOut\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateRoomLeftIn\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateRoomRightOut\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateRoomRightIn\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateRoomTopOut\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateRoomTopIn\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateRoomBottomOut\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateRoomBottomIn\":\n      defaultStyle = {\n        duration: 800,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateCarouselLeftOut\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselLeftIn\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselRightOut\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselRightIn\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselTopOut\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselTopIn\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselBottomOut\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateCarouselBottomIn\":\n      defaultStyle = {\n        duration: 800\n      };\n      break;\n    case \"rotateFoldRight\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateFoldLeft\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateFoldTop\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateFoldBottom\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateUnfoldLeft\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateUnfoldRight\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateUnfoldTop\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateUnfoldBottom\":\n      defaultStyle = {\n        duration: 700,\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateCubeLeftOut\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateCubeLeftIn\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateCubeRightOut\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"rotateCubeRightIn\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"rotateCubeTopOut\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateCubeTopIn\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateCubeBottomOut\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n    case \"rotateCubeBottomIn\":\n      defaultStyle = {\n        duration: 600,\n        timingFunction: \"ease-in\",\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"rotateInNewspaper\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"rotateOutNewspaper\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"rotateInUpLeft\":\n      defaultStyle = {\n        transformOrigin: \"left bottom\" // \"0% 100%\"\n      };\n      break;\n    case \"rotateInUpRight\":\n      defaultStyle = {\n        transformOrigin: \"right bottom\" // \"100% 100%\"\n      };\n      break;\n    case \"rotateInDownLeft\":\n      defaultStyle = {\n        transformOrigin: \"left bottom\" // \"0% 100%\"\n      };\n      break;\n    case \"rotateInDownRight\":\n      defaultStyle = {\n        transformOrigin: \"right bottom\" // \"100% 100%\"\n      };\n      break;\n    case \"rotateOutUpLeft\":\n      defaultStyle = {\n        transformOrigin: \"left bottom\" // \"0% 100%\"\n      };\n      break;\n    case \"rotateOutUpRight\":\n      defaultStyle = {\n        transformOrigin: \"right bottom\" // \"100% 100%\"\n      };\n      break;\n    case \"rotateOutDownLeft\":\n      defaultStyle = {\n        transformOrigin: \"left bottom\" // \"0% 100%\"\n      };\n      break;\n    case \"rotateOutDownRight\":\n      defaultStyle = {\n        transformOrigin: \"right bottom\" // \"100% 100%\"\n      };\n      break;\n    case \"rotateSidesIn\":\n      defaultStyle = {\n        timingFunction: \"ease-out\"\n      };\n      break;\n    case \"rotateSidesOut\":\n      defaultStyle = {\n        timingFunction: \"ease-in\"\n      };\n      break;\n    case \"rubberBand\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"shakeX\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"shakeY\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"statusProcessing\":\n      defaultStyle = {\n        duration: 1200,\n        timingFunction: \"ease-in-out\",\n        repeat: \"infinite\"\n      };\n      break;\n    case \"superRainbow\":\n      defaultStyle = {\n        timingFunction: \"linear\",\n        duration: 15000,\n        repeat: \"infinite\",\n        direction: \"alternate\"\n      };\n      break;\n    case \"swing\":\n      defaultStyle = {\n        transformOrigin: \"center top\", // \"50% 0%\"\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"tada\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"wobble\":\n      defaultStyle = {\n        parentOverflow: \"visible\"\n      };\n      break;\n    case \"zoomOutRight\":\n      defaultStyle = {\n        transformOrigin: \"right center\" // \"100% 50%\"\n      };\n      break;\n    case \"zoomOutDown\":\n      defaultStyle = {\n        transformOrigin: \"center bottom\" // \"50% 100%\"\n      };\n      break;\n    case \"zoomOutLeft\":\n      defaultStyle = {\n        transformOrigin: \"left center\" // \"0% 50%\"\n      };\n      break;\n    case \"zoomOutUp\":\n      defaultStyle = {\n        transformOrigin: \"center top\" // \"50% 0%\"\n      };\n      break;\n  }\n  return {\n    duration:\n      options?.duration ?? props.duration ?? defaultStyle.duration ?? 500,\n    timingFunction:\n      options?.timingFunction ??\n      props.timingFunction ??\n      defaultStyle.timingFunction ??\n      \"ease\",\n    repeat: props.repeat ?? defaultStyle.repeat ?? 1,\n    direction: props.direction ?? defaultStyle.direction ?? \"normal\",\n    transformOrigin: defaultStyle.transformOrigin ?? \"50% 50%\", // [x-offset y-offset] \"center\" or \"50% 50%\"\n    backfaceVisibility: defaultStyle.backfaceVisibility ?? \"hidden\", // visible hidden\n    parentOverflow: defaultStyle.parentOverflow ?? \"hidden\"\n  };\n}\n\nfunction getBasicStyle(options?: CSSAnimationOptions) {\n  return {\n    transformStyle: \"preserve-3d\"\n    // transform: \"translate3d(0, 0, 0)\", // Chrome Layerize 花费时间长\n    // perspective: props.perspective\n    // willChange: \"box-shadow, transform\",\n  } as CSSProperties;\n}\n\nconst style = ref<CSSProperties>({});\n\n// 清除\nconst clear = (options?: CSSAnimationOptions) => {\n  style.value = {\n    ...getBasicStyle(options),\n    animation: \"none\"\n  };\n  if (r.value) {\n    // restart css animation\n    r.value.style.animation = \"none\";\n    r.value.offsetHeight; // trigger reflow\n    r.value.style.animation = null;\n  }\n};\n// 初始化执行\nclear();\n\nfunction set(\n  options?: CSSAnimationOptions,\n  forceDirection?: \"normal\" | \"reverse\" | \"alternate\" | \"alternate-reverse\"\n) {\n  const predefinedStyle = getPredefinedStyle(options);\n  const duration = predefinedStyle.duration;\n  const timingFunction = predefinedStyle.timingFunction;\n  const repeat = predefinedStyle.repeat;\n  let direction = predefinedStyle.direction;\n  if (forceDirection) {\n    direction = forceDirection;\n  }\n  const delay =\n    typeof options?.delay == \"number\" ? options?.delay : props.delay;\n  const transformOrigin = predefinedStyle.transformOrigin;\n  const backfaceVisibility = predefinedStyle.backfaceVisibility;\n  const parentOverflow = predefinedStyle.parentOverflow;\n  if (r.value && r.value.parentElement) {\n    r.value.parentElement.style.overflow = parentOverflow;\n  }\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\n  style.value = {\n    ...getBasicStyle(options),\n    // animation: `${animationName} ${duration}ms ${timingFunction} ${delay}ms ${repeat} ${direction} ${props.fillMode} ${props.playState}`,\n    animationName: options?.name || props.name,\n    animationDuration: `${duration}ms`,\n    animationDelay: `${delay}ms`,\n    animationIterationCount: repeat,\n    animationFillMode: props.fillMode,\n    animationTimingFunction: timingFunction,\n    animationDirection: direction,\n    animationPlayState: props.playState,\n    transformOrigin,\n    backfaceVisibility\n  };\n}\n\n// css animation 与 js animation 有时间差\n// 统一用 css animation ，抹平与 js animation 的差异\nfunction trigger(options?: CSSAnimationOptions) {\n  clear(options);\n  set(options, \"normal\");\n}\n\nfunction triggerReverse(options?: CSSAnimationOptions) {\n  clear(options);\n  set(options, \"reverse\");\n}\n\nonUnmounted(() => {\n  s1?.unsubscribe();\n  s2?.unsubscribe();\n});\n\ndefineExpose({ trigger, triggerReverse, clear });\n</script>\n\n<template>\n  <div\n    ref=\"r\"\n    class=\"css-animation\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n\n<!-- 放在顶层 main.ts 中以节省空间 -->\n<!-- <style>\n@import \"../../../../../css/animate_ce.css\";\n</style> -->\n","<script setup lang=\"ts\">\nimport { watchEffect, ref } 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    global?: boolean;\n    opacity?: number;\n  }>(),\n  {\n    global: true,\n    opacity: 0.6\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"open\"): void;\n  (event: \"close\"): void;\n}>();\n\nconst el = ref();\n\nconst color = `rgba(0, 0, 0, ${props.opacity})`;\n\nconst visible = ref(false);\n\n// fixScroll\nlet initParentOverflow = \"\";\nif (props.global) {\n  initParentOverflow =\n    atomReadStyle(document.documentElement, \"overflow\") || \"visible\";\n} else {\n  watchEffect(() => {\n    if (!el.value || initParentOverflow) {\n      // not mounted yet, or the element was unmounted (e.g. by v-if)\n      return;\n    }\n    initParentOverflow =\n      atomReadStyle(el.value.parentElement, \"overflow\") || \"visible\";\n  });\n}\n\nfunction setParentOverflow() {\n  atomWriteStyle(\n    props.global ? document.documentElement : el.value.parentElement,\n    \"overflow\",\n    visible.value ? \"hidden\" : initParentOverflow || \"visible\"\n  );\n}\n\nfunction open() {\n  visible.value = true;\n  setParentOverflow();\n  emits(\"open\");\n}\n\nfunction close() {\n  visible.value = false;\n  setParentOverflow();\n  emits(\"close\");\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <!-- FOUC: flash of unstyled content 未样式化文本闪烁 -->\n  <!-- v-if=\"visible\"使子元素重新创建 或 子元素传不同 key 会重新创建 -->\n  <!-- display: visible ? 'block' : 'none', 子元素不会重新创建 -->\n  <div\n    ref=\"el\"\n    class=\"overlay\"\n    v-if=\"visible\"\n    :style=\"{\n      display: 'block',\n      position: 'fixed',\n      width: '100%',\n      height: '100%',\n      'z-index': '99999',\n      inset: '0',\n      'background-color': color,\n      overflow: 'hidden',\n      'overscroll-behavior-y': 'contain', // avoid scroll chaining\n      'scrollbar-gutter': 'stable'\n    }\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, reactive, StyleValue, watchEffect, watch } from \"vue\";\nimport { Timeline, Easing, hasClass } from \"@zyzgroup/core-web\";\nimport Overlay from \"./Overlay.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Overlay, Box },\n  inheritAttrs: true\n});\n\n// 需传入 key 使子元素重新创建，从而使浏览器计算 contentStyle inset 正确\nconst props = withDefaults(\n  defineProps<{\n    closeWhenClickOverlay?: boolean;\n    directionFrom?:\n      | \"bottom\"\n      | \"top\"\n      | \"left\"\n      | \"right\"\n      | \"center\"\n      | \"full\"\n      | { left: string; top: string }; // absolute，例如 {left: '0%', top: '0%'}\n    dur?: number;\n    global?: boolean;\n    contentBgColor?: string;\n    fixed?: number; // 单位px, 强制设置弹起高度或宽度, 如果不传，默认为 slot-width or slot-height\n  }>(),\n  {\n    closeWhenClickOverlay: true,\n    directionFrom: \"bottom\",\n    dur: 200,\n    global: true,\n    contentBgColor: \"rgba(255,255,255,0)\"\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 overlayRef = ref();\nconst contentRef = ref();\nconst contentStyle = reactive<{\n  // 特性属性\n  width?: string;\n  height?: string;\n  top?: string;\n  bottom?: string;\n  left?: string;\n  right?: string;\n  transform?: string;\n  // 通用属性\n  display: string;\n  position: string;\n  opacity?: String;\n  transformOrigin?: string;\n  willChange?: string; // 优化动画性能, 让浏览器提前为动画做准备，避免抖动或延迟\n  backgroundColor?: string;\n  inset?: string; // top right bottom left\n}>({\n  display: \"block\",\n  position: \"absolute\",\n  opacity: \"1\",\n  transformOrigin: \"center\",\n  willChange: \"transform\",\n  backgroundColor: props.contentBgColor\n});\n\nlet status: \"open\" | \"close\" = \"close\";\nlet isAnimating = false;\n\n// Overlay.open() Overlay.close() 会触发 Box@resize()\n// 有时子元素初始化为空时，即 box.rect.width = 0 && box.rect.height = 0，也要触发一下\nlet boxWidth = -1;\nlet boxHeight = -1;\nconst boxResize = (box) => {\n  // box.rect.x 或 box.rect.y 变化时不触发，即：运动过程中不触发\n  if (boxWidth != box.rect.width || boxHeight != box.rect.height) {\n    boxWidth = box.rect.width;\n    boxHeight = box.rect.height;\n    executeAnimate();\n    emits(\"resize\", box);\n  }\n};\n\nconst boxStyle = reactive<{\n  width?: string;\n  height?: string;\n}>({});\nwatchEffect(() => {\n  switch (props.directionFrom) {\n    case \"left\":\n    case \"right\":\n      delete boxStyle.width;\n      boxStyle.height = \"100%\";\n      break;\n    case \"top\":\n    case \"bottom\":\n      boxStyle.width = \"100%\";\n      delete boxStyle.height;\n      break;\n    case \"full\":\n      boxStyle.width = \"100%\";\n      boxStyle.height = \"100%\";\n      break;\n    case \"center\":\n    default:\n      delete boxStyle.width;\n      delete boxStyle.height;\n      break;\n  }\n  // 实时更新：子元素自己计算的位置\n  if (typeof props.directionFrom == \"object\") {\n    contentStyle.left = props.directionFrom.left;\n    contentStyle.top = props.directionFrom.top;\n  }\n});\n\nfunction isDirectionFromSupportAnimate(): boolean {\n  switch (props.directionFrom) {\n    case \"bottom\":\n    case \"top\":\n    case \"left\":\n    case \"right\":\n    case \"center\":\n      return true;\n    case \"full\":\n    default: // absolute\n      return false;\n  }\n}\n\nconst tl = new Timeline({ frameDuration: props.dur });\nconst executeAnimate = () => {\n  tl.clear();\n\n  switch (props.directionFrom) {\n    case \"left\":\n      delete contentStyle.width;\n      if (props.fixed) {\n        contentStyle.width = props.fixed + \"px\";\n      }\n      contentStyle.height = \"100%\";\n      contentStyle.left = isAnimating ? \"-100%\" : \"0%\";\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.top = \"0%\";\n      if (isAnimating) {\n        tl.addTween(\n          {\n            left: 100\n          },\n          { left: 0 },\n          {\n            easeFunction: Easing.Quadratic.Out,\n            onUpdate(data) {\n              contentStyle.left = `-${data.left}%`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"right\":\n      delete contentStyle.width;\n      if (props.fixed) {\n        contentStyle.width = props.fixed + \"px\";\n      }\n      contentStyle.height = \"100%\";\n      delete contentStyle.left;\n      contentStyle.right = isAnimating ? \"-100%\" : \"0%\";\n      delete contentStyle.bottom;\n      contentStyle.top = \"0%\";\n      if (isAnimating) {\n        tl.addTween(\n          {\n            right: 100\n          },\n          { right: 0 },\n          {\n            easeFunction: Easing.Quadratic.Out,\n            onUpdate(data) {\n              contentStyle.right = `-${data.right}%`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"top\":\n      contentStyle.width = \"100%\";\n      delete contentStyle.height;\n      if (props.fixed) {\n        contentStyle.height = props.fixed + \"px\";\n      }\n      contentStyle.left = \"0%\";\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.top = isAnimating ? \"-100%\" : \"0%\";\n      if (isAnimating) {\n        tl.addTween(\n          {\n            top: 100\n          },\n          { top: 0 },\n          {\n            easeFunction: Easing.Quadratic.Out,\n            onUpdate(data) {\n              contentStyle.top = `-${data.top}%`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"bottom\":\n      contentStyle.width = \"100%\";\n      delete contentStyle.height;\n      if (props.fixed) {\n        contentStyle.height = props.fixed + \"px\";\n      }\n      contentStyle.left = \"0%\";\n      delete contentStyle.right;\n      contentStyle.bottom = isAnimating ? \"-100%\" : \"0%\";\n      delete contentStyle.top;\n      if (isAnimating) {\n        tl.addTween(\n          {\n            bottom: 100\n          },\n          { bottom: 0 },\n          {\n            easeFunction: Easing.Quadratic.Out,\n            onUpdate(data) {\n              contentStyle.bottom = `-${data.bottom}%`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"center\":\n      delete contentStyle.width;\n      delete contentStyle.height;\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.left = \"50%\";\n      contentStyle.top = \"50%\";\n      contentStyle.transform = isAnimating\n        ? `translate(-50%, -50%) scale(${0.8})`\n        : `translate(-50%, -50%) scale(${1})`;\n      contentStyle.opacity = isAnimating ? \"0\" : \"1\";\n      if (isAnimating) {\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              contentStyle.transform = `translate(-50%, -50%) scale(${data.scale})`;\n              contentStyle.opacity = `${data.opacity}`;\n            },\n            onComplete: onAnimateComplete\n          }\n        );\n      }\n      break;\n    case \"full\":\n      contentStyle.width = \"100%\";\n      contentStyle.height = \"100%\";\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.left = \"0%\";\n      contentStyle.top = \"0%\";\n      if (isAnimating) {\n        onAnimateComplete();\n      }\n      break;\n    default: // absolute\n      delete contentStyle.width;\n      delete contentStyle.height;\n      delete contentStyle.right;\n      delete contentStyle.bottom;\n      contentStyle.left = props.directionFrom.left;\n      contentStyle.top = props.directionFrom.top;\n      if (isAnimating) {\n        onAnimateComplete();\n      }\n      break;\n  }\n\n  // transform + opacity\n  switch (props.directionFrom) {\n    case \"center\":\n      break;\n    default:\n      delete contentStyle.transform;\n      contentStyle.opacity = \"1\";\n      break;\n  }\n\n  if (isAnimating && isDirectionFromSupportAnimate()) {\n    if (status == \"open\") {\n      tl.play();\n    } else {\n      tl.reverse();\n    }\n  }\n};\n\nconst popOpen = () => {\n  // do nothing\n};\n\nconst popClose = () => {\n  boxWidth = -1;\n  boxHeight = -1;\n  emits(\"close\");\n};\n\nfunction onAnimateComplete() {\n  isAnimating = false;\n  switch (status) {\n    case \"open\":\n      emits(\"open\");\n      break;\n    case \"close\":\n      overlayRef.value?.close();\n      break;\n  }\n}\n\nfunction open() {\n  status = \"open\";\n  isAnimating = true;\n  overlayRef.value?.open();\n  // 等待 Box@resize\n}\n\nfunction close() {\n  status = \"close\";\n  isAnimating = true;\n  if (isDirectionFromSupportAnimate()) {\n    executeAnimate();\n  } else {\n    onAnimateComplete();\n  }\n}\n\nfunction clickOverlay(e: Event) {\n  // console.log(e.target);\n  // console.log(popRef.value.contains(e.target));\n  const className =\n    props.directionFrom == \"full\"\n      ? // ||\n        // (typeof props.directionFrom == \"object\" &&\n        //   props.directionFrom.left == \"0%\" &&\n        //   props.directionFrom.top == \"0%\") // 默认 boxWidth==100% boxHeight==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    ref=\"overlayRef\"\n    class=\"pop\"\n    :global=\"props.global\"\n    @open=\"popOpen\"\n    @close=\"popClose\"\n    @click=\"clickOverlay\"\n  >\n    <div\n      ref=\"contentRef\"\n      class=\"pop-content\"\n      :class=\"\n        typeof props.directionFrom == 'string'\n          ? props.directionFrom\n          : 'absolute'\n      \"\n      :style=\"contentStyle as StyleValue\"\n    >\n      <Box\n        display=\"shrink\"\n        :style=\"boxStyle\"\n        @resize=\"boxResize\"\n      >\n        <slot></slot>\n      </Box>\n    </div>\n  </Overlay>\n</template>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { mapState } from \"../../context/context\";\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  (event: \"open\"): void;\n  (event: \"close\"): void;\n}>();\n\nconst mappedState = mapState([\n  \"color.foregroundPattern\",\n  \"color.foregroundBorderPattern\",\n  \"color.fontPattern\",\n  \"color.fontTertiaryPattern\"\n]);\n\nconst el = ref();\n\nfunction open() {\n  el.value?.open();\n}\nfunction close() {\n  el.value?.close();\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <Pop\n    ref=\"el\"\n    directionFrom=\"bottom\"\n    :closeWhenClickOverlay=\"false\"\n    @open=\"() => emits('open')\"\n    @close=\"() => emits('close')\"\n  >\n    <div\n      class=\"pop-tel\"\n      :style=\"{\n        backgroundColor: `${mappedState['color.foregroundPattern'].value}`,\n        color: `${mappedState['color.fontPattern'].value}`\n      }\"\n    >\n      <div\n        :style=\"{\n          color: `${mappedState['color.fontTertiaryPattern'].value}`\n        }\"\n      >\n        {{ tel }}\n      </div>\n      <a\n        class=\"pop-tel-call\"\n        :href=\"`tel:${tel}`\"\n        @click=\"close\"\n        :style=\"{\n          borderTop: `1px solid ${mappedState['color.foregroundBorderPattern'].value}`,\n          color: `${mappedState['color.fontPattern'].value}`,\n          cursor: 'pointer'\n        }\"\n      >\n        呼叫\n      </a>\n      <div\n        class=\"pop-tel-cancel\"\n        @click=\"close\"\n        :style=\"{\n          borderTop: `1px solid ${mappedState['color.foregroundBorderPattern'].value}`,\n          cursor: 'pointer'\n        }\"\n      >\n        取消\n      </div>\n    </div>\n  </Pop>\n</template>\n\n<style scoped>\n.pop-tel {\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-call {\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=\"ts\">\nimport { ref } from \"vue\";\nimport { mapState } from \"../../context/context\";\nimport Pop from \"./Pop.vue\";\nimport Calendar from \"../form/Calendar.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Pop, Calendar },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    title?: string; // 标题\n    initDay?: string; // 当前日期\n    startDay?: string; // 可选范围：开始日期\n    endDay?: string; // 可选范围：结束日期\n    excludeDays?: string[]; // 排除日期范围，要求已按日历排序\n    selectedDays?: string[]; // 已选择日期范围，要求已按日历排序\n  }>(),\n  {\n    title: \"\",\n    excludeDays: () => [],\n    selectedDays: () => []\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"open\"): void;\n  (event: \"close\"): void;\n  (event: \"cancel\"): void;\n  (event: \"confirm\", date: Date): void;\n}>();\n\nconst mappedState = mapState([\"color.foregroundPattern\"]);\n\nconst el = ref();\n\nfunction open() {\n  el.value?.open();\n}\nfunction close() {\n  el.value?.close();\n}\n\nfunction confirm(date) {\n  emits(\"confirm\", date);\n  close();\n}\n\nfunction cancel() {\n  emits(\"cancel\");\n  close();\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <Pop\n    ref=\"el\"\n    directionFrom=\"bottom\"\n    :closeWhenClickOverlay=\"false\"\n    @open=\"() => emits('open')\"\n    @close=\"() => emits('close')\"\n  >\n    <div\n      class=\"pop-calendar\"\n      :style=\"{\n        backgroundColor: `${mappedState['color.foregroundPattern'].value}`\n      }\"\n    >\n      <Calendar\n        :title=\"props.title\"\n        :initDay=\"props.initDay\"\n        :startDay=\"props.startDay\"\n        :endDay=\"props.endDay\"\n        :excludeDays=\"props.excludeDays\"\n        :selectedDays=\"props.selectedDays\"\n        @confirm=\"confirm\"\n        @cancel=\"cancel\"\n      ></Calendar>\n    </div>\n  </Pop>\n</template>\n\n<style scoped>\n.pop-calendar {\n  border-top-left-radius: 8px;\n  border-top-right-radius: 8px;\n  overflow: hidden;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { getViewport } from \"@zyzgroup/core-web\";\nimport Pop from \"./Pop.vue\";\nimport Button from \"../form/Button.vue\";\nimport Box from \"../base/Box.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Pop, Button, Box },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    gap?: number;\n    global?: boolean;\n    closeWhenClickOverlay?: boolean;\n  }>(),\n  {\n    gap: 10,\n    global: true,\n    closeWhenClickOverlay: true\n  }\n);\n\nconst buttonRef = ref();\n\nconst absolute = ref({ left: \"0px\", top: \"0px\" });\nlet buttonLeft = 0;\nlet buttonTop = 0;\nlet buttonWidth = 0;\nlet contentWidth = 0;\nlet contentHeight = 0;\n\nconst popOpen = () => {\n  const rect = buttonRef.value.getRect();\n  buttonLeft = rect.x;\n  buttonTop = rect.y;\n  buttonWidth = rect.width;\n};\n\nconst contentResize = (box) => {\n  contentWidth = box.rect.width;\n  contentHeight = box.rect.height;\n  computeLocation();\n};\n\nconst computeLocation = () => {\n  const viewport = getViewport();\n  absolute.value = {\n    left:\n      Math.max(\n        props.gap,\n        Math.min(\n          buttonLeft + buttonWidth + props.gap,\n          viewport.width - contentWidth - props.gap\n        )\n      ) + \"px\",\n    top:\n      Math.max(\n        props.gap,\n        Math.min(buttonTop, viewport.height - contentHeight - props.gap)\n      ) + \"px\"\n  };\n};\n\nconst popRef = ref();\nfunction open() {\n  popRef.value?.open();\n}\nfunction close() {\n  popRef.value?.close();\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <div>\n    <Box\n      ref=\"buttonRef\"\n      class=\"popover-button\"\n      display=\"shrink\"\n      @throttledClick=\"open\"\n    >\n      <slot name=\"button\">\n        <Button>popover</Button>\n      </slot>\n    </Box>\n    <Pop\n      ref=\"popRef\"\n      :direction-from=\"absolute\"\n      :global=\"props.global\"\n      :closeWhenClickOverlay=\"props.closeWhenClickOverlay\"\n      @open=\"popOpen\"\n      @resize=\"contentResize\"\n    >\n      <slot name=\"panel\">\n        <div>...</div>\n      </slot>\n    </Pop>\n  </div>\n</template>\n\n<style scoped></style>\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\nimport { mapState } from \"../../context/context\";\nimport { deleteArrayItem, throttle } from \"@zyzgroup/core-common\";\nimport Textarea from \"../form/Textarea.vue\";\nimport {\n  INIT,\n  RATES,\n  completeRate,\n  type RawRate,\n  type StoredRate,\n  type RateShowMode\n} from \"./common\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Textarea },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    mode?: RateShowMode;\n    editable?: boolean;\n    modelValue?: StoredRate;\n    init?: StoredRate;\n  }>(),\n  {\n    mode: \"all\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"throttledClick\"): void;\n  (event: \"update:modelValue\", v: StoredRate): void;\n  (event: \"rate\", v: StoredRate): void;\n}>();\n\n\nconst PUBLIC_IMAGE_RATE_XG = `/public/images/rate-xg`;\nconst level1 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_1.svg`;\nconst level2 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_2.svg`;\nconst level3 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_3.svg`;\nconst level4 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_4.svg`;\nconst level5 = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_5.svg`;\nconst level1_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_1_selected.svg`;\nconst level2_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_2_selected.svg`;\nconst level3_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_3_selected.svg`;\nconst level4_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_4_selected.svg`;\nconst level5_selected = `${PUBLIC_IMAGE_RATE_XG}/rate_xg_level_5_selected.svg`;\n\n// 获取图片\nfunction getImage(rate: number, selected: boolean) {\n  switch(rate) {\n    case 1: return !selected ? level1 : level1_selected;\n    case 2: return !selected ? level2 : level2_selected;\n    case 3: return !selected ? level3 : level3_selected;\n    case 4: return !selected ? level4 : level4_selected;\n    case 5: return !selected ? level5 : level5_selected;\n  }\n}\n\nconst mappedState = mapState([\n  \"color.foregroundPattern\",\n  \"color.foregroundBorderPattern\",\n  \"color.fontPattern\",\n  \"color.fontTertiaryPattern\",\n  \"color.yellowCommon\",\n  \"color.primaryPattern\",\n  \"color.secondaryPattern\",\n  \"color.panelPattern\"\n]);\n\n// 当前的 rate 对应的原始数据\nconst rawRate = ref<RawRate>(null);\n\nfunction changeRawRate(rate: number) {\n  if (rawRate.value && rawRate.value.rate == rate) {\n    // 只更新指针\n    rawRate.value = { ...rawRate.value };\n    return;\n  }\n  const foundRate = RATES.find((r) => r.rate == rate);\n  if (foundRate && foundRate.rate > 0) {\n    rawRate.value = {\n      ...foundRate,\n      options: foundRate.options.map((o) => ({ name: o, selected: false })),\n      image: getImage(foundRate.rate, false)\n    } as RawRate;\n  } else {\n    rawRate.value = null;\n  }\n}\n\nconst isControlled = computed(\n  () => props.modelValue !== undefined && props.modelValue !== null\n);\nconst inner = ref<StoredRate>({ ...INIT, ...(props.init ?? {}) });\n\nconst current = computed<StoredRate>({\n  get() {\n    const val = isControlled.value\n      ? { ...INIT, ...(props.modelValue ?? {}) }\n      : inner.value;\n    completeRate(val);\n    return val;\n  },\n  set(val) {\n    val = { ...INIT, ...(val ?? {}) };\n    completeRate(val);\n    if (isControlled.value) {\n      emits(\"update:modelValue\", val);\n    } else {\n      inner.value = val;\n    }\n    emits(\"rate\", val);\n  }\n});\n\n// 初始化\nchangeRawRate(current.value.rate);\n\n// 切换评分\nconst selectRate = throttle((r, e) => {\n  e.stopPropagation();\n  if (!props.editable) {\n    return;\n  }\n  if (r <= 0) {\n    // 未选择\n    emits(\"throttledClick\");\n    return;\n  }\n  // 本次已选择\n  current.value = {\n    ...current.value,\n    rate: r,\n    options: []\n  };\n  changeRawRate(r);\n});\n\n// 切换选项\nconst selectOption = throttle((option, e) => {\n  e.stopPropagation();\n  const rawOption =\n    rawRate.value && rawRate.value.options.find((o) => o.name == option);\n  if (current.value.options.findIndex((o) => o == option) < 0) {\n    // 添加\n    current.value.options.push(option);\n    if (rawOption) {\n      rawOption.selected = true;\n    }\n  } else {\n    // 删除\n    deleteArrayItem(current.value.options, option);\n    if (rawOption) {\n      rawOption.selected = false;\n    }\n  }\n  current.value = { ...current.value };\n  // changeRawRate(current.value.rate);\n});\n\n// 输入具体描述\nfunction inputDetail(text) {\n  current.value = { ...current.value, detail: text };\n}\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"rate-xg\"\n    :style=\"{\n      backgroundColor: mappedState['color.foregroundPattern'].value,\n      color: mappedState['color.fontPattern'].value\n    }\"\n  >\n    <!-- 打分：已固定选择 -->\n    <div\n      v-if=\"!props.editable\"\n      class=\"rate-xg-status\"\n      :style=\"{\n        color: mappedState['color.fontTertiaryPattern'].value\n      }\"\n    >\n      <div\n        class=\"rate-xg-status-item\"\n        :style=\"{\n          color: mappedState['color.yellowCommon'].value\n        }\"\n      >\n        <div class=\"rate-xg-status-item-image\">\n           <img :src=\"getImage(current.rate, true)\"></img>\n        </div>\n        <div class=\"rate-xg-status-item-name\">\n          {{ current.name }}\n        </div>\n      </div>\n    </div>\n    <!-- 打分：未固定选择 -->\n    <div\n      v-else\n      class=\"rate-xg-status\"\n      :style=\"{\n        color: mappedState['color.fontTertiaryPattern'].value\n      }\"\n      @click=\"selectRate(0, $event)\"\n    >\n      <div\n        v-for=\"(status, index) in RATES\"\n        class=\"rate-xg-status-item\"\n        :style=\"{\n          color:\n            current.rate == index + 1\n              ? mappedState['color.yellowCommon'].value\n              : mappedState['color.fontTertiaryPattern'].value\n        }\"\n      >\n        <div\n          class=\"rate-xg-status-item-image\"\n          @click.stop=\"selectRate(index + 1, $event)\"\n        >\n        <img :src=\"getImage(status.rate, current.rate == index + 1)\"></img>\n      </div>\n        <div class=\"rate-xg-status-item-name\">{{ status.name }}</div>\n      </div>\n    </div>\n    <!-- 描述 -->\n    <div\n      v-if=\"props.mode == 'all' && props.editable && current.rate > 0\"\n      class=\"rate-xg-description\"\n    >\n      “{{ rawRate.description }}”\n    </div>\n    <!-- 选项：已固定选择 -->\n    <div\n      v-if=\"\n        props.mode == 'all' &&\n        !props.editable &&\n        current.options &&\n        current.options.length\n      \"\n      class=\"rate-xg-options\"\n      :class=\"current.options && current.options.length == 1 ? 'center' : ''\"\n    >\n      <div\n        v-for=\"(option, optionIndex) in current.options\"\n        class=\"rate-xg-option-inner\"\n      >\n        <div\n          class=\"rate-xg-option\"\n          :style=\"{\n            color: mappedState['color.fontPattern'].value,\n            backgroundColor: mappedState['color.panelPattern'].value\n          }\"\n        >\n          {{ option }}\n        </div>\n      </div>\n    </div>\n    <!-- 选项：未固定选择 -->\n    <div\n      v-else-if=\"props.mode == 'all' && props.editable && current.rate > 0\"\n      class=\"rate-xg-options\"\n    >\n      <div\n        v-for=\"(option, optionIndex) in rawRate?.options\"\n        class=\"rate-xg-option-inner\"\n        @click.stop=\"selectOption(option.name, $event)\"\n      >\n        <div\n          class=\"rate-xg-option\"\n          :style=\"\n            Object.assign(\n              {\n                border: `1px solid ${mappedState['color.foregroundBorderPattern'].value}`\n              },\n              option.selected\n                ? {\n                    color: mappedState['color.primaryPattern'].value,\n                    borderColor: mappedState['color.primaryPattern'].value,\n                    backgroundColor: mappedState['color.secondaryPattern'].value\n                  }\n                : {}\n            )\n          \"\n        >\n          {{ option.name }}\n        </div>\n      </div>\n    </div>\n    <!-- 详细：已固定选择 -->\n    <div\n      v-if=\"props.mode == 'all' && !props.editable && current.detail\"\n      class=\"rate-xg-detail-selected\"\n    >\n      “{{ current.detail }}”\n    </div>\n    <!-- 详细：未固定选择 -->\n    <div\n      v-else-if=\"props.mode == 'all' && props.editable && current.rate > 0\"\n      class=\"rate-xg-detail\"\n    >\n      <Textarea\n        placeholder=\"请具体描述\"\n        :init=\"current.detail\"\n        @input=\"inputDetail\"\n      ></Textarea>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.rate-xg {\n  line-height: 1;\n}\n.rate-xg-status {\n  font-size: 12px;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n}\n.rate-xg-status-item {\n  flex: 1;\n  box-sizing: border-box;\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n  align-items: center;\n}\n.rate-xg-status-item-image {\n  box-sizing: border-box;\n  width: 48px;\n  height: 48px;\n  /*\n  width: 100%;\n  aspect-ratio: 1 / 1;\n  height: 0;\n  padding-top: 100%;\n  */\n  object-fit: cover;\n  cursor: pointer;\n}\n.rate-xg-status-item-image > img {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n.rate-xg-status-item-name {\n  margin-top: 5px;\n}\n.rate-xg-description {\n  text-align: center;\n  font-size: 16px;\n  font-weight: bold;\n  margin-top: 20px;\n  padding: 0 var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-options {\n  display: flex;\n  flex-wrap: wrap;\n  font-size: 12px;\n  margin-top: 20px;\n  padding: 0 var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-options.center {\n  justify-content: center;\n}\n.rate-xg-option-inner {\n  flex: 0 0 50%;\n  box-sizing: border-box;\n}\n.rate-xg-options > .rate-xg-option-inner:nth-child(2n) {\n  padding-left: 5px;\n}\n.rate-xg-options > .rate-xg-option-inner:nth-child(2n + 1) {\n  padding-right: 5px;\n}\n.rate-xg-option {\n  cursor: pointer;\n  padding: 10px 0;\n  text-align: center;\n  margin-bottom: 10px;\n  border-radius: 4px;\n}\n.rate-xg-detail {\n  padding: 0 var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-detail-selected {\n  font-size: 14px;\n  line-height: 1.4;\n  text-align: center;\n  margin-top: 10px;\n  padding: 0 var(--yz-padding-horizontal, 15px);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onDeactivated, onUnmounted, ref, watch } from \"vue\";\nimport { mapState } from \"../../context/context\";\nimport { popRateXg } from \"../../globalTeleport\";\nimport RateXg from \"./RateXg.vue\";\nimport { INIT, completeRate, type StoredRate } from \"./common\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { RateXg },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    editable?: boolean;\n    init?: StoredRate;\n  }>(),\n  {}\n);\n\nconst emits = defineEmits<{\n  (event: \"rate\", v: StoredRate): void;\n}>();\n\nconst mappedState = mapState([\n  \"color.foregroundPattern\",\n  \"color.fontPattern\",\n  \"color.panelPattern\"\n]);\n\nconst editable = ref(props.editable);\nconst selected = ref(completeRate(props.init));\n\nfunction rate(v) {\n  if (!editable.value) {\n    // 不打开 pop\n    return;\n  }\n  popRateXg({\n    mode: \"all\",\n    editable: editable.value,\n    init: v,\n    onConfirm: (newSelected) => {\n      selected.value = newSelected;\n      editable.value = false;\n    },\n    onCancel: () => {\n      selected.value = {\n        ...INIT\n      };\n    }\n  });\n}\nfunction throttledClick() {\n  if (!editable.value) {\n    return;\n  }\n  // 默认值\n  selected.value = completeRate({ rate: 5 });\n  rate(selected.value);\n}\n\nfunction destroy() {}\n\nonUnmounted(() => {\n  destroy();\n});\nonDeactivated(() => {\n  destroy();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"rate-xg-panel\"\n    :style=\"{\n      backgroundColor: mappedState['color.foregroundPattern'].value,\n      color: mappedState['color.fontPattern'].value\n    }\"\n    @click=\"throttledClick\"\n  >\n    <div>\n      <div class=\"rate-xg-panel-title\">本次停车体验您满意吗？</div>\n      <div class=\"rate-xg-panel-rate\">\n        <RateXg\n          mode=\"only-status\"\n          :editable=\"editable\"\n          v-model=\"selected\"\n          @throttledClick=\"throttledClick\"\n          @rate=\"rate\"\n        ></RateXg>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.rate-xg-panel {\n  line-height: 1;\n  border-radius: 8px;\n  overflow: hidden;\n  margin: 0 var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-panel-title {\n  font-size: 16px;\n  font-weight: bold;\n  padding: var(--yz-padding-horizontal, 15px);\n}\n.rate-xg-panel-rate {\n  padding-bottom: var(--yz-padding-horizontal, 15px);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onDeactivated, onUnmounted, ref } from \"vue\";\nimport { mapState } from \"../../context/context\";\nimport Pop from \"../pop/Pop.vue\";\nimport Page from \"../base/Page.vue\";\nimport RateXg from \"./RateXg.vue\";\nimport Button from \"../form/Button.vue\";\nimport IconClose from \"../icon/IconClose.vue\";\nimport {\n  INIT,\n  completeRate,\n  type StoredRate,\n  type RateShowMode\n} from \"./common\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Pop, Page, RateXg, Button, IconClose },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    title?: string; // 标题\n    mode?: RateShowMode;\n    editable?: boolean;\n    init?: StoredRate;\n  }>(),\n  {\n    title: \"订单评价\",\n    mode: \"all\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"open\"): void;\n  (event: \"close\"): void;\n  (event: \"cancel\"): void;\n  (event: \"confirm\", v: StoredRate): void;\n}>();\n\nconst mappedState = mapState([\n  \"color.foregroundPattern\",\n  \"color.secondaryPattern\",\n  \"color.fontPattern\"\n]);\n\nlet value: StoredRate = completeRate(\n  props.init ?? {\n    ...INIT\n  }\n);\nfunction input(v) {\n  value = v;\n}\n\nconst el = ref();\n\nfunction open() {\n  el.value?.open();\n}\nfunction close() {\n  el.value?.close();\n}\n\nfunction confirm() {\n  // console.log(value);\n  emits(\"confirm\", value);\n  close();\n}\n\nfunction cancel() {\n  emits(\"cancel\");\n  close();\n}\n\nfunction destroy() {}\n\nonUnmounted(() => {\n  destroy();\n});\nonDeactivated(() => {\n  destroy();\n});\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n  <Pop\n    ref=\"el\"\n    directionFrom=\"bottom\"\n    :closeWhenClickOverlay=\"false\"\n    @open=\"() => emits('open')\"\n    @close=\"() => emits('close')\"\n  >\n    <div\n      class=\"pop-rate-xg\"\n      :style=\"{\n        backgroundColor: `${mappedState['color.secondaryPattern'].value}`,\n        color: mappedState['color.fontPattern'].value\n      }\"\n    >\n      <div class=\"top\">\n        <Button\n          class=\"close\"\n          mode=\"empty\"\n          @throttledClick=\"cancel\"\n        >\n          <div style=\"width: 12px\"><IconClose></IconClose></div>\n        </Button>\n        <div>{{ title }}</div>\n      </div>\n      <Page\n        class=\"content\"\n        :style=\"{\n          backgroundColor: `${mappedState['color.foregroundPattern'].value}`\n        }\"\n      >\n        <RateXg\n          :mode=\"props.mode\"\n          :editable=\"props.editable\"\n          :init=\"props.init\"\n          @rate=\"input\"\n        ></RateXg>\n        <div\n          v-if=\"props.editable\"\n          class=\"btn\"\n        >\n          <Button\n            width=\"100%\"\n            mode=\"gradient\"\n            :capsule=\"true\"\n            @throttledClick=\"confirm\"\n          >\n            匿名提交\n          </Button>\n        </div>\n      </Page>\n    </div>\n  </Pop>\n</template>\n\n<style scoped>\n.pop-rate-xg {\n  border-top-left-radius: 16px;\n  border-top-right-radius: 16px;\n  overflow: hidden;\n}\n.pop-rate-xg > .top {\n  position: relative;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  height: 56px;\n  line-height: 56px;\n  padding: 0 var(--yz-padding-horizontal, 15px);\n}\n.pop-rate-xg > .top > .close {\n  position: absolute !important;\n  top: 0;\n  left: 0;\n  width: 36px;\n  height: 100%;\n  display: flex !important;\n  justify-content: center;\n  align-items: center;\n  cursor: pointer;\n}\n.pop-rate-xg > .top > div:nth-child(2) {\n  flex: 1 1 auto;\n  text-align: center;\n  font-size: 20px;\n  font-weight: bold;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  word-wrap: normal;\n  word-break: break-all;\n}\n.pop-rate-xg > .content {\n  border-top-left-radius: 16px;\n  border-top-right-radius: 16px;\n  overflow: hidden;\n  padding-top: var(--yz-padding-vertical-double, 20px);\n  padding-bottom: var(--yz-padding-horizontal, 15px);\n}\n.pop-rate-xg > .content .btn {\n  padding: var(--yz-padding-vertical-double, 20px)\n    var(--yz-padding-horizontal, 15px) 0 var(--yz-padding-horizontal, 15px);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch, watchEffect } from \"vue\";\nimport { getCSSVar, ColorPattern } from \"@zyzgroup/core-web\";\nimport { context, getColors } from \"../../context/context\";\nimport Pop from \"../pop/Pop.vue\";\nimport Button, { ButtonModePattern } from \"../form/Button.vue\";\nimport IconClose from \"../icon/IconClose.vue\";\nimport IconWarn from \"../icon/IconWarn.vue\";\nimport IconEllipse from \"../icon/IconEllipse.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {\n    Pop,\n    Button,\n    IconClose,\n    IconWarn,\n    IconEllipse\n  },\n  inheritAttrs: true\n});\n\nexport type DialogModeType = \"normal\" | \"mini\" | \"icon-btns\" | \"btns\";\n\nconst props = withDefaults(\n  defineProps<{\n    mode?: DialogModeType;\n    colorPattern?: ColorPattern;\n    title?: string;\n    content?: string;\n    showClose?: boolean;\n    cancelText?: string;\n    confirmText?: string;\n    closeWhenClickOverlay?: boolean;\n    dur?: number;\n    minWidth?: string;\n    maxWidth?: string;\n    borderRadius?: string; // border-radius:x/y\n  }>(),\n  {\n    mode: \"normal\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n    title: \"\",\n    content: \"\",\n    showClose: false,\n    cancelText: \"\",\n    confirmText: \"\",\n    closeWhenClickOverlay: false,\n    dur: 200,\n    minWidth: \"280px\",\n    maxWidth: \"320px\",\n    borderRadius: getCSSVar(\"--yz-dialog-border-radius\", \"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 primaryPattern = ref();\nconst gradientPattern = ref();\nconst foregroundReverse = ref();\nconst fontReverse = ref();\n\nwatchEffect(() => {\n  const colors = getColors(props.colorPattern);\n  primaryPattern.value = colors.primaryPattern;\n  gradientPattern.value = colors.gradientPattern;\n  foregroundReverse.value = colors.foregroundReverse;\n  fontReverse.value = colors.fontReverse;\n});\n\nconst cancelButtonMode = ref<ButtonModePattern>(\"transparent\");\nconst confirmButtonMode = ref<ButtonModePattern>(\"transparent\");\nconst showTopIcon = ref(false);\nconst isBtnsVertical = ref(false);\nconst btnCapsule = ref(false);\n\nwatch(\n  () => props.mode,\n  () => {\n    switch (props.mode) {\n      case \"normal\":\n        cancelButtonMode.value = \"normal-reverse\";\n        confirmButtonMode.value = \"primary\";\n        showTopIcon.value = false;\n        isBtnsVertical.value = false;\n        btnCapsule.value = false;\n        break;\n      case \"mini\":\n        cancelButtonMode.value = \"normal-transparent\";\n        confirmButtonMode.value = \"transparent\";\n        showTopIcon.value = false;\n        isBtnsVertical.value = false;\n        btnCapsule.value = false;\n        break;\n      case \"icon-btns\":\n        cancelButtonMode.value = \"outline\";\n        confirmButtonMode.value = \"gradient\";\n        showTopIcon.value = true;\n        isBtnsVertical.value = true;\n        btnCapsule.value = true;\n        break;\n      case \"btns\":\n        cancelButtonMode.value = \"outline\";\n        confirmButtonMode.value = \"gradient\";\n        showTopIcon.value = false;\n        isBtnsVertical.value = true;\n        btnCapsule.value = true;\n        break;\n    }\n  },\n  { immediate: true }\n);\n\nconst popOpen = () => {\n  emits(\"open\");\n};\nconst popClose = () => {\n  emits(\"close\");\n  switch (action) {\n    case \"close\":\n      emits(\"cancel\");\n      break;\n    case \"confirm\":\n      emits(\"confirm\");\n      break;\n  }\n};\n\nlet action: \"open\" | \"close\" | \"confirm\";\n\nfunction open() {\n  action = \"open\";\n  popRef.value?.open();\n}\n\nfunction close() {\n  action = \"close\";\n  popRef.value?.close();\n}\n\nfunction confirm() {\n  action = \"confirm\";\n  popRef.value?.close();\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    @open=\"popOpen\"\n    @close=\"popClose\"\n  >\n    <div class=\"dialog-parent\">\n      <div\n        class=\"dialog\"\n        :style=\"{\n          minWidth: props.minWidth,\n          maxWidth: props.maxWidth,\n          color: fontReverse\n        }\"\n      >\n        <!-- 头部提示图片 -->\n        <div\n          v-if=\"showTopIcon\"\n          class=\"top-icon\"\n        >\n          <div class=\"top-icon-btns\">\n            <IconWarn\n              :isGradient=\"true\"\n              :color=\"primaryPattern\"\n              :colorEnd=\"gradientPattern\"\n            ></IconWarn>\n          </div>\n          <div class=\"top-icon-btns-shadow\"><IconEllipse></IconEllipse></div>\n        </div>\n        <!-- 主体 -->\n        <div\n          class=\"dialog-inner\"\n          :style=\"{\n            paddingTop: showTopIcon ? '24px' : '0px',\n            borderRadius: props.borderRadius,\n            backgroundColor: foregroundReverse\n          }\"\n        >\n          <!-- 标题 -->\n          <div\n            v-if=\"title || showClose\"\n            class=\"title\"\n          >\n            <div\n              v-if=\"title\"\n              class=\"title-inner\"\n            >\n              {{ title }}\n            </div>\n            <div\n              v-if=\"showClose\"\n              class=\"close\"\n              @click=\"close\"\n            >\n              <div><IconClose></IconClose></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=\"[props.mode, isBtnsVertical ? 'vertical' : '']\"\n            v-if=\"cancelText || confirmText\"\n          >\n            <Button\n              v-if=\"cancelText\"\n              class=\"btn cancel\"\n              :mode=\"cancelButtonMode\"\n              :colorPattern=\"props.colorPattern\"\n              :capsule=\"btnCapsule\"\n              borderRadius=\"0\"\n              :fontWeight=\"props.mode == 'normal' ? 'normal' : 'bold'\"\n              @throttledClick=\"close\"\n            >\n              {{ cancelText }}\n            </Button>\n            <Button\n              v-if=\"confirmText\"\n              class=\"btn confirm\"\n              :mode=\"confirmButtonMode\"\n              :colorPattern=\"props.colorPattern\"\n              :capsule=\"btnCapsule\"\n              borderRadius=\"0\"\n              fontWeight=\"bold\"\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-btns {\n  width: 60px;\n  height: 60px;\n}\n.top-icon-btns-shadow {\n  width: 40px;\n  height: 4px;\n  margin-top: 4px;\n}\n.dialog-inner {\n  overflow: hidden;\n}\n.title {\n  position: relative;\n  margin-top: 20px;\n  font-size: 16px;\n  margin-bottom: -5px;\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: 14px;\n  word-break: break-all;\n  text-align: center;\n  max-height: 6rem;\n  max-height: 60vh;\n  overflow-y: scroll;\n  color: var(--yz-font-secondary-reverse, #666666);\n  padding: 20px;\n}\n.custom-content-default {\n  padding: 0;\n}\n.btns {\n  display: flex;\n  justify-content: center;\n}\n.btns.vertical {\n  flex-direction: column;\n  padding-bottom: 20px;\n}\n.btns.vertical > .btn {\n  margin-left: 20px;\n  margin-right: 20px;\n}\n.btns.vertical > .btn.cancel {\n  order: 2;\n  margin-top: 10px;\n}\n.btns.vertical > .btn.confirm {\n  order: 1;\n}\n.btns.mini {\n  border-top: 1px solid var(--yz-foreground-border-reverse, #e6e6e6);\n}\n.btns.mini > .btn + .btn {\n  border-left: 1px solid var(--yz-foreground-border-reverse, #e6e6e6) !important;\n}\n.btn {\n  flex: 1 1 auto;\n  border-radius: 0;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\nimport Dialog from \"./Dialog.vue\";\nimport IconLoading from \"../icon/IconLoading.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Dialog, IconLoading },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    content?: string;\n    closeWhenClickOverlay?: boolean;\n    dur?: number;\n  }>(),\n  {\n    content: \"\",\n    closeWhenClickOverlay: false,\n    dur: 200\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"open\"): void;\n  (event: \"close\"): void;\n}>();\n\nconst dialog = ref();\n\nfunction open() {\n  dialog.value?.open();\n}\n\nfunction close() {\n  dialog.value?.close();\n}\n\ndefineExpose({\n  open,\n  close\n});\n</script>\n\n<template>\n  <Dialog\n    ref=\"dialog\"\n    :showConfirm=\"false\"\n    :showTitle=\"false\"\n    :closeWhenClickOverlay=\"props.closeWhenClickOverlay\"\n    :dur=\"props.dur\"\n    @open=\"() => emits('open')\"\n    @close=\"() => emits('close')\"\n  >\n    <div class=\"loading\">\n      <div class=\"icon\">\n        <slot>\n          <div style=\"width: 8em\"><IconLoading></IconLoading></div>\n        </slot>\n      </div>\n      <div\n        v-if=\"content\"\n        class=\"content\"\n      >\n        {{ content }}\n      </div>\n    </div>\n  </Dialog>\n</template>\n\n<style scoped>\n.loading {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  padding: 1em 1em;\n}\n.icon {\n  padding: 2em 0;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n.content {\n  font-size: 1em;\n  margin-top: -1em;\n  margin-bottom: 1em;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\nimport { Status } from \"../../context/context\";\nimport Dialog from \"./Dialog.vue\";\nimport IconStatus from \"../icon/IconStatus.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Dialog, IconStatus },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    status?: Status;\n    content?: string;\n    during?: number;\n    closeWhenClickOverlay?: boolean;\n    dur?: number;\n  }>(),\n  {\n    content: \"\",\n    during: 1500,\n    closeWhenClickOverlay: false,\n    dur: 200\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"open\"): void;\n  (event: \"close\"): void;\n}>();\n\nconst dialog = ref();\n\nfunction open() {\n  dialog.value.open();\n  setTimeout(() => {\n    close();\n  }, props.during);\n}\n\nfunction close() {\n  dialog.value.close();\n}\n\ndefineExpose({\n  open,\n  close\n});\n</script>\n\n<template>\n  <Dialog\n    ref=\"dialog\"\n    :showConfirm=\"false\"\n    :showTitle=\"false\"\n    :closeWhenClickOverlay=\"props.closeWhenClickOverlay\"\n    :dur=\"props.dur\"\n    minWidth=\"160px\"\n    @open=\"() => emits('open')\"\n    @close=\"() => emits('close')\"\n  >\n    <div class=\"toast\">\n      <div\n        class=\"icon\"\n        v-if=\"props.status\"\n      >\n        <IconStatus\n          mode=\"transparent\"\n          :status=\"props.status\"\n        ></IconStatus>\n      </div>\n      <div class=\"content\">\n        {{ content }}\n      </div>\n    </div>\n  </Dialog>\n</template>\n\n<style scoped>\n.toast {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  padding: 1em 1em;\n}\n.icon {\n  margin-bottom: 5px;\n  width: 48px;\n}\n.content {\n  font-size: 1em;\n}\n</style>\n","<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"flex\" | \"grid\" | \"transform\" | \"table\";\n  }>(),\n  {\n    type: \"flex\"\n  }\n);\n\nconst parentStyle: Record<string, string> = {\n  display: \"block\",\n  width: \"100%\",\n  height: \"100%\",\n  position: \"relative\"\n};\nconst childStyle: Record<string, string> = {};\n\nfunction setStyle() {\n  switch (props.type) {\n    case \"table\":\n      parentStyle.display = \"table\";\n      childStyle.display = \"table-cell\";\n      childStyle.verticalAlign = \"middle\";\n      childStyle.textAlign = \"center\";\n      break;\n    case \"transform\":\n      childStyle.position = \"absolute\";\n      childStyle.top = \"50%\";\n      childStyle.left = \"50%\";\n      childStyle.transform = \"translate(-50%, -50%)\";\n      break;\n    case \"grid\":\n      parentStyle.display = \"grid\";\n      parentStyle.justifyContent = \"center\";\n      parentStyle.alignItems = \"center\";\n      break;\n    case \"flex\":\n    default:\n      parentStyle.display = \"flex\";\n      parentStyle.justifyContent = \"center\";\n      parentStyle.alignItems = \"center\";\n  }\n}\nsetStyle();\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"layout-center\"\n    :style=\"parentStyle\"\n  >\n    <div :style=\"childStyle\">\n      <slot></slot>\n    </div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"flex\";\n    direction?: \"column\" | \"row\";\n  }>(),\n  {\n    type: \"flex\",\n    direction: \"column\"\n  }\n);\n\nconst style: Record<string, string> = {};\n\nfunction setStyle() {\n  switch (props.type) {\n    case \"flex\":\n    default:\n      style.display = \"flex\";\n      style.flexDirection = props.direction;\n      style.justifyContent = \"center\";\n      style.alignItems = \"center\";\n  }\n}\nsetStyle();\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"content-center\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"flex\";\n  }>(),\n  {\n    type: \"flex\"\n  }\n);\n\nconst style: Record<string, string> = {};\n\nfunction setStyle() {\n  switch (props.type) {\n    case \"flex\":\n    default:\n      style.display = \"flex\";\n      style.flexDirection = \"row\";\n      style.justifyContent = \"space-between\";\n      style.alignItems = \"center\";\n  }\n}\nsetStyle();\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"content-space-between\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n\n<style scoped>\n.content-space-between > :nth-child(1) {\n  flex: 1 1 auto;\n}\n.content-space-between > :not(:nth-child(1)) {\n  flex: 0 0 auto;\n}\n</style>\n","<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"flex\";\n  }>(),\n  {\n    type: \"flex\"\n  }\n);\n\nconst style: Record<string, string> = {};\n\nfunction setStyle() {\n  switch (props.type) {\n    case \"flex\":\n    default:\n      style.display = \"flex\";\n      style.flexDirection = \"column\";\n      style.justifyContent = \"flex-start\";\n      style.alignItems = \"center\";\n  }\n}\nsetStyle();\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"content-top-center\"\n    :style=\"style\"\n  >\n    <slot></slot>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, watch, watchEffect } from \"vue\";\nimport { parseNumber, throttle } from \"@zyzgroup/core-common\";\nimport { __color, getCSSVar, ColorPattern } from \"@zyzgroup/core-web\";\nimport { context, getColors, mapState } from \"../../context/context\";\nimport Icon from \"./Icon.vue\";\nimport Loading11 from \"../loading/Loading11.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Icon },\n  inheritAttrs: true\n});\n\nexport type ButtonModePattern =\n  | \"primary\"\n  | \"secondary\"\n  | \"normal\"\n  | \"normal-reverse\"\n  | \"normal-transparent\"\n  | \"outline\"\n  | \"transparent\"\n  | \"gradient\"\n  | \"empty\";\n\nconst props = withDefaults(\n  defineProps<{\n    mode?: ButtonModePattern;\n    colorPattern?: ColorPattern;\n    size?: \"primary\" | \"secondary\" | \"tertiary\";\n    disabled?: boolean;\n    capsule?: boolean; // 按钮的两端为半圆形，整体形状接近一个椭圆或者圆形的胶囊\n\n    // 覆盖性 设置\n    backgroundColor?: string;\n\n    // 特异性 设置\n    icon?: string;\n    iconPosition?: \"left\" | \"right\";\n    width?: string;\n    height?: string;\n    fontSize?: string;\n    padding?: string;\n    borderRadius?: string; // border-radius:x/y\n    fontWeight?: string;\n  }>(),\n  {\n    mode: \"primary\",\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n    size: \"primary\",\n    disabled: false,\n    capsule: false,\n\n    // 特异性 设置\n    iconPosition: \"left\",\n    width: \"auto\",\n    fontWeight: \"normal\" // normal bold\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"click\", e: Event): void;\n  (event: \"throttledClick\", e: Event): void; // for ce element\n}>();\n\nlet height = props.height;\nlet fontSize = props.fontSize;\nlet padding = props.padding;\nlet borderRadius = props.borderRadius;\nif (props.size == \"primary\") {\n  height = height || getCSSVar(\"--yz-button-height\", \"44px\");\n  fontSize = fontSize || getCSSVar(\"--yz-font-size\", \"16px\");\n  padding = padding || getCSSVar(\"--yz-button-padding-horizontal\", \"20px\");\n  borderRadius = borderRadius || getCSSVar(\"--yz-button-border-radius\", \"4px\");\n} else if (props.size == \"secondary\") {\n  height = height || getCSSVar(\"--yz-button-height-secondary\", \"32px\");\n  fontSize = fontSize || getCSSVar(\"--yz-font-size-secondary\", \"14px\");\n  padding =\n    padding || getCSSVar(\"--yz-button-padding-horizontal-secondary\", \"16px\");\n  borderRadius =\n    borderRadius || getCSSVar(\"--yz-button-border-radius-secondary\", \"4px\");\n} else if (props.size == \"tertiary\") {\n  height = height || getCSSVar(\"--yz-button-height-tertiary\", \"24px\");\n  fontSize = fontSize || getCSSVar(\"--yz-font-size-secondary\", \"14px\");\n  padding =\n    padding || getCSSVar(\"--yz-button-padding-horizontal-tertiary\", \"8px\");\n  borderRadius =\n    borderRadius || getCSSVar(\"--yz-button-border-radius-tertiary\", \"4px\");\n}\n\nconst el = ref<HTMLElement>();\n\nconst opacity = ref(\"1\");\nwatch(\n  () => props.disabled,\n  () => {\n    opacity.value = props.disabled\n      ? `${1 - parseNumber(getCSSVar(\"--yz-disabled-alpha\"), 0.4)}`\n      : \"1\";\n  },\n  { immediate: true }\n);\n\n// 由 <更改颜色> 变为 <添加遮罩>\n// const darkenOver = 0.03;\n// const darkenClick = 0.06;\n// let baseBackgroundColor = backgroundColor.value;\n\nconst transparentColor = \"rgba(0,0,0,0)\";\n// 移动: 添加遮罩\nlet moveCoverColor = \"rgba(0,0,0,0.05)\";\n// 点击: 添加遮罩\nlet clickedCoverColor = \"rgba(0,0,0,0.1)\";\n\nconst showCover = ref(false);\nconst coverColor = ref(transparentColor);\n\nconst backgroundColor = ref(transparentColor);\nconst outlineColor = ref(transparentColor);\nconst contentColor = ref(transparentColor);\n\nfunction changeColor() {\n  if (isThemeDark) {\n    moveCoverColor = \"rgba(255,255,255,0.05)\";\n    clickedCoverColor = \"rgba(255,255,255,0.1)\";\n  } else {\n    moveCoverColor = \"rgba(0,0,0,0.05)\";\n    clickedCoverColor = \"rgba(0,0,0,0.1)\";\n  }\n\n  const {\n    panelReverse,\n    panelCommon,\n    gapReverse,\n    gapCommon,\n    fontReverse,\n    fontCommon,\n    primaryPattern,\n    secondaryPattern,\n    gradientPattern,\n    foregroundPattern\n  } = getColors(props.colorPattern);\n\n  switch (props.mode) {\n    case \"primary\":\n      backgroundColor.value = primaryPattern;\n      outlineColor.value = primaryPattern;\n      contentColor.value = foregroundPattern;\n      break;\n    case \"secondary\":\n      backgroundColor.value = secondaryPattern;\n      outlineColor.value = primaryPattern;\n      contentColor.value = isThemeDark ? foregroundPattern : primaryPattern;\n      break;\n    case \"normal\":\n      backgroundColor.value = panelCommon;\n      outlineColor.value = gapCommon;\n      contentColor.value = fontCommon;\n      break;\n    case \"normal-reverse\":\n      backgroundColor.value = panelReverse;\n      outlineColor.value = gapReverse;\n      contentColor.value = fontReverse;\n      break;\n    case \"normal-transparent\":\n      backgroundColor.value = transparentColor;\n      outlineColor.value = transparentColor;\n      contentColor.value = fontReverse;\n      break;\n    case \"outline\":\n      backgroundColor.value = transparentColor;\n      outlineColor.value = primaryPattern;\n      contentColor.value = primaryPattern;\n      break;\n    case \"transparent\":\n      backgroundColor.value = transparentColor;\n      outlineColor.value = transparentColor;\n      contentColor.value = primaryPattern;\n      break;\n    case \"gradient\":\n      backgroundColor.value = `linear-gradient(180deg, ${primaryPattern} 0%, ${gradientPattern} 100%)`;\n      outlineColor.value = transparentColor;\n      contentColor.value = foregroundPattern;\n      break;\n  }\n  // 覆盖性 设置\n  if (props.backgroundColor) {\n    backgroundColor.value = props.backgroundColor;\n  }\n  // baseBackgroundColor = backgroundColor.value;\n}\n\nconst mappedState = mapState([\"theme.theme\"]);\nlet currentTheme;\nlet isThemeDark;\nwatchEffect(() => {\n  const nextTheme = mappedState[\"theme.theme\"].value;\n  if (currentTheme == nextTheme) {\n    return;\n  }\n  currentTheme = nextTheme;\n  isThemeDark = currentTheme == \"dark\";\n  changeColor();\n});\n\nwatch(\n  () => props.mode,\n  () => {\n    changeColor();\n  },\n  {\n    // immediate: true\n  }\n);\n\nlet isMouseOver = false;\nconst mouseover = () => {\n  isMouseOver = true;\n  if (props.disabled) {\n    return;\n  }\n  showCover.value = true;\n  coverColor.value = moveCoverColor;\n  // switch (props.mode) {\n  //   case \"gradient\":\n  //     if (isThemeDark) {\n  //       backgroundColor.value = `linear-gradient(180deg, ${__color\n  //         .set(primaryPattern)\n  //         .lighten(darkenOver)\n  //         .toString()} 0%, ${__color\n  //         .set(gradientPattern)\n  //         .lighten(darkenOver)\n  //         .toString()} 100%)`;\n  //     } else {\n  //       backgroundColor.value = `linear-gradient(180deg, ${__color\n  //         .set(primaryPattern)\n  //         .darken(darkenOver)\n  //         .toString()} 0%, ${__color\n  //         .set(gradientPattern)\n  //         .darken(darkenOver)\n  //         .toString()} 100%)`;\n  //     }\n  //     break;\n  //   default:\n  //     if (isThemeDark) {\n  //       backgroundColor.value = __color\n  //         .set(baseBackgroundColor)\n  //         .lighten(darkenOver)\n  //         .toString();\n  //     } else {\n  //       backgroundColor.value = __color\n  //         .set(baseBackgroundColor)\n  //         .darken(darkenOver)\n  //         .toString();\n  //     }\n  //     break;\n  // }\n};\n\nconst mouseleave = () => {\n  isMouseOver = false;\n  showCover.value = false;\n  coverColor.value = transparentColor;\n  // backgroundColor.value = baseBackgroundColor;\n};\n\nconst throttledClick = throttle((e: Event) => {\n  if (props.disabled) {\n    return;\n  }\n  showCover.value = true;\n  coverColor.value = clickedCoverColor;\n  // switch (props.mode) {\n  //   case \"gradient\":\n  //     if (isThemeDark) {\n  //       backgroundColor.value = `linear-gradient(180deg, ${__color\n  //         .set(primaryPattern)\n  //         .lighten(darkenClick)\n  //         .toString()} 0%, ${__color\n  //         .set(gradientPattern)\n  //         .lighten(darkenClick)\n  //         .toString()} 100%)`;\n  //     } else {\n  //       backgroundColor.value = `linear-gradient(180deg, ${__color\n  //         .set(primaryPattern)\n  //         .darken(darkenClick)\n  //         .toString()} 0%, ${__color\n  //         .set(gradientPattern)\n  //         .darken(darkenClick)\n  //         .toString()} 100%)`;\n  //     }\n  //     break;\n  //   default:\n  //     if (isThemeDark) {\n  //       backgroundColor.value = __color\n  //         .set(baseBackgroundColor)\n  //         .lighten(darkenClick)\n  //         .toString();\n  //     } else {\n  //       backgroundColor.value = __color\n  //         .set(baseBackgroundColor)\n  //         .darken(darkenClick)\n  //         .toString();\n  //     }\n  //     break;\n  // }\n  setTimeout(() => {\n    mouseleave();\n  }, 150);\n  emits(\"click\", e);\n  emits(\"throttledClick\", e);\n}, 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      props.mode == 'empty'\n        ? {\n            position: 'relative',\n            overflow: 'hidden',\n            userSelect: 'none',\n            boxSizing: 'border-box',\n            display: 'inline-block',\n            opacity: opacity,\n            cursor: `${props.disabled ? 'not-allowed' : 'pointer'}`\n          }\n        : {\n            position: 'relative',\n            overflow: 'hidden',\n            background: `${backgroundColor}`,\n            border: `1px solid ${outlineColor}`,\n            color: contentColor,\n            opacity: opacity,\n            borderRadius: `${props.capsule ? '9999px' : borderRadius}`,\n            width: props.width,\n            height: height,\n            lineHeight: height,\n            fontSize: fontSize,\n            cursor: `${props.disabled ? 'not-allowed' : 'pointer'}`,\n            /* `pointer-events: ${props.disabled ? 'none' : 'auto'}`, */\n            userSelect: 'none',\n            boxSizing: 'border-box',\n            display: 'inline-flex',\n            justifyContent: 'center',\n            alignItems: 'center',\n            zIndex: '0'\n          }\n    \"\n    @mouseover=\"mouseover\"\n    @mouseleave=\"mouseleave\"\n    @click=\"throttledClick\"\n  >\n    <div\n      class=\"truncate\"\n      :style=\"\n        props.mode == 'empty'\n          ? {\n              display: 'flex',\n              justifyContent: 'center',\n              alignItems: 'center'\n            }\n          : {\n              padding: '0 ' + padding,\n              display: 'flex',\n              justifyContent: 'center',\n              alignItems: 'center',\n              fontWeight: props.fontWeight\n            }\n      \"\n    >\n      <!-- <div\n        class=\"loading\"\n        style=\"margin-right: 6px\"\n      >\n        <Loading11 :color=\"contentColor\"></Loading11>\n      </div> -->\n      <Icon\n        v-if=\"icon && iconPosition === 'left'\"\n        :icon=\"icon\"\n        :color=\"contentColor\"\n        :style=\"{\n          marginRight: '4px'\n        }\"\n      ></Icon>\n      <slot>\n        <!-- default none text -->\n      </slot>\n      <Icon\n        v-if=\"icon && iconPosition === 'right'\"\n        :icon=\"icon\"\n        :color=\"contentColor\"\n        :style=\"{\n          marginLeft: '4px'\n        }\"\n      ></Icon>\n    </div>\n    <div\n      :style=\"[\n        `display: ${showCover ? 'block' : 'none'}`,\n        `position: absolute`,\n        `top: 0`,\n        `left: 0`,\n        `width: 100%`,\n        `height: 100%`,\n        `background: ${coverColor}`,\n        `z-index: 1`\n      ]\"\n    ></div>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { mapState } from \"../../context/context\";\nimport IconWarn from \"../icon/IconWarn.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { IconWarn },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: \"none\" | \"warn\";\n    text?: string;\n    color?: string;\n  }>(),\n  {\n    type: \"none\",\n    text: \"\"\n  }\n);\n\nconst mappedState = mapState([\"color.fontPattern\"]);\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"text\"\n    :style=\"{\n      color: props.color || mappedState['color.fontPattern'].value\n    }\"\n  >\n    <div class=\"text-icon\">\n      <slot name=\"icon\">\n        <IconWarn v-if=\"props.type == 'warn'\"></IconWarn>\n      </slot>\n    </div>\n    <div\n      class=\"ellipsis\"\n      :style=\"{ marginLeft: props.type == 'none' ? '0' : '0.35em' }\"\n    >\n      <slot>{{ props.text }}</slot>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.text {\n  display: flex;\n  justify-content: flex-start;\n  align-items: center;\n  font-size: 1em;\n  line-height: 1;\n  max-width: 100%;\n}\n.text .text-icon {\n  flex: 0 0 auto;\n  width: 1em;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref, computed } from \"vue\";\nimport { Validator } from \"@zyzgroup/core-common\";\nimport { mapState } from \"../../context/context\";\nimport Text from \"./Text.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Text },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    type?: string; // text email phone ...\n    required?: boolean;\n    defaultValue?: string;\n\n    placeholder?: string;\n    placeholderType?: \"normal\" | \"underline\" | \"jump\" | \"jump-each\";\n    duration?: number;\n\n    showError?: boolean;\n    validator?: Validator;\n  }>(),\n  {\n    type: \"text\",\n    required: false,\n\n    placeholder: \"\",\n    placeholderType: \"normal\",\n    duration: 500,\n\n    showError: true\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"focus\"): void;\n  (event: \"yz-focus\"): void;\n  (event: \"blur\"): void;\n  (event: \"yz-blur\"): void;\n  (event: \"input\", text: string): void;\n  (event: \"yz-input\", text: string): void;\n  (event: \"error\", text: string): void;\n  (event: \"yz-error\", text: string): void;\n}>();\n\nconst mappedState = mapState([\n  \"color.redCommon\",\n  \"color.gapPattern\",\n  \"color.placeholderPattern\",\n  \"color.primaryPattern\",\n  \"color.fontPattern\"\n]);\n\nconst isTypeNormal = computed(() => props.placeholderType == \"normal\");\nconst isTypeUnderline = computed(() => props.placeholderType == \"underline\");\nconst isTypeJump = computed(() => props.placeholderType == \"jump\");\nconst isTypeJumpEach = computed(() => props.placeholderType == \"jump-each\");\n\nconst placeholders = props.placeholder.split(\"\");\nconst placeholderJumpEachDuration = props.duration / placeholders.length;\n\nconst el = ref();\n\nconst isFocus = ref(false);\nconst errorText = ref(\"\");\nconst inputText = ref(props.defaultValue || \"\");\n\nfunction focus() {\n  isFocus.value = true;\n  emits(\"focus\");\n  emits(\"yz-focus\");\n}\n\nfunction blur() {\n  isFocus.value = false;\n  emits(\"blur\");\n  emits(\"yz-blur\");\n  validate();\n}\n\nfunction input(e: Event) {\n  inputText.value = (e.target as HTMLInputElement).value;\n  validate();\n}\n\nfunction validate() {\n  if (inputText.value && props.validator) {\n    const result = props.validator(inputText.value);\n    if (!result.valid) {\n      errorText.value = result.errors[0];\n      emits(\"error\", errorText.value);\n      emits(\"yz-error\", errorText.value);\n      emits(\"input\", \"\");\n      emits(\"yz-input\", \"\");\n      return;\n    }\n  }\n  errorText.value = \"\";\n  if (inputText.value) {\n    emits(\"input\", inputText.value);\n    emits(\"yz-input\", inputText.value);\n  }\n}\n\nonMounted(() => {\n  if (props.defaultValue) {\n    el.value.value = props.defaultValue;\n  }\n});\n\nonUnmounted(() => {});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div class=\"input\">\n    <!-- error prompt top -->\n    <div\n      v-if=\"props.showError && errorText && !isTypeUnderline\"\n      class=\"error-prompt-top\"\n    >\n      <Text\n        type=\"warn\"\n        :color=\"mappedState['color.redCommon'].value\"\n      >\n        {{ errorText }}\n      </Text>\n    </div>\n    <!-- input-wrap -->\n    <div\n      class=\"input-wrap\"\n      :class=\"isFocus || inputText ? 'focus' : ''\"\n      :style=\"{\n        fontSize: '1em',\n        border: `${isTypeUnderline ? '0' : '1'}px solid transparent`,\n        borderBottom: `1px solid transparent`,\n        borderRadius: isTypeUnderline\n          ? '0'\n          : `var(--yz-input-border-radius, 4px)`,\n        borderColor: errorText\n          ? mappedState['color.redCommon'].value\n          : isFocus\n          ? mappedState['color.primaryPattern'].value\n          : inputText || isTypeNormal || isTypeUnderline\n          ? mappedState['color.gapPattern'].value\n          : 'transparent',\n        transition: props.duration + 'ms'\n      }\"\n    >\n      <!-- placeholder-wrap -->\n      <div\n        class=\"placeholder\"\n        :style=\"{\n          lineHeight:\n            isFocus || inputText ? 1.3 : `var(--yz-input-height, 44px)`,\n          color: mappedState['color.placeholderPattern'].value,\n          transition:\n            isTypeNormal || isTypeUnderline ? '' : props.duration + 'ms',\n          transform:\n            isTypeNormal || isTypeUnderline\n              ? ''\n              : isFocus || inputText\n              ? `translateY(-100%)`\n              : 'none'\n        }\"\n      >\n        <!-- placeholder: normal / underline -->\n        <div\n          v-if=\"\n            !errorText &&\n            (isTypeNormal || isTypeUnderline) &&\n            !isFocus &&\n            !inputText\n          \"\n          :style=\"{\n            paddingLeft: '0.5em'\n          }\"\n        >\n          {{ props.placeholder }}\n        </div>\n        <!-- placeholder: jump -->\n        <div v-if=\"!errorText && isTypeJump && !inputText\">\n          {{ props.placeholder }}\n        </div>\n        <!-- placeholder: jump-each -->\n        <span\n          v-if=\"!errorText && isTypeJumpEach && !inputText\"\n          v-for=\"(item, index) in placeholders\"\n          :key=\"index\"\n          :style=\"{\n            transition:\n              props.duration + 'ms cubic-bezier(0.68, -0.55, 0.265, 1.55)',\n            transitionDelay: `${placeholderJumpEachDuration * index}ms`,\n            transform:\n              isFocus || inputText\n                ? `translateX(${100 * index}%) translateY(-100%)`\n                : `translateX(${100 * index}%)`\n          }\"\n          class=\"single\"\n        >\n          {{ item }}\n        </span>\n      </div>\n      <input\n        ref=\"el\"\n        class=\"input-raw\"\n        name=\"input-raw\"\n        :type=\"props.type\"\n        :required=\"props.required\"\n        autocomplete=\"off\"\n        :style=\"{\n          fontSize: `var(--yz-font-size, 16px)`,\n          height: `var(--yz-input-height, 44px)`,\n          lineHeight: `var(--yz-input-height, 44px)`,\n          color: mappedState['color.fontPattern'].value,\n          padding: isTypeUnderline ? '0.6em 0' : '0.6em',\n          border: `0px solid transparent`\n        }\"\n        @focus=\"focus\"\n        @blur=\"blur\"\n        @input=\"input\"\n        @change=\"input\"\n      />\n      <div class=\"input-slot\"><slot></slot></div>\n      <!-- background color and height -->\n      <div\n        class=\"background\"\n        v-if=\"!isTypeUnderline\"\n        :style=\"{\n          transition: props.duration + 'ms',\n          backgroundColor:\n            isTypeNormal || isFocus || inputText\n              ? 'transparent'\n              : mappedState['color.gapPattern'].value,\n          height:\n            isTypeNormal || isFocus || inputText\n              ? `var(--yz-input-height, 44px)`\n              : '2px',\n          borderRadius: `var(--yz-input-border-radius, 4px)`\n        }\"\n      ></div>\n    </div>\n    <!-- error prompt bottom -->\n    <div\n      v-if=\"props.showError && errorText && isTypeUnderline\"\n      class=\"error-prompt-bottom\"\n    >\n      <Text\n        type=\"warn\"\n        :color=\"mappedState['color.redCommon'].value\"\n      >\n        {{ errorText }}\n      </Text>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.input {\n  position: relative;\n  box-sizing: border-box;\n  font-size: var(--yz-font-size, 16px);\n  overflow: hidden;\n}\n/*\n.error-prompt-top {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  font-size: 0.75em;\n  line-height: 1;\n  transform: translateY(-100%);\n}\n*/\n.error-prompt-top {\n  width: 100%;\n  font-size: 0.75em;\n  line-height: 1;\n  margin-bottom: 0.5em;\n}\n.error-prompt-bottom {\n  width: 100%;\n  font-size: 0.75em;\n  line-height: 1;\n  margin-top: 0.5em;\n}\n.input-wrap {\n  position: relative;\n  box-sizing: border-box;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n.input-raw {\n  flex: 1 1 auto;\n  display: block;\n  box-sizing: border-box;\n  position: relative;\n  background: transparent;\n  outline: none;\n  box-shadow: none;\n  z-index: 10;\n}\n.input-slot {\n  flex: 0 0 auto;\n}\n.background {\n  position: absolute;\n  left: 0;\n  bottom: 0;\n  width: 100%;\n  pointer-events: none;\n  z-index: 9;\n}\n.placeholder {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  pointer-events: none;\n}\n.focus .placeholder {\n  font-size: 0.75em;\n}\n.placeholder > div {\n  width: 100%;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center;\n}\n.placeholder > span.single {\n  position: absolute;\n  left: 0;\n  top: 0;\n}\n/*\ninput:-moz-placeholder,\ninput:-ms-input-placeholder,\ninput::-webkit-input-placeholder,\ninput::placeholder{\n  color: var(--yz-gap-common, #cccccc);\n}\n*/\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref, watchEffect } from \"vue\";\nimport { useDrop } 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    placeholder?: string;\n  }>(),\n  {\n    placeholder: \"drop file\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"drop\", files: File[]): void;\n  (event: \"yz-drop\", files: File[]): void;\n}>();\n\nconst zone = ref();\nconst isOver = ref(false);\nlet remove: () => void;\n\nwatchEffect(() => {\n  if (!zone.value || remove) {\n    return;\n  }\n  remove = useDrop(zone.value, {\n    onEnter: () => {\n      isOver.value = true;\n    },\n    onLeave: () => {\n      isOver.value = false;\n    },\n    onDrop: (e, files) => {\n      emits(\"drop\", files);\n      emits(\"yz-drop\", files);\n      // console.log(files);\n      isOver.value = false;\n    }\n  });\n});\n\nonUnmounted(() => {\n  remove?.();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    ref=\"zone\"\n    class=\"input-file-drop\"\n    :class=\"[isOver ? 'over' : '']\"\n  >\n    <slot>{{ props.placeholder }}</slot>\n  </div>\n</template>\n\n<style scoped>\n.input-file-drop {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  border: 2px dashed var(--yz-gap-common);\n  color: var(--yz-gap-common);\n}\n.input-file-drop.over {\n  border-color: var(--yz-font-common);\n  color: var(--yz-font-common);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onUnmounted, ref } from \"vue\";\nimport {\n  __color,\n  Color,\n  useClipboard,\n  useCompatableDownMovePoint$\n} from \"@zyzgroup/core-web\";\nimport { clamp } from \"@zyzgroup/core-common\";\nimport Popover from \"../pop/Popover.vue\";\nimport Box from \"../base/Box.vue\";\n// import { toast } from \"../../globalTeleport\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Popover }\n});\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {\n    color: \"#5a82f0\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"color\", color: string): void;\n}>();\n\nconst popover = ref();\n\nconst color = new Color(props.color);\nconst rightColor = new Color(props.color);\n\nconst colorString = ref(\"\");\nconst oppositeColorString = ref(\"\");\nconst rightColorString = ref(\"\");\nconst oppositeRightColorString = ref(\"\");\n\nconst h = ref(0);\nconst s = ref(0);\nconst v = ref(0);\n\nconst hTop = ref(0);\nconst sLeft = ref(0);\nconst vTop = ref(0);\n\nfunction set() {\n  colorString.value = color.toString();\n  oppositeColorString.value = __color.set(color).opposite(true).toString();\n  rightColorString.value = rightColor.toString();\n  oppositeRightColorString.value = __color\n    .set(rightColor)\n    .opposite(true)\n    .toString();\n  const rightColorHSV = rightColor.getHSV();\n  const colorHSV = color.getHSV();\n  h.value = rightColorHSV.h;\n  s.value = colorHSV.s;\n  v.value = colorHSV.v;\n  hTop.value = (1 - h.value) * 100;\n  sLeft.value = 100 * s.value - 6;\n  vTop.value = 100 * (1 - v.value) - 6;\n}\n\n// 初始化\nset();\n\nlet s1;\nlet s2;\n\n// 右侧竖行选择区-指示棒-h\nconst hueFieldReady = (ctx, box) => {\n  const setH = () => {\n    if (!ctx.mpg.current.isDown) {\n      return;\n    }\n    const h = clamp(1 - ctx.mpg.current.y / ctx.rect.height, 0, 1);\n    rightColor.setHSV(h, s.value, v.value);\n    color.setHSV(h, s.value, v.value);\n    set();\n  };\n  if (s1) {\n    s1.unsubscribe();\n  }\n  s1 = useCompatableDownMovePoint$(box.el, {\n    start: setH\n  }).subscribe(setH);\n};\n\n// 正方形选择区-叠加黑白渐变背景-s+v\nconst saturationFieldReady = (ctx, box) => {\n  const setSV = () => {\n    if (!ctx.mpg.current.isDown) {\n      return;\n    }\n    color.setHSV(\n      h.value,\n      ctx.mpg.current.x / ctx.rect.width,\n      1 - ctx.mpg.current.y / ctx.rect.height\n    );\n    set();\n  };\n  if (s2) {\n    s2.unsubscribe();\n  }\n  s2 = useCompatableDownMovePoint$(box.el, {\n    start: setSV,\n    end: () => {\n      emits(\"color\", colorString.value);\n      popover.value.close();\n      useClipboard(colorString.value).then(() => {\n        // toast(`${colorString.value} 已复制`);\n      });\n    }\n  }).subscribe(setSV);\n};\n\nonUnmounted(() => {\n  s1?.unsubscribe();\n  s2?.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <Popover\n    ref=\"popover\"\n    :closeWhenClickOverlay=\"false\"\n  >\n    <template #button>\n      <slot>\n        <span\n          style=\"\n            display: inline-block;\n            vertical-align: middle;\n            font-size: 1em;\n            padding: 0.3em 0.8em;\n            border-radius: 0.3em;\n            cursor: pointer;\n            outline: 'none';\n            text-align: 'center';\n            border: 0;\n          \"\n          :style=\"{\n            backgroundColor: colorString,\n            color: oppositeColorString\n          }\"\n        >\n          {{ colorString }}\n        </span>\n      </slot>\n    </template>\n    <template #panel>\n      <div\n        class=\"selector\"\n        style=\"\n          position: relative;\n          width: 124px;\n          height: 106px;\n          padding: 3px;\n          background-color: #222222;\n          box-sizing: border-box;\n        \"\n      >\n        <!-- 正方形选择区 -->\n        <div\n          class=\"saturation-field\"\n          style=\"\n            position: relative;\n            width: 100px;\n            height: 100px;\n            display: inline-block;\n            cursor: pointer;\n            box-sizing: border-box;\n          \"\n          :style=\"{\n            background: `linear-gradient(\n              to right,\n              rgb(255, 255, 255) 0%,\n              ${rightColorString} 100%\n            )`\n          }\"\n        >\n          <Box\n            display=\"full\"\n            @start=\"saturationFieldReady\"\n          >\n            <!-- 正方形选择区-叠加黑白渐变背景 -->\n            <div\n              style=\"\n                width: 100%;\n                height: 100%;\n                background: linear-gradient(\n                  to bottom,\n                  rgba(0, 0, 0, 0) 0%,\n                  rgb(0, 0, 0) 100%\n                );\n                box-sizing: border-box;\n              \"\n            ></div>\n            <!-- 圆形选择点 -->\n            <div\n              class=\"field-knob\"\n              style=\"\n                position: absolute;\n                width: 12px;\n                height: 12px;\n                box-shadow: rgba(0, 0, 0, 0.5) 0px 1px 3px;\n                border-radius: 12px;\n                z-index: 1;\n                cursor: pointer;\n                box-sizing: border-box;\n              \"\n              :style=\"{\n                left: sLeft + 'px',\n                top: vTop + 'px',\n                backgroundColor: colorString,\n                border: `2px solid ${oppositeColorString}`\n              }\"\n            ></div>\n          </Box>\n        </div>\n        <!-- 右侧竖行选择区 -->\n        <div\n          class=\"hue-field\"\n          style=\"\n            width: 15px;\n            height: 100px;\n            cursor: ns-resize;\n            position: absolute;\n            top: 3px;\n            right: 3px;\n            background: linear-gradient(\n              to bottom,\n              rgb(255, 0, 0) 0%,\n              rgb(255, 0, 255) 17%,\n              rgb(0, 0, 255) 34%,\n              rgb(0, 255, 255) 50%,\n              rgb(0, 255, 0) 67%,\n              rgb(255, 255, 0) 84%,\n              rgb(255, 0, 0) 100%\n            );\n            box-sizing: border-box;\n          \"\n        >\n          <Box\n            display=\"full\"\n            @start=\"hueFieldReady\"\n          >\n            <!-- 右侧竖行选择区-指示棒 -->\n            <div\n              class=\"hue-knob\"\n              style=\"\n                position: absolute;\n                width: 15px;\n                height: 2px;\n                z-index: 1;\n                box-sizing: border-box;\n              \"\n              :style=\"{\n                marginTop: hTop + 'px',\n                borderRight: '4px solid ' + oppositeRightColorString\n              }\"\n            ></div>\n          </Box>\n        </div>\n      </div>\n    </template>\n  </Popover>\n</template>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport {\n  getCalendarPageItems,\n  parseDate,\n  type DateDetail,\n  getDateDetail,\n  getNthMonth,\n  flattenArray,\n  getNthDay\n} from \"@zyzgroup/core-common\";\nimport { __color, ColorPattern } from \"@zyzgroup/core-web\";\nimport { context, getColors } from \"../../context/context\";\nimport Button from \"./Button.vue\";\nimport IconArrowRight from \"../icon/IconArrowRight.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Button, IconArrowRight },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    colorPattern?: ColorPattern;\n    title?: string; // 标题\n    initDay?: string; // 当前日期\n    startDay?: string; // 可选范围：开始日期\n    endDay?: string; // 可选范围：结束日期\n    excludeDays?: string[]; // 排除日期范围，要求已按日历排序\n    selectedDays?: string[]; // 已选择日期范围，要求已按日历排序\n  }>(),\n  {\n    colorPattern: context.store.getState().color\n      .colorPattern as unknown as ColorPattern,\n    title: \"\",\n    excludeDays: () => [],\n    selectedDays: () => []\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"cancel\"): void;\n  (event: \"confirm\", date: Date): void;\n}>();\n\n// 样式\nconst {\n  foregroundPattern,\n  panelPattern,\n  primaryPattern,\n  secondaryPattern,\n  fontPattern,\n  fontTertiaryPattern\n} = getColors(props.colorPattern);\nconst panelPatternLighter = __color\n  .setColor(panelPattern)\n  .lighten(0.5)\n  .toString();\n\nconst startDateDetail = props.startDay\n  ? getDateDetail(parseDate(props.startDay))\n  : null;\nconst endDateDetail = props.endDay\n  ? getDateDetail(parseDate(props.endDay))\n  : null;\nconst excludeDateDetails = props.excludeDays.map((d) =>\n  getDateDetail(parseDate(d))\n);\nconst initSelectedDateDetails = props.selectedDays.map((d) =>\n  getDateDetail(parseDate(d))\n);\n// 初始化\nconst initDateDetail = getDateDetail(\n  props.initDay ? parseDate(props.initDay) : new Date()\n);\nconst selectDateDetail = ref(getInitAvailableDateDetailInRange(initDateDetail));\nlet showDateDetail = initDateDetail;\nconst showYear = ref(showDateDetail.year);\nconst showMonth = ref(showDateDetail.month);\nconst showDateDetails = ref(\n  expandDateDetails(getCalendarPageItems(showDateDetail.date))\n);\nsetCalendarStyle();\n\nfunction getInitAvailableDateDetailInRange(\n  initDateDetail: DateDetail\n): DateDetail | null {\n  let currentDateDetail = initDateDetail;\n  if (\n    startDateDetail &&\n    currentDateDetail.date.getTime() < startDateDetail.date.getTime()\n  ) {\n    currentDateDetail = getDateDetail(startDateDetail.date);\n  }\n\n  function available(): boolean {\n    for (let i = 0, c = initSelectedDateDetails.length; i < c; i++) {\n      const item = initSelectedDateDetails[i];\n      if (\n        currentDateDetail.year == item.year &&\n        currentDateDetail.month == item.month &&\n        currentDateDetail.day == item.day\n      ) {\n        return false;\n      }\n    }\n    for (let i = 0, c = excludeDateDetails.length; i < c; i++) {\n      const item = excludeDateDetails[i];\n      if (\n        currentDateDetail.year == item.year &&\n        currentDateDetail.month == item.month &&\n        currentDateDetail.day == item.day\n      ) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  while (!available()) {\n    currentDateDetail = getDateDetail(getNthDay(currentDateDetail.date, 1));\n    if (\n      endDateDetail &&\n      currentDateDetail.date.getTime() > endDateDetail.date.getTime()\n    ) {\n      return null;\n    }\n  }\n\n  return currentDateDetail;\n}\n\ntype ExpandedDateDetail = DateDetail & {\n  isShowMonth: boolean; // 是否是显示月份\n  isInitSelected: boolean; // 初始化时是否已被选择；如果是，则不可再选；\n  isDisabled: boolean; // 是否不可选择\n  isSelected: boolean; // 是否已被选择\n  // 样式\n  bgColor: string;\n  fontColor: string;\n};\n\nfunction expandDateDetails(pageItems: DateDetail[][]): ExpandedDateDetail[][] {\n  const expandedPagesItems: ExpandedDateDetail[][] = [];\n  for (let i = 0, rows = pageItems.length; i < rows; i++) {\n    const row: ExpandedDateDetail[] = [];\n    for (let j = 0; j < 7; j++) {\n      const item = pageItems[i][j];\n      // 是否已预选\n      let isInitSelected = false;\n      initSelectedDateDetails.forEach((d) => {\n        if (!isInitSelected) {\n          isInitSelected =\n            item.year == d.year && item.month == d.month && item.day == d.day;\n        }\n      });\n      // 是否不可选\n      let isDisabled = isInitSelected;\n      if (!isDisabled && startDateDetail) {\n        isDisabled = item.date.getTime() < startDateDetail.date.getTime();\n      }\n      if (!isDisabled && endDateDetail) {\n        isDisabled = item.date.getTime() > endDateDetail.date.getTime();\n      }\n      excludeDateDetails.forEach((d) => {\n        if (!isDisabled) {\n          isDisabled =\n            item.year == d.year && item.month == d.month && item.day == d.day;\n        }\n      });\n      row.push({\n        ...item,\n        isShowMonth:\n          item.year == showYear.value && item.month == showMonth.value,\n        isInitSelected,\n        isDisabled,\n        isSelected:\n          !isDisabled &&\n          selectDateDetail.value &&\n          item.year == selectDateDetail.value.year &&\n          item.month == selectDateDetail.value.month &&\n          item.day == selectDateDetail.value.day,\n        // 样式\n        bgColor: \"\",\n        fontColor: \"\"\n      });\n    }\n    expandedPagesItems.push(row);\n  }\n  return expandedPagesItems;\n}\n\nfunction setCalendarStyle() {\n  flattenArray(showDateDetails.value).forEach((i) => {\n    i.bgColor = i.isInitSelected\n      ? secondaryPattern\n      : i.isSelected\n      ? primaryPattern\n      : i.isShowMonth\n      ? i.isDisabled\n        ? panelPatternLighter\n        : panelPattern\n      : \"transparent\";\n    i.fontColor = i.isInitSelected\n      ? fontPattern\n      : i.isSelected\n      ? foregroundPattern\n      : !i.isShowMonth || i.isDisabled\n      ? fontTertiaryPattern\n      : fontPattern;\n  });\n  showDateDetails.value = [...showDateDetails.value];\n}\n\n// 上一个月\nfunction prevMonth() {\n  showDateDetail = getDateDetail(getNthMonth(showDateDetail.date, -1, true));\n  showYear.value = showDateDetail.year;\n  showMonth.value = showDateDetail.month;\n  showDateDetails.value = expandDateDetails(\n    getCalendarPageItems(showDateDetail.date)\n  );\n  setCalendarStyle();\n}\n\n// 下一个月\nfunction nextMonth() {\n  showDateDetail = getDateDetail(getNthMonth(showDateDetail.date, 1, true));\n  showYear.value = showDateDetail.year;\n  showMonth.value = showDateDetail.month;\n  showDateDetails.value = expandDateDetails(\n    getCalendarPageItems(showDateDetail.date)\n  );\n  setCalendarStyle();\n}\n\n// 取消\nconst cancel = () => {\n  emits(\"cancel\");\n};\n\n// 确定\nconst confirm = () => {\n  if (!selectDateDetail.value) {\n    // 无响应\n    return;\n  }\n  emits(\"confirm\", selectDateDetail.value.date);\n};\n\n// 选择日期\nconst select = (\n  year: number,\n  month: number,\n  day: number,\n  isDisabled: boolean\n) => {\n  if (isDisabled) {\n    // 无响应\n    return;\n  }\n  selectDateDetail.value = null;\n  let direction = \"\";\n  flattenArray(showDateDetails.value).forEach((i) => {\n    const shouldSelected = i.year == year && i.month == month && i.day == day;\n    // 可取消选择\n    i.isSelected = i.isSelected && shouldSelected ? false : shouldSelected;\n    if (i.isSelected) {\n      selectDateDetail.value = i;\n      // 选择了非显示月日，自动跳转\n      if (year != showDateDetail.year || month != showDateDetail.month) {\n        direction =\n          i.date.getTime() > showDateDetail.date.getTime()\n            ? \"forward\"\n            : \"backward\";\n      }\n    }\n  });\n  if (direction == \"forward\") {\n    nextMonth();\n  } else if (direction == \"backward\") {\n    prevMonth();\n  } else {\n    setCalendarStyle();\n  }\n};\n\ndefineExpose({\n  //\n});\n</script>\n\n<template>\n  <div\n    class=\"calendar\"\n    :style=\"{ backgroundColor: foregroundPattern, color: fontPattern }\"\n  >\n    <div\n      class=\"calendar-title\"\n      :style=\"{ borderBottom: `2px solid ${panelPattern}` }\"\n    >\n      <Button\n        mode=\"empty\"\n        @throttledClick=\"cancel\"\n      >\n        取消\n      </Button>\n      <div>{{ props.title }}</div>\n      <Button\n        :style=\"{\n          color: primaryPattern\n        }\"\n        mode=\"empty\"\n        :disabled=\"!selectDateDetail\"\n        @throttledClick=\"confirm\"\n      >\n        确定\n      </Button>\n    </div>\n    <div class=\"calendar-year-month\">\n      <Button\n        class=\"icon-prev-month\"\n        :style=\"{\n          backgroundColor: panelPattern\n        }\"\n        mode=\"empty\"\n        @throttledClick=\"prevMonth\"\n      >\n        <IconArrowRight :color=\"fontPattern\"></IconArrowRight>\n      </Button>\n      <div>{{ showYear }} 年 {{ showMonth }} 月</div>\n      <Button\n        class=\"icon-next-month\"\n        :style=\"{\n          backgroundColor: panelPattern\n        }\"\n        mode=\"empty\"\n        @throttledClick=\"nextMonth\"\n      >\n        <IconArrowRight :color=\"fontPattern\"></IconArrowRight>\n      </Button>\n    </div>\n    <div class=\"calendar-items\">\n      <div\n        class=\"calendar-items-row calendar-items-row-week\"\n        :style=\"{ color: fontTertiaryPattern }\"\n      >\n        <div>一</div>\n        <div>二</div>\n        <div>三</div>\n        <div>四</div>\n        <div>五</div>\n        <div>六</div>\n        <div>日</div>\n      </div>\n      <div\n        v-for=\"row in showDateDetails\"\n        class=\"calendar-items-row\"\n      >\n        <Button\n          v-for=\"item in row\"\n          class=\"calendar-item\"\n          :style=\"{\n            backgroundColor: item.bgColor,\n            color: item.fontColor\n          }\"\n          mode=\"empty\"\n          :disabled=\"item.isDisabled\"\n          @throttledClick=\"\n            select(item.year, item.month, item.day, item.isDisabled)\n          \"\n        >\n          {{ item.day }}\n        </Button>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n.calendar {\n  width: 100%;\n  box-sizing: border-box;\n  font-size: 1em;\n  line-height: 1;\n}\n.calendar > div {\n  padding: 0.8em 1em;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n}\n.calendar > .calendar-title {\n  font-size: 0.8em;\n}\n.calendar > .calendar-title > div:not(:nth-child(2)) {\n  padding: 0.3em 0.6em;\n}\n.calendar > .calendar-title > div:nth-child(2) {\n  font-weight: bold;\n  font-size: 1em;\n}\n.calendar > .calendar-year-month {\n  font-size: 0.8em;\n}\n.calendar > .calendar-year-month > div:nth-child(2) {\n  font-weight: bold;\n  font-size: 1em;\n}\n.icon-prev-month,\n.icon-next-month {\n  width: 1.8em;\n  border-radius: 1.8em;\n  overflow: hidden;\n  padding: 0.2em;\n}\n.icon-prev-month {\n  transform: rotate(180deg);\n}\n.calendar > .calendar-items {\n  flex-direction: column;\n  padding-top: 0.5em;\n}\n.calendar-items-row {\n  width: 100%;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  text-align: center;\n  font-size: 0.8em;\n}\n.calendar-items-row-week {\n  padding-bottom: 0.5em;\n  font-size: 0.7em;\n}\n.calendar-items-row-week > div {\n  flex: 1;\n}\n.calendar-item {\n  flex: 1;\n  margin-bottom: 0.3em;\n  padding: 0.6em 0;\n  border-radius: 0.4em;\n  font-weight: bold;\n}\n.calendar-item + .calendar-item {\n  margin-left: 0.3em;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from \"vue\";\nimport { mapState } from \"../../context/context\";\nimport Text from \"./Text.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Text },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    init?: string;\n    placeholder?: string;\n    rows?: number;\n    cols?: number;\n    maxlength?: number;\n    minlength?: nunber;\n    fontSize?: string;\n  }>(),\n  {\n    placeholder: \"\",\n    rows: 3,\n    maxlength: 200,\n    fontSize: \"14px\"\n  }\n);\n\nconst emits = defineEmits<{\n  (event: \"input\", text: string): void;\n  (event: \"yz-input\", text: string): void;\n}>();\n\nconst mappedState = mapState([\"color.panelPattern\", \"color.fontPattern\"]);\n\nconst text = ref(props.init || \"\");\n\nfunction focus() {}\n\nfunction blur() {}\n\nfunction input(e: Event) {\n  // 每次内容发生变化都会触发\n  text.value = (e.target as HTMLTextareaElement).value;\n  if (text.value) {\n    emits(\"input\", text.value);\n    emits(\"yz-input\", text.value);\n  }\n}\n\nfunction change(e: Event) {\n  // 只有在内容改变并且失去焦点时才触发\n}\n\nonMounted(() => {});\n\nonUnmounted(() => {});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"textarea\"\n    :style=\"{\n      backgroundColor: mappedState['color.panelPattern'].value,\n      borderRadius: '4px'\n    }\"\n  >\n    <textarea\n      class=\"textarea-raw\"\n      name=\"textarea-raw\"\n      :autocapitalize=\"false\"\n      autocomplete=\"off\"\n      autofocus=\"off\"\n      :disabled=\"false\"\n      :readonly=\"false\"\n      :required=\"false\"\n      :rows=\"props.rows\"\n      :cols=\"props.cols\"\n      :maxlength=\"props.maxlength\"\n      :minlength=\"props.minlength\"\n      :placeholder=\"props.placeholder\"\n      :style=\"{\n        fontSize: props.fontSize,\n        color: mappedState['color.fontPattern'].value,\n        border: '0px solid transparent'\n      }\"\n      @focus=\"focus\"\n      @blur=\"blur\"\n      @input=\"input\"\n      @change=\"change\"\n      >{{ text }}</textarea\n    >\n  </div>\n</template>\n\n<style scoped>\n.textarea {\n  position: relative;\n  box-sizing: border-box;\n  overflow: hidden;\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 10px;\n}\n.textarea textarea.textarea-raw {\n  flex: 1 1 auto;\n  width: 100%;\n  height: 100%;\n  line-height: 1.4;\n  display: block;\n  box-sizing: border-box;\n  position: relative;\n  background: transparent;\n  outline: none;\n  box-shadow: none;\n  resize: none; /* 控制 textarea 是否可调整大小 */\n}\n.textarea textarea.textarea-raw:invalid {\n}\n.textarea textarea.textarea-raw:valid {\n}\n\n.textarea textarea:-moz-placeholder,\n.textarea textarea:-ms-input-placeholder,\n.textarea textarea::-webkit-input-placeholder,\n.textarea textarea::placeholder {\n  color: var(--yz-gap-common, #cccccc);\n}\n</style>\n","<script setup lang=\"ts\">\nconst bg = `${import.meta.env.YZ_IMAGE_PATH}/bg-grid.gif`;\n</script>\n\n<template>\n  <div\n    class=\"bg-grid\"\n    :style=\"{\n      background: `url(${bg}) repeat scroll 0 0 white`\n    }\"\n  >\n    <slot></slot>\n  </div>\n</template>\n\n<style scoped>\n.bg-grid {\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, h } from \"vue\";\nimport { hasClass } from \"@zyzgroup/core-web\";\nimport Routes, { SupportedRouteEffect } from \"../base/Routes.vue\";\nimport Pop from \"../pop/Pop.vue\";\nimport Image from \"./Image.vue\";\nimport Pan from \"../base/Pan.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { Image, Routes },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    urls: string[];\n    effect?: SupportedRouteEffect;\n  }>(),\n  {\n    urls: () => [],\n    effect: \"moveToLeft\"\n  }\n);\n\nconst emits = defineEmits<{\n  // (event: \"click\"): void;\n}>();\n\nconst currentIndex = ref(0);\nfunction routeChangeEnd(fromPageIndex: number, toPageIndex: number) {\n  currentIndex.value = toPageIndex;\n}\n\nconst routesRef = ref();\n\nconst popOpen = () => {\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 panLeft = () => {\n  routesRef.value?.forward().catch((e) => {\n    // console.log(e);\n  });\n};\nconst panRight = () => {\n  routesRef.value?.back().catch((e) => {\n    // console.log(e);\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=\"full\"\n    @open=\"popOpen\"\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    <Pan\n      style=\"position: absolute; width: 100%; height: 100%; z-index: 97\"\n      @left=\"panLeft\"\n      @right=\"panRight\"\n    >\n      <Routes\n        ref=\"routesRef\"\n        :effect=\"props.effect\"\n        @routeChangeEnd=\"routeChangeEnd\"\n      />\n    </Pan>\n  </Pop>\n</template>\n","<script setup lang=\"tsx\">\nimport { Status } from \"../../context/context\";\n\nimport IconSuccessFullfillRound from \"./IconSuccessFullfillRound.vue\";\nimport IconErrorFullfillRound from \"./IconErrorFullfillRound.vue\";\nimport IconInfoFullfillRound from \"./IconInfoFullfillRound.vue\";\nimport IconWaitingFullfillRound from \"./IconWaitingFullfillRound.vue\";\n\nimport IconSuccessTransparentRound from \"./IconSuccessTransparentRound.vue\";\nimport IconErrorTransparentRound from \"./IconErrorTransparentRound.vue\";\nimport IconInfoTransparentRound from \"./IconInfoTransparentRound.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {\n    IconSuccessFullfillRound,\n    IconErrorFullfillRound,\n    IconInfoFullfillRound,\n    IconWaitingFullfillRound,\n\n    IconSuccessTransparentRound,\n    IconErrorTransparentRound,\n    IconInfoTransparentRound\n  },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    status?: Status;\n    mode?: \"fullfill\" | \"transparent\";\n  }>(),\n  {\n    status: \"success\",\n    mode: \"fullfill\"\n  }\n);\n</script>\n\n<template>\n  <div\n    :style=\"{\n      width: '100%',\n      height: '100%',\n      display: 'flex',\n      flexDirection: 'column',\n      justifyContent: 'center',\n      alignItems: 'center'\n    }\"\n  >\n    <IconSuccessFullfillRound\n      v-if=\"props.status == 'success' && props.mode == 'fullfill'\"\n    ></IconSuccessFullfillRound>\n    <IconErrorFullfillRound\n      v-if=\"props.status == 'error' && props.mode == 'fullfill'\"\n    ></IconErrorFullfillRound>\n    <IconInfoFullfillRound\n      v-if=\"props.status == 'info' && props.mode == 'fullfill'\"\n    ></IconInfoFullfillRound>\n    <IconWaitingFullfillRound\n      v-if=\"props.status == 'waiting' && props.mode == 'fullfill'\"\n    ></IconWaitingFullfillRound>\n\n    <IconSuccessTransparentRound\n      v-if=\"props.status == 'success' && props.mode == 'transparent'\"\n    ></IconSuccessTransparentRound>\n    <IconErrorTransparentRound\n      v-if=\"props.status == 'error' && props.mode == 'transparent'\"\n    ></IconErrorTransparentRound>\n    <IconInfoTransparentRound\n      v-if=\"props.status == 'info' && props.mode == 'transparent'\"\n    ></IconInfoTransparentRound>\n  </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { styles: true },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.primaryPattern\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.primaryPattern\"].value;\n});\n</script>\n\n<template>\n  <div class=\"icon-loading\">\n    <svg\n      viewBox=\"25 25 50 50\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      preserveAspectRatio=\"none\"\n      fill=\"none\"\n      :style=\"{\n        display: 'block',\n        transformOrigin: 'center'\n      }\"\n    >\n      <circle\n        cx=\"50\"\n        cy=\"50\"\n        r=\"20\"\n        :style=\"['stroke: ' + color]\"\n      />\n    </svg>\n  </div>\n</template>\n\n<style scoped>\n.icon-loading {\n  position: relative;\n  display: inline-flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 100%;\n}\n.icon-loading svg {\n  transform-origin: center;\n  animation: rotate 2s linear infinite;\n  width: 50%;\n  aspect-ratio: 1 / 1;\n}\n.icon-loading circle {\n  fill: none;\n  stroke-width: 3;\n  stroke-dasharray: 1, 200;\n  stroke-dashoffset: 0;\n  stroke-linecap: round;\n  animation: dash 1.5s ease-in-out infinite;\n}\n\n@keyframes rotate {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes dash {\n  0% {\n    stroke-dasharray: 1, 200;\n    stroke-dashoffset: 0;\n  }\n  50% {\n    stroke-dasharray: 90, 200;\n    stroke-dashoffset: -35px;\n  }\n  100% {\n    stroke-dashoffset: -125px;\n  }\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { __color } from \"@zyzgroup/core-web\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n    colorEnd?: string;\n    isGradient?: boolean;\n  }>(),\n  {\n    isGradient: false\n  }\n);\n\nconst mappedState = mapState([\"color.redCommon\", \"color.redGradientCommon\"]);\n\nconst color = ref();\nconst colorEnd = ref();\nconst oppositeColor = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.redCommon\"].value;\n  colorEnd.value =\n    props.colorEnd ||\n    (props.isGradient\n      ? mappedState[\"color.redGradientCommon\"].value\n      : color.value);\n  oppositeColor.value = __color.set(color.value).opposite(true).toString();\n});\n</script>\n\n<template>\n  <!-- 不设置 width height , 自适应父元素 -->\n  <!-- origin viewBox : x y width height : 0 0 24 24 , 目前 viewBox 是为了切除四周多余空白 -->\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=\"`icon_warn_${color}_${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=\"color\"\n        />\n        <stop\n          offset=\"1\"\n          :stop-color=\"colorEnd\"\n        />\n      </linearGradient>\n    </defs>\n    <!-- 背景圆 -->\n    <circle\n      cx=\"12\"\n      cy=\"12\"\n      r=\"8\"\n      :fill=\"`url(#icon_warn_${color}_${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=\"oppositeColor\"\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=\"oppositeColor\"\n    />\n  </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, watchEffect } from \"vue\";\nimport { mapState } from \"../../context/context\";\n\nconst props = withDefaults(\n  defineProps<{\n    color?: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.gapReverse\"]);\n\nconst color = ref();\n\nwatchEffect(() => {\n  color.value = props.color || mappedState[\"color.gapReverse\"].value;\n});\n</script>\n\n<template>\n  <!-- 不设置 width height , 自适应父元素 -->\n  <!-- origin viewBox : x y width height, 可重设 viewBox 切除四周多余空白 -->\n  <svg\n    viewBox=\"0 0 24 24\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    preserveAspectRatio=\"none\"\n    fill=\"none\"\n    :style=\"{\n      display: 'block',\n      transformOrigin: 'center'\n    }\"\n  >\n    <path\n      d=\"M9.71952 17.7046C9.32618 18.0985 8.68844 18.0985 8.2951 17.7046C7.90176 17.3108 7.90176 16.6723 8.2951 16.2785L14.2806 11.2869C14.6739 10.8931 15.3116 10.8931 15.705 11.2869C16.0983 11.6807 16.0983 12.3193 15.705 12.7131L9.71952 17.7046Z\"\n      :fill=\"color\"\n    />\n    <path\n      d=\"M8.29501 7.72152C7.90166 7.3277 7.90166 6.68919 8.29501 6.29537C8.68835 5.90154 9.32609 5.90154 9.71943 6.29537L15.705 11.2869C16.0983 11.6807 16.0983 12.3193 15.705 12.7131C15.3116 13.1069 14.6738 13.1069 14.2805 12.7131L8.29501 7.72152Z\"\n      :fill=\"color\"\n    />\n  </svg>\n</template>\n","<script lang=\"tsx\" setup>\nimport { mapState } from \"../../context/context\";\nimport { popTel } from \"../../globalTeleport\";\nimport ContentCenter from \"../layout/ContentCenter.vue\";\nimport IconPhone from \"../icon/IconPhone.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: { ContentCenter, IconPhone },\n  inheritAttrs: true\n});\n\nconst props = withDefaults(\n  defineProps<{\n    phone: string;\n  }>(),\n  {}\n);\n\nconst mappedState = mapState([\"color.fontTertiaryReverse\"]);\n</script>\n\n<template>\n  <ContentCenter\n    class=\"call-phone\"\n    direction=\"row\"\n    :style=\"{\n      color: mappedState['color.fontTertiaryReverse'].value\n    }\"\n    @click=\"() => popTel(props.phone)\"\n  >\n    <div>\n      <IconPhone></IconPhone>\n    </div>\n    <div>致电客服</div>\n  </ContentCenter>\n</template>\n\n<style scoped>\n.call-phone {\n  cursor: pointer;\n}\n.call-phone > div:nth-child(1) {\n  width: 24px;\n  margin-right: var(--yz-gap-horizontal, 5px);\n}\n.call-phone > div:nth-child(2) {\n  font-size: var(--yz-font-size-secondary, 14px);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\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    plateColor?:\n      | \"蓝牌\"\n      | \"b\"\n      | \"绿牌\"\n      | \"g\"\n      | \"黄牌\"\n      | \"y\"\n      | \"黄绿\"\n      | \"q\"\n      | \"黑牌\"\n      | \"d\"\n      | \"白牌\"\n      | \"w\"\n      | \"未知\"\n      | \"unknown\";\n    display?:\n      | \"leading-chinese\"\n      | \"leading-dot\"\n      | \"leading-plaintext\"\n      | \"bg-mockcar\"\n      | \"bg-simple\";\n    fontWeight?: \"bold\" | \"normal\";\n    plainTextGap?: string;\n  }>(),\n  {\n    display: \"leading-chinese\",\n    fontWeight: \"normal\",\n    plainTextGap: \"#e6e6e6\"\n  }\n);\n\nconst emits = defineEmits<{\n  // (event: \"void\"): void;\n}>();\n\nconst PLATE_COLORS: {\n  name: string;\n  leadingStyle: Record<string, string>;\n  bgMockCarStyle: Record<string, string>;\n  bgSimpleStyle: Record<string, string>;\n}[] = [\n  {\n    name: \"蓝牌\",\n    leadingStyle: {\n      background: \"#0078f0\",\n      color: \"#ffffff\"\n    },\n    bgMockCarStyle: {\n      background: \"#0078f0\",\n      color: \"#ffffff\"\n    },\n    bgSimpleStyle: {\n      background: \"#0078f0\",\n      color: \"#ffffff\"\n    }\n  },\n  {\n    // 绿牌一定是8位数\n    name: \"绿牌\",\n    leadingStyle: {\n      background: \"#00f08c\",\n      color: \"#000000\"\n    },\n    bgMockCarStyle: {\n      background: \"linear-gradient(180deg, #F0FFFA 0%, #00F08C 100%)\",\n      color: \"#000000\"\n    },\n    bgSimpleStyle: {\n      background: \"#00f08c\",\n      color: \"#000000\"\n    }\n  },\n  {\n    name: \"黄牌\",\n    leadingStyle: {\n      background: \"#fac800\",\n      color: \"#000000\"\n    },\n    bgMockCarStyle: {\n      background: \"#fac800\",\n      color: \"#000000\"\n    },\n    bgSimpleStyle: {\n      background: \"#fac800\",\n      color: \"#000000\"\n    }\n  },\n  {\n    // 黄绿车牌一定是8位数\n    name: \"黄绿\",\n    leadingStyle: {\n      background: \"linear-gradient(90deg, #fac800 51.5%, #00f08c 51.5%)\",\n      color: \"#000000\"\n    },\n    bgMockCarStyle: {\n      background: `linear-gradient(90deg, #fac800 37%, #00f08c 37%)`,\n      color: \"#000000\"\n    },\n    bgSimpleStyle: {\n      background: `linear-gradient(90deg, #fac800 36%, #00f08c 36%)`,\n      color: \"#000000\"\n    }\n  },\n  {\n    name: \"黑牌\",\n    leadingStyle: {\n      background: \"#222222\",\n      color: \"#ffffff\"\n    },\n    bgMockCarStyle: {\n      background: \"#222222\",\n      color: \"#ffffff\"\n    },\n    bgSimpleStyle: {\n      background: \"#222222\",\n      color: \"#ffffff\"\n    }\n  },\n  {\n    name: \"白牌\",\n    leadingStyle: {\n      background: \"#ffffff\",\n      color: \"#000000\",\n      border: \"1px solid #999999\"\n    },\n    bgMockCarStyle: {\n      background: \"#ffffff\",\n      color: \"#000000\"\n    },\n    bgSimpleStyle: {\n      background: \"#ffffff\",\n      color: \"#000000\",\n      border: \"1px solid #999999\"\n    }\n  },\n  {\n    name: \"未知\",\n    leadingStyle: {\n      background: \"#cccccc\",\n      color: \"#ffffff\"\n    },\n    bgMockCarStyle: {\n      background: \"#cccccc\",\n      color: \"#ffffff\"\n    },\n    bgSimpleStyle: {\n      background: \"rgba(255,255,255,0)\"\n      // color: \"default-parent-font-color\"\n    }\n  }\n];\n\nfunction getPlateColor(plate: string, color?: string) {\n  let name = \"未知\";\n  switch (color) {\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  }\n  if (plate == \"无牌车\") {\n    name = \"未知\";\n  }\n  const result = PLATE_COLORS.filter((item) => item.name === name);\n  return result[0];\n}\n\nconst plateColor = ref(getPlateColor(props.plate, props.plateColor || \"\"));\n\ndefineExpose({});\n</script>\n\n<template>\n  <div\n    class=\"plate-display\"\n    :class=\"display\"\n  >\n    <!-- leading-chinese -->\n    <div\n      v-if=\"\n        display == 'leading-chinese' &&\n        plateColor.name !== '未知' &&\n        plate !== '无牌车'\n      \"\n      class=\"leading\"\n      :style=\"plateColor.leadingStyle\"\n    >\n      {{ plateColor.name }}\n    </div>\n    <!-- leading-dot -->\n    <div\n      v-if=\"display == 'leading-dot' && plate !== '无牌车'\"\n      class=\"leading\"\n      :style=\"{\n        ...plateColor.leadingStyle,\n        width: '1em',\n        height: '1em'\n      }\"\n    ></div>\n    <!-- leading-plaintext -->\n    <div\n      v-if=\"\n        display == 'leading-plaintext' &&\n        plateColor.name !== '未知' &&\n        plate !== '无牌车'\n      \"\n      class=\"leading\"\n      :style=\"{\n        borderRight: `1px solid ${props.plainTextGap}`\n      }\"\n    >\n      {{ plateColor.name }}\n    </div>\n    <!-- bg-mockcar -->\n    <div\n      v-if=\"display == 'bg-mockcar'\"\n      class=\"text-wrap\"\n      :style=\"plateColor.bgMockCarStyle\"\n    >\n      <div\n        class=\"text\"\n        :style=\"{\n          border: `1px solid ${plateColor.bgMockCarStyle.color}`,\n          fontWeight: props.fontWeight\n        }\"\n      >\n        {{ plate }}\n      </div>\n    </div>\n    <!-- bg-simple -->\n    <div\n      v-else-if=\"display == 'bg-simple'\"\n      class=\"text-wrap\"\n      :style=\"plateColor.bgSimpleStyle\"\n    >\n      <div\n        class=\"text\"\n        :style=\"{\n          fontWeight: props.fontWeight\n        }\"\n      >\n        {{ plate }}\n      </div>\n    </div>\n    <!-- text -->\n    <div\n      v-else\n      class=\"text\"\n      :style=\"{ fontWeight: props.fontWeight }\"\n    >\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  line-height: 1;\n  font-size: 1em; /* default 1em = 16px */\n}\n.plate-display .leading {\n  box-sizing: border-box;\n  font-size: 0.875em; /* default 0.875em = 14px */\n  border-radius: 2px;\n  margin-right: 5px;\n}\n.plate-display.leading-chinese .leading {\n  padding: 2px 4px;\n}\n.plate-display.leading-dot .leading {\n  border-radius: 50%;\n}\n.plate-display.leading-plaintext .leading {\n  padding-right: 5px;\n  border-radius: 0;\n}\n.plate-display .text {\n  line-height: 1;\n  box-sizing: border-box;\n}\n.plate-display.bg-mockcar .text-wrap {\n  border-radius: 6px;\n}\n.plate-display.bg-simple .text-wrap {\n  border-radius: 2px;\n}\n.plate-display.bg-mockcar .text-wrap .text {\n  font-size: 1.5em; /* default 1.5em = 24px */\n  margin: 2px;\n  padding: 9px 10px;\n  border-radius: 4px;\n}\n.plate-display.bg-simple .text-wrap .text {\n  font-size: 0.875em; /* default 0.875em = 14px */\n  padding: 2px 4px;\n}\n</style>\n","<script setup>\nimport { ref, onMounted } from \"vue\";\nimport { requestAnimationFrameCycle } from \"@zyzgroup/core-web\";\nimport Stats from \"../../vendors/stats/stats.js\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n  customOptions: {},\n  inheritAttrs: true\n});\n\nconst el = ref();\n\nonMounted(() => {\n  const stats = new Stats();\n  stats.domElement.style.margin = \"1em\";\n  el.value.appendChild(stats.domElement);\n  requestAnimationFrameCycle(() => {\n    stats.update();\n    return true;\n  });\n});\n\ndefineExpose({});\n</script>\n\n<template>\n  <div ref=\"el\"></div>\n</template>\n","export * from \"./globalTeleport\";\n\nimport {\n  defineCustomElement,\n  createApp,\n  getCurrentInstance,\n  useShadowRoot\n} from \"vue\";\nimport { trimScopedCSS, isInArray } from \"@zyzgroup/core-common\";\nimport { useLoadLink } from \"@zyzgroup/core-web\";\n// import { teleport } from \"./globalTeleport\";\nimport router from \"./hooks/useVueRouter\";\n\n// import imagesrc from \"@root/assets/images/picture.jpg\";\n// import imagesrc from \"@/src/components/rate-xg/rate_xg_level_1.svg\";\n// const imagesrc = `${import.meta.env.YZ_IMAGE_PATH}/lb-robot.png`;\n// const imagesrc = `/public/images/lb-robot.png`; // 以 publicDir = /lib/ 为相对路径 ; 推荐使用这个，使 server-client 与 core-vue 共用 /lib/public/ 文件夹\n// const imagesrc = `/images/lb-robot.png`; // 以 publicDir = /lib/public 为相对路径\n\n// 示例 /lib/server-client/webcomponent.html\n\nimport ResizeObserver from \"./components/base/ResizeObserver.ce.vue\";\n\nimport Icon from \"./components/form/Icon.ce.vue\";\n// import SVGCleanLeft from \"./components/svg/SVGCleanLeft.ce.vue\";\n// import SVGCheck from \"./components/svg/SVGCheck.ce.vue\";\n// import SVGDown from \"./components/svg/SVGDown.ce.vue\";\n// import SVGDelete from \"./components/svg/SVGDelete.ce.vue\";\n// import SVGMaskNapkin from \"./components/svg/SVGMaskNapkin.ce.vue\";\n\nimport Loading1 from \"./components/loading/Loading1.ce.vue\";\nimport Loading2 from \"./components/loading/Loading2.ce.vue\";\nimport Loading3 from \"./components/loading/Loading3.ce.vue\";\nimport Loading4 from \"./components/loading/Loading4.ce.vue\";\nimport Loading5 from \"./components/loading/Loading5.ce.vue\";\nimport Loading6 from \"./components/loading/Loading6.ce.vue\";\nimport Loading7 from \"./components/loading/Loading7.ce.vue\";\n\nimport Loading9 from \"./components/loading/Loading9.ce.vue\";\nimport Loading10 from \"./components/loading/Loading10.ce.vue\";\nimport Loading11 from \"./components/loading/Loading11.ce.vue\";\n\nimport BooleanBox from \"./components/form/BooleanBox.ce.vue\";\nimport RadioGroup from \"./components/form/RadioGroup.ce.vue\";\nimport CheckboxGroup from \"./components/form/CheckboxGroup.ce.vue\";\nimport Switch from \"./components/form/Switch.ce.vue\";\nimport Select from \"./components/form/Select.ce.vue\";\nimport SelectAbsolute from \"./components/form/SelectAbsolute.ce.vue\";\nimport SlideLeftItem from \"./components/form/SlideLeftItem.ce.vue\";\nimport Status from \"./components/form/Status.ce.vue\";\n\nimport InputRange from \"./components/form/InputRange.ce.vue\";\nimport InputRangeBox from \"./components/form/InputRangeBox.ce.vue\";\nimport Tabs from \"./components/form/Tabs.ce.vue\";\n\nimport ProgressBar from \"./components/progress/ProgressBar.ce.vue\";\nimport PageVerticalScrollProgressBar from \"./components/progress/PageVerticalScrollProgressBar.ce.vue\";\nimport Video from \"./components/video/Video.ce.vue\";\n\n// import Routes from \"./components/base/Routes.ce.vue\";\n// import RoutesPage from \"./components/base/RoutesPage.ce.vue\";\nimport Image from \"./components/image/Image.ce.vue\";\n\nimport Accordion from \"./components/form/Accordion.ce.vue\";\nimport MapTianditu from \"./components/map/MapTianditu.ce.vue\";\nimport HandWritePanel from \"./components/hand/HandWritePanel.ce.vue\";\n\nimport PlateKeyboard from \"./components/keyboard/PlateKeyboard.ce.vue\";\nimport PlateMobile from \"./components/plate/PlateMobile.ce.vue\";\n\nimport NumberKeyboard from \"./components/keyboard/NumberKeyboard.ce.vue\";\n\nimport RingIndicator from \"./components/chat/RingIndicator.ce.vue\";\nimport RingText from \"./components/chat/RingText.ce.vue\";\nimport ClockFlipper from \"./components/clock/ClockFlipper.ce.vue\";\n\nimport EaseGraphDisplay from \"./components/animate/EaseGraphDisplay.ce.vue\";\nimport EaseGroupGraphDisplay from \"./components/animate/EaseGroupGraphDisplay.ce.vue\";\nimport InterpolationGraphDisplay from \"./components/animate/InterpolationGraphDisplay.ce.vue\";\nimport InterpolationGroupGraphDisplay from \"./components/animate/InterpolationGroupGraphDisplay.ce.vue\";\nimport CardFlip from \"./components/3d/CardFlip.ce.vue\";\nimport Cube from \"./components/3d/Cube.ce.vue\";\n\nimport Circle from \"./components/css/Circle.ce.vue\";\nimport BorderFocusText from \"./components/css/BorderFocusText.ce.vue\";\n\nimport ImageMask from \"./components/effect/ImageMask.ce.vue\";\nimport Slide from \"./components/effect/Slide.ce.vue\";\nimport SlideCorner from \"./components/effect/SlideCorner.ce.vue\";\nimport LineSingle from \"./components/effect/LineSingle.ce.vue\";\nimport LineDouble from \"./components/effect/LineDouble.ce.vue\";\nimport TextBackgroundClip from \"./components/effect/TextBackgroundClip.ce.vue\";\n\n// import ChartPie from \"./components/ChartPie.ce.vue\";\n// import Raphael from \"./components/Raphael.ce.vue\";\n// import RaphaelCurve from \"./components/RaphaelCurve.ce.vue\";\n// import RaphaelMetronome from \"./components/RaphaelMetronome.ce.vue\";\n// import RaphaelColorPicker from \"./components/RaphaelColorPicker.ce.vue\";\n// import RaphaelSolarSystem from \"./components/RaphaelSolarSystem.ce.vue\";\n\n/// original web components\nimport ResponsiveVideo from \"./webcomponents/ResponsiveVideo\";\n\n/////////////////////////////////////////////////////\n\nconst components = {};\n\n// xxx.ce.vue name is very important !!! 否则不会返回 styles !!!\nimport Xg from \"./Xg.ce.vue\";\ncomponents[\"Xg\"] = Xg;\n\n// xg\nimport Lot from \"./components/xg/Lot.ce.vue\";\ncomponents[\"Lot\"] = Lot;\nimport Footer from \"./components/xg/Footer.ce.vue\";\ncomponents[\"Footer\"] = Footer;\nimport Park from \"./components/xg/Park.ce.vue\";\ncomponents[\"Park\"] = Park;\nimport Result from \"./components/xg/Result.ce.vue\";\ncomponents[\"Result\"] = Result;\nimport Unlocking from \"./components/xg/Unlocking.ce.vue\";\ncomponents[\"Unlocking\"] = Unlocking;\nimport LoginInPhone from \"./components/xg/LoginInPhone.ce.vue\";\ncomponents[\"LoginInPhone\"] = LoginInPhone;\n\n// view\nimport ViewDocument from \"./components/view/ViewDocument.ce.vue\";\ncomponents[\"ViewDocument\"] = ViewDocument;\n\n// base\nimport Root from \"./components/base/Root.ce.vue\";\ncomponents[\"Root\"] = Root;\nimport Page from \"./components/base/Page.ce.vue\";\ncomponents[\"Page\"] = Page;\nimport List from \"./components/base/List.ce.vue\";\ncomponents[\"List\"] = List;\nimport Box from \"./components/base/Box.ce.vue\";\ncomponents[\"Box\"] = Box;\nimport CSSTransition from \"./components/base/CSSTransition.ce.vue\";\ncomponents[\"CSSTransition\"] = CSSTransition;\nimport CSSAnimation from \"./components/base/CSSAnimation.ce.vue\";\ncomponents[\"CSSAnimation\"] = CSSAnimation;\n\n// pop\nimport Overlay from \"./components/pop/Overlay.ce.vue\";\ncomponents[\"Overlay\"] = Overlay;\nimport Pop from \"./components/pop/Pop.ce.vue\";\ncomponents[\"Pop\"] = Pop;\nimport PopTel from \"./components/pop/PopTel.ce.vue\";\ncomponents[\"PopTel\"] = PopTel;\nimport PopCalendar from \"./components/pop/PopCalendar.ce.vue\";\ncomponents[\"PopCalendar\"] = PopCalendar;\nimport Popover from \"./components/pop/Popover.ce.vue\";\ncomponents[\"Popover\"] = Popover;\n\n// RateXg\nimport RateXg from \"./components/rate-xg/RateXg.ce.vue\";\ncomponents[\"RateXg\"] = RateXg;\nimport RateXgPanel from \"./components/rate-xg/RateXgPanel.ce.vue\";\ncomponents[\"RateXgPanel\"] = RateXgPanel;\nimport RateXgPop from \"./components/rate-xg/RateXgPop.ce.vue\";\ncomponents[\"RateXgPop\"] = RateXgPop;\n\n// dialog\nimport Dialog from \"./components/dialog/Dialog.ce.vue\";\ncomponents[\"Dialog\"] = Dialog;\nimport DialogLoading from \"./components/dialog/DialogLoading.ce.vue\";\ncomponents[\"DialogLoading\"] = DialogLoading;\nimport DialogToast from \"./components/dialog/DialogToast.ce.vue\";\ncomponents[\"DialogToast\"] = DialogToast;\n\n// layout\nimport LayoutCenter from \"./components/layout/LayoutCenter.ce.vue\";\ncomponents[\"LayoutCenter\"] = LayoutCenter;\nimport ContentCenter from \"./components/layout/ContentCenter.ce.vue\";\ncomponents[\"ContentCenter\"] = ContentCenter;\nimport ContentSpaceBetween from \"./components/layout/ContentSpaceBetween.ce.vue\";\ncomponents[\"ContentSpaceBetween\"] = ContentSpaceBetween;\nimport ContentTopCenter from \"./components/layout/ContentTopCenter.ce.vue\";\ncomponents[\"ContentTopCenter\"] = ContentTopCenter;\n\n// form\nimport Button from \"./components/form/Button.ce.vue\";\ncomponents[\"Button\"] = Button;\nimport Text from \"./components/form/Text.ce.vue\";\ncomponents[\"Text\"] = Text;\nimport Input from \"./components/form/Input.ce.vue\";\ncomponents[\"Input\"] = Input;\nimport InputFileDrop from \"./components/form/InputFileDrop.ce.vue\";\ncomponents[\"InputFileDrop\"] = InputFileDrop;\nimport ColorPicker from \"./components/form/ColorPicker.ce.vue\";\ncomponents[\"ColorPicker\"] = ColorPicker;\nimport Calendar from \"./components/form/Calendar.ce.vue\";\ncomponents[\"Calendar\"] = Calendar;\nimport Textarea from \"./components/form/Textarea.ce.vue\";\ncomponents[\"Textarea\"] = Textarea;\n\nimport BgGrid from \"./components/bg/grid/BgGrid.ce.vue\";\ncomponents[\"BgGrid\"] = BgGrid;\n\n// image\nimport ImageView from \"./components/image/ImageView.ce.vue\";\ncomponents[\"ImageView\"] = ImageView;\n\n// icon\nimport IconStatus from \"./components/icon/IconStatus.ce.vue\";\ncomponents[\"IconStatus\"] = IconStatus;\nimport IconLoading from \"./components/icon/IconLoading.ce.vue\";\ncomponents[\"IconLoading\"] = IconLoading;\nimport IconWarn from \"./components/icon/IconWarn.ce.vue\";\ncomponents[\"IconWarn\"] = IconWarn;\nimport IconArrowRight from \"./components/icon/IconArrowRight.ce.vue\";\ncomponents[\"IconArrowRight\"] = IconArrowRight;\n\n// widget\nimport CallPhone from \"./components/widget/CallPhone.ce.vue\";\ncomponents[\"CallPhone\"] = CallPhone;\n\n// plate\nimport PlateDisplay from \"./components/plate/PlateDisplay.ce.vue\";\ncomponents[\"PlateDisplay\"] = PlateDisplay;\n\n// fps\nimport FPSStats from \"./components/fps/FPSStats.ce.vue\";\ncomponents[\"FPSStats\"] = FPSStats;\n\n// success, but not good\n// YZCustomElement.linkChildrenComponentsStyles(\n//   [\"yz-color-picker\"],\n//   \"../lib/dist/ce/style.css\"\n// );\nexport function linkChildrenComponentsStyles(\n  customElementNames,\n  stylePath = \"style.css\"\n) {\n  for (let customElementName of customElementNames) {\n    const componentShadowDom =\n      document.querySelector(customElementName)?.shadowRoot;\n    if (componentShadowDom) {\n      useLoadLink(stylePath, componentShadowDom);\n    }\n  }\n}\n\n// 过时：不再使用 childComponents 顺序与组件中 customOptions 保持一致\nconst globalComponentRelation = {};\nconst globalComponentStyles = {};\nexport const mergeChildComponentCSS = (\n  parentComponent,\n  childComponents,\n  attatchToShadowRoot = true\n) => {\n  const parentComponentName = parentComponent.__name;\n  globalComponentRelation[parentComponentName] = [];\n  let styles = [...(parentComponent.styles || [])];\n  let index = 0;\n  for (let childComponentName in parentComponent.customOptions) {\n    globalComponentRelation[parentComponentName].push(childComponentName);\n    // const newScopeId = `[${parentComponent.customOptions[childComponentName].__scopeId}]`;\n    styles = [\n      ...(globalComponentRelation[childComponentName] || []).reduce(\n        (acc, name) => {\n          acc.push(\n            ...(globalComponentStyles[name] || []).map((style) =>\n              // trimScopedCSS(style, newScopeId)\n              trimScopedCSS(style)\n            )\n          );\n          return acc;\n        },\n        []\n      ),\n      ...(childComponents[index++]?.styles || []).map((style) =>\n        // trimScopedCSS(style, newScopeId)\n        trimScopedCSS(style)\n      ),\n      ...styles\n    ];\n    globalComponentStyles[childComponentName] = styles;\n  }\n  if (!attatchToShadowRoot) {\n    // if use Teleport\n    for (let styleContent of parentComponent.styles) {\n      const styleEl = document.createElement(\"style\");\n      styleEl.innerHTML = styleContent;\n      document.head.insertBefore(\n        styleEl,\n        document.head.childNodes[document.head.childNodes.length - 1]\n          .nextSibling\n      );\n    }\n  } else {\n    parentComponent.styles = styles;\n  }\n  globalComponentStyles[parentComponentName] = styles;\n  return parentComponent;\n};\n\n// 在用版本: 在组件中定义 customOptions = 有style的直接子代，间接后代不用写\n// self = {\n//   customOptions: { childComponent : 递归self },\n//   inheritAttrs: true,\n//   props: {clickedCoverColor: {default:'#000000'}}\n//   setup: Fn,\n//   __name: \"Page\",\n//   __scopeId: \"data-v-e9f31eef\"\n// }\n// self.customOptions 中的引入的组件是 X.vue 没有 styles ！: { 0: \".lot-main-bg[data-v-a461f1a6]{position:absolute;}\"}\nexport const collectChildComponentCSS = (\n  self,\n  isChild = false,\n  collected = [], // child component names\n  commonScopeId = \"\"\n) => {\n  const styles = [];\n  if (!self.__name) {\n    return styles;\n  }\n  // X.ce\n  const selfName = self.__name.split(\".\")?.[0] || \"\";\n  if (!isChild) {\n    commonScopeId = self.__scopeId || \"\";\n  }\n  // 自己的 styles 会被自动注入！\n  if (!isInArray(collected, selfName) && isChild) {\n    styles.push(\n      ...(self.styles || []).map((s) => {\n        // if (commonScopeId) {\n        //   return trimScopedCSS(s, `[${commonScopeId}]`);\n        // } else {\n        return trimScopedCSS(s);\n        // }\n      })\n    );\n    collected.push(selfName);\n  }\n  if (!self.customOptions) {\n    return styles;\n  }\n  for (let childComponentName in self.customOptions) {\n    const child = components[childComponentName];\n    if (!child) {\n      continue;\n    }\n    const childName = child.__name.split(\".\")?.[0] || \"\";\n    // 避免死循环\n    if (childName == selfName) {\n      continue;\n    }\n    // 递归调用\n    styles.push(\n      ...collectChildComponentCSS(child, true, collected, commonScopeId)\n    );\n  }\n  return styles;\n};\n\nfunction YZDefineCustomElement(\n  component,\n  { plugins = [] } = {\n    plugins: [router]\n  }\n) {\n  return defineCustomElement({\n    // render: () => h(component),\n    ...component, // <-- use all props from the original component (except setup)\n    // styles: component.styles,\n    exposed: component.exposed,\n    setup(props, { attrs, slots, emit, expose }) {\n      const app = createApp();\n      plugins.forEach(app.use);\n      const vm = getCurrentInstance();\n      Object.assign(vm.appContext, app._context);\n      Object.assign(vm.provides, app._context.provides);\n      // app.mixin({\n      //   mounted() {\n      //     this.__style = document.createElement(\"style\");\n      //     this.__style.innerText = collectChildComponentCSS(component)\n      //       .join(\"\")\n      //       .replace(/\\n/g, \"\");\n      //     nearestElement(this.$el)?.prepend(this.__style);\n      //     // console.log(vm, this, component);\n      //   },\n      //   unmounted() {\n      //     this.__style?.remove();\n      //   }\n      // });\n      const __style = document.createElement(\"style\");\n      __style.innerText = collectChildComponentCSS(component)\n        .join(\"\")\n        .replace(/\\n/g, \"\");\n      const shadowRoot = useShadowRoot();\n      shadowRoot.appendChild(__style);\n      return component.setup?.(props, { attrs, slots, emit, expose }); // <-- run initial setup if exists\n    }\n  });\n}\n\nexport const install = () => {\n  customElements.define(\n    \"yz-effect-css-transition\",\n    YZDefineCustomElement(CSSTransition)\n  );\n  customElements.define(\n    \"yz-effect-css-animation\",\n    YZDefineCustomElement(CSSAnimation)\n  );\n\n  customElements.define(\"yz-icon\", YZDefineCustomElement(Icon));\n\n  customElements.define(\"yz-loading-1\", YZDefineCustomElement(Loading1));\n  customElements.define(\"yz-loading-2\", YZDefineCustomElement(Loading2));\n  customElements.define(\"yz-loading-3\", YZDefineCustomElement(Loading3));\n  customElements.define(\"yz-loading-4\", YZDefineCustomElement(Loading4));\n  customElements.define(\"yz-loading-5\", YZDefineCustomElement(Loading5));\n  customElements.define(\"yz-loading-6\", YZDefineCustomElement(Loading6));\n  customElements.define(\"yz-loading-7\", YZDefineCustomElement(Loading7));\n  customElements.define(\"yz-loading-8\", YZDefineCustomElement(IconLoading));\n  customElements.define(\"yz-loading-9\", YZDefineCustomElement(Loading9));\n  customElements.define(\"yz-loading-10\", YZDefineCustomElement(Loading10));\n  customElements.define(\"yz-loading-11\", YZDefineCustomElement(Loading11));\n\n  customElements.define(\"yz-button\", YZDefineCustomElement(Button));\n  customElements.define(\"yz-boolean-box\", YZDefineCustomElement(BooleanBox));\n  customElements.define(\"yz-radio-group\", YZDefineCustomElement(RadioGroup));\n  customElements.define(\n    \"yz-checkbox-group\",\n    YZDefineCustomElement(CheckboxGroup)\n  );\n  customElements.define(\"yz-switch\", YZDefineCustomElement(Switch));\n  customElements.define(\"yz-select\", YZDefineCustomElement(Select));\n  customElements.define(\n    \"yz-select-absolute\",\n    YZDefineCustomElement(SelectAbsolute)\n  );\n  customElements.define(\n    \"yz-slide-left-item\",\n    YZDefineCustomElement(SlideLeftItem)\n  );\n  customElements.define(\"yz-status\", YZDefineCustomElement(Status));\n\n  customElements.define(\"yz-input\", YZDefineCustomElement(Input));\n  customElements.define(\"yz-input-range\", YZDefineCustomElement(InputRange));\n  customElements.define(\n    \"yz-input-range-box\",\n    YZDefineCustomElement(InputRangeBox)\n  );\n  customElements.define(\n    \"yz-input-file-drop\",\n    YZDefineCustomElement(InputFileDrop)\n  );\n\n  customElements.define(\"yz-textarea\", YZDefineCustomElement(Textarea));\n\n  customElements.define(\"yz-bg-grid\", YZDefineCustomElement(BgGrid));\n\n  customElements.define(\"yz-tabs\", YZDefineCustomElement(Tabs));\n\n  customElements.define(\"yz-progress-bar\", YZDefineCustomElement(ProgressBar));\n  customElements.define(\n    \"yz-page-vertical-scroll-progress-bar\",\n    YZDefineCustomElement(PageVerticalScrollProgressBar)\n  );\n  customElements.define(\"yz-video\", YZDefineCustomElement(Video));\n\n  customElements.define(\"yz-pop\", YZDefineCustomElement(Pop));\n  customElements.define(\"yz-pop-tel\", YZDefineCustomElement(PopTel));\n  customElements.define(\"yz-pop-calendar\", YZDefineCustomElement(PopCalendar));\n  customElements.define(\"yz-popover\", YZDefineCustomElement(Popover));\n  customElements.define(\"yz-color-picker\", YZDefineCustomElement(ColorPicker));\n  customElements.define(\"yz-pop-rate-xg\", YZDefineCustomElement(RateXgPop));\n\n  customElements.define(\"yz-dialog\", YZDefineCustomElement(Dialog));\n  customElements.define(\n    \"yz-dialog-loading\",\n    YZDefineCustomElement(DialogLoading)\n  );\n  customElements.define(\"yz-dialog-toast\", YZDefineCustomElement(DialogToast));\n\n  // mergeChildComponentCSS(RoutesPage, [CSSAnimation]);\n  // customElements.define(\"yz-page\", defineCustomElement(RoutesPage));\n  // mergeChildComponentCSS(Routes, [RoutesPage]);\n  // customElements.define(\"yz-routes\", defineCustomElement(Routes));\n  customElements.define(\"yz-image\", YZDefineCustomElement(Image));\n  customElements.define(\"yz-image-view\", YZDefineCustomElement(ImageView));\n\n  customElements.define(\"yz-accordion\", YZDefineCustomElement(Accordion));\n  customElements.define(\n    \"yz-resize-observer\",\n    YZDefineCustomElement(ResizeObserver)\n  );\n  customElements.define(\"yz-map-tianditu\", YZDefineCustomElement(MapTianditu));\n  customElements.define(\n    \"yz-hand-write-panel\",\n    YZDefineCustomElement(HandWritePanel)\n  );\n\n  customElements.define(\n    \"yz-plate-keyboard\",\n    YZDefineCustomElement(PlateKeyboard)\n  );\n  customElements.define(\"yz-plate-mobile\", YZDefineCustomElement(PlateMobile));\n  customElements.define(\n    \"yz-plate-display\",\n    YZDefineCustomElement(PlateDisplay)\n  );\n\n  customElements.define(\n    \"yz-number-keyboard\",\n    YZDefineCustomElement(NumberKeyboard)\n  );\n\n  customElements.define(\n    \"yz-chat-ring-indicator\",\n    YZDefineCustomElement(RingIndicator)\n  );\n  customElements.define(\"yz-chat-ring-text\", YZDefineCustomElement(RingText));\n  customElements.define(\n    \"yz-chat-clock-flipper\",\n    YZDefineCustomElement(ClockFlipper)\n  );\n\n  customElements.define(\"yz-fps-stats\", YZDefineCustomElement(FPSStats));\n  customElements.define(\n    \"yz-ease-graph-display\",\n    YZDefineCustomElement(EaseGraphDisplay)\n  );\n  customElements.define(\n    \"yz-ease-group-graph-display\",\n    YZDefineCustomElement(EaseGroupGraphDisplay)\n  );\n  customElements.define(\n    \"yz-interpolation-graph-display\",\n    YZDefineCustomElement(InterpolationGraphDisplay)\n  );\n  customElements.define(\n    \"yz-interpolation-group-graph-display\",\n    YZDefineCustomElement(InterpolationGroupGraphDisplay)\n  );\n  customElements.define(\"yz-card-flip\", YZDefineCustomElement(CardFlip));\n  customElements.define(\"yz-cube\", YZDefineCustomElement(Cube));\n\n  customElements.define(\n    \"yz-effect-image-mask\",\n    YZDefineCustomElement(ImageMask)\n  );\n  customElements.define(\"yz-effect-slide\", YZDefineCustomElement(Slide));\n  customElements.define(\n    \"yz-effect-slide-corner\",\n    YZDefineCustomElement(SlideCorner)\n  );\n  customElements.define(\n    \"yz-effect-line-single\",\n    YZDefineCustomElement(LineSingle)\n  );\n  customElements.define(\n    \"yz-effect-line-double\",\n    YZDefineCustomElement(LineDouble)\n  );\n  customElements.define(\"yz-effect-circle\", YZDefineCustomElement(Circle));\n  customElements.define(\n    \"yz-effect-text-background-clip\",\n    YZDefineCustomElement(TextBackgroundClip)\n  );\n  customElements.define(\n    \"yz-effect-border-focus-text\",\n    YZDefineCustomElement(BorderFocusText)\n  );\n\n  customElements.define(\"yz-xg\", YZDefineCustomElement(Xg));\n\n  // customElements.define(\"yz-chart-pie\", YZDefineCustomElement(ChartPie));\n  // customElements.define(\"yz-raphael\", YZDefineCustomElement(Raphael));\n  // customElements.define(\"yz-raphael-curve\", YZDefineCustomElement(RaphaelCurve));\n  // customElements.define(\"yz-raphael-metronome\", YZDefineCustomElement(RaphaelMetronome));\n  // customElements.define(\"yz-raphael-color-picker\", YZDefineCustomElement(RaphaelColorPicker));\n  // customElements.define(\"yz-raphael-solar-system\", YZDefineCustomElement(RaphaelSolarSystem));\n\n  ////////////////////////////// original web components //////////////////////////////\n  customElements.define(\"yz-responsive-video\", ResponsiveVideo);\n\n  ////////////////////////////// 可选 //////////////////////////////\n\n  ////////////////////////////// Inject Global Component //////////////////////////////\n  // const globalDialogToast = document.createElement(\"yz-dialog-toast\");\n  // globalDialogToast.id = \"globalDialogToast\";\n  // teleport.appendChild(globalDialogToast);\n\n  // const globalDialogLoading = document.createElement(\"yz-dialog-loading\");\n  // globalDialogLoading.id = \"globalDialogLoading\";\n  // teleport.appendChild(globalDialogLoading);\n\n  // const globalDialog = document.createElement(\"yz-dialog\");\n  // globalDialog.id = \"globalDialog\";\n  // teleport.appendChild(globalDialog);\n\n  // const globalPlateKeyboard = document.createElement(\"yz-plate-keyboard\");\n  // globalPlateKeyboard.id = \"globalPlateKeyboard\";\n  // teleport.appendChild(globalPlateKeyboard);\n\n  // const globalNumberKeyboard = document.createElement(\"yz-number-keyboard\");\n  // globalNumberKeyboard.id = \"globalNumberKeyboard\";\n  // teleport.appendChild(globalNumberKeyboard);\n};\n"],"names":["makeMap","str","map","key","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isRegExp","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","isBuiltInDirective","cacheStringFunction","fn","cache","camelizeRE","camelize","_","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","writable","looseToNumber","n","toNumber","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","HTML_TAGS","SVG_TAGS","MATH_TAGS","isHTMLTag","isSVGTag","isMathMLTag","isSpecialBooleanAttr","includeBooleanAttr","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","warn","msg","args","activeEffectScope","EffectScope","detached","l","currentEffectScope","fromParent","last","getCurrentScope","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","e","next","error","err","head","tail","prev","removeDep","refreshComputed","computed","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","reactiveReadArray","array","raw","toRaw","isShallow","toReactive","shallowReadArray","arrayInstrumentations","iterator","x","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self","method","wrapValue","iter","result","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","acc","isProxy","isNonTrackableKeys","builtInSymbols","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","readonly","reactive","MutableReactiveHandler","isOldValueReadonly","isReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","toReadonly","done","createReadonlyMethod","createInstrumentations","shallow","instrumentations","rawKey","has","callback","observed","get","checkIdentityKeys","hadItems","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","markRaw","r","ref","createRef","shallowRef","rawValue","RefImpl","useDirectValue","unref","ref2","shallowUnwrapHandlers","proxyRefs","objectWithRefs","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","cRef","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","failSilently","owner","cleanups","watch","source","cb","options","immediate","deep","once","scheduler","augmentJob","call","warnInvalidSource","s","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","stack","pushWarningContext","vnode","popWarningContext","isWarning","warn$1","instance","appWarnHandler","trace","getComponentTrace","callWithErrorHandling","a","_b","formatComponentName","warnArgs","formatTrace","currentVNode","normalizedStack","parentInstance","logs","entry","formatTraceEntry","recurseCount","postfix","isRoot","open","close","formatProps","props","keys","formatProp","ErrorTypeStrings$1","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","info","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","RECURSION_LIMIT","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","checkRecursiveUpdates","flushPostFlushCbs","deduped","b","check","count","componentName","getComponentName","isHmrUpdating","hmrDirtyComponents","tryWrap","createRecord","rerender","reload","registerHMR","record","unregisterHMR","initialDef","normalizeClassComponent","component","isClassComponent","newRender","newComp","updateComponentDef","instances","oldComp","dirtyInstances","devtools$1","buffer","devtoolsNotInstalled","emit$1","event","setDevtoolsHook$1","hook","newHook","devtoolsInitApp","app","version","Fragment","Text","Comment","Static","devtoolsUnmountApp","devtoolsComponentAdded","createDevtoolsComponentHook","devtoolsComponentUpdated","_devtoolsComponentRemoved","devtoolsComponentRemoved","devtoolsPerfStart","createDevtoolsPerformanceHook","devtoolsPerfEnd","time","devtoolsComponentEmit","params","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","validateDirectiveName","withDirectives","directives","getComponentPublicInstance","bindings","dir","modifiers","invokeDirectiveHook","prevVNode","oldBindings","binding","TeleportEndKey","isTeleport","setTransitionHooks","hooks","defineComponent","extraOptions","markAsyncBoundary","knownTemplateRefs","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","isAsyncWrapper","refValue","oldRef","refs","setupState","rawSetupState","canSetSetupRef","_isString","_isRef","doSet","existing","queuePostRenderEffect","isKeepAlive","KeepAlive","slots","getCurrentInstance","sharedContext","children","current","patch","move","_unmount","createElement","storageContainer","container","anchor","namespace","optimized","instance2","vnodeHook","invokeVNodeHook","invalidateMount","unmount","resetShapeFlag","pruneCache","filter","pruneCacheEntry","cached","isSameVNodeType","include","exclude","matches","pendingCacheKey","cacheSubtree","isSuspense","getInnerChild","onMounted","onUpdated","onBeforeUnmount","subTree","suspense","da","rawVNode","isVNode","comp","max","cachedVNode","cloneVNode","pattern","onActivated","registerKeepAliveHook","onDeactivated","currentInstance","wrappedHook","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","reset","setCurrentInstance","apiName","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","DIRECTIVES","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveAsset","resolveDirective","warnMissing","maybeSelfReference","Component","selfName","resolve","extra","registry","renderList","renderItem","sourceIsArray","sourceIsReactiveArray","renderSlot","fallback","noSlotted","openBlock","createBlock","createVNode","slot","validSlotContent","ensureValidVNode","slotKey","rendered","vnodes","child","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","instanceWatch","isReservedPrefix","hasSetupBinding","state","PublicInstanceProxyHandlers","data","accessCache","appContext","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","markAttrsAccessed","propsOptions","descriptor","createDevRenderContext","exposePropsOnRenderContext","exposeSetupStateOnRenderContext","normalizePropsOrEmits","createDuplicateChecker","applyOptions","publicThis","callHook","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","checkDuplicateProperties","resolveInjections","methodHandler","opt","set","createWatcher","provides","provide","registerLifecycleHook","register","_hook","exposed","normalizeInject","inject","h","createPathGetter","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","plugin","mixin","validateComponentName","directive","rootContainer","isHydrate","lastApp","currentApp","parentProvides","defaultValue","treatDefaultAsFactory","internalObjectProto","createInternalObject","isInternalObject","initProps","rawProps","isStateful","attrs","setFullProps","validateProps","isInHmrContext","updateProps","rawPrevProps","patchFlag","rawCurrentProps","hasAttrsChanged","propsToUpdate","isEmitListener","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","mixinPropsCache","normalizePropsOptions","hasExtends","extendProps","raw2","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","getType","ctor","resolvedValues","camelizePropsKey","validateProp","required","validator","skipCheck","isValid","types","expectedTypes","valid","expectedType","assertType","getInvalidTypeMessage","isSimpleType","t","message","receivedType","expectedValue","styleValue","receivedValue","isExplicable","isBoolean","elem","isInternalKey","normalizeSlotValue","normalizeVNode","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","supported","perf","startMeasure","isSupported","endMeasure","startTag","endTag","initFeatureFlags","needWarn","multi","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","n1","n2","parentComponent","slotScopeIds","getNextHostNode","shapeFlag","processText","processCommentNode","mountStaticNode","patchStaticNode","processFragment","processElement","processComponent","internals","removeStaticNode","moveStaticNode","nextSibling","mountElement","patchElement","transition","dirs","mountChildren","resolveChildrenNamespace","setScopeId","needCallTransitionHooks","needTransition","scopeId","filterSingleRoot","parentVNode","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","patchBlockChildren","traverseStaticChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","placeholder","shouldUpdateComponent","updateComponentPreRender","componentUpdateFn","bu","u","parent","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","renderComponentRoot","prevTree","updateHOCHostEl","bm","root","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","update","nextVNode","prevProps","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","leave","delayLeave","afterLeave","remove2","performLeave","doRemove","cacheIndex","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","ssrContextKey","useSSRContext","watchEffect","doWatch","flush","baseWatchOptions","runsImmediately","ssrCleanup","watchStopHandle","isPre","isFirstRun","watch$1","path","segments","getModelModifiers","modelName","emit","rawArgs","emitsOptions","lowerCaseEvent","handlerName","onceHandler","normalizeEmitsOptions","extendEmits","normalizedFromExtend","accessedAttrs","withProxy","renderCache","fallthroughAttrs","proxyToUse","thisProxy","render2","getFunctionalFallthrough","blockStack","setRoot","getChildRoot","filterModelListeners","allAttrs","eventAttrs","extraAttrs","isElementRoot","rawChildren","childRoot","dynamicIndex","updatedRoot","recurse","singleRoot","prevChildren","nextProps","nextChildren","emits","hasPropsChanged","dynamicProps","nextKeys","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","createVNodeWithArgsTransform","_createVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","cloned","guardReactiveProps","klass","style","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","deepCloneVNode","createTextVNode","text","flag","createStaticVNode","content","numberOfNodes","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","isBuiltInTag","isNativeTag","setupResult","setupStatefulComponent","names","isRuntimeOnly","setup","setupContext","createSetupContext","isAsyncSetup","resolvedResult","handleSetupResult","finishComponentSetup","compile","skipOptions","template","isCustomElement","compilerOptions","delimiters","componentCompilerOptions","finalCompilerOptions","attrsProxyHandlers","getSlotsProxy","exposedType","attrsProxy","slotsProxy","classifyRE","classify","includeInferred","match","inferFromRegistry","computed$1","propsOrChildren","initCustomFormatter","vueStyle","numberStyle","stringStyle","keywordStyle","formatter","genRefFlag","formatValue","formatInstance","blocks","createInstanceBlock","extractKeys","asRaw","Comp","extracted","isKeyOfType","opts","policy","tt","unsafeToTrustedHTML","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","node","selector","before","wrapper","vtcKey","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","vShow","setDisplay","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","cssVarText","semicolonRE","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","patchDOMProp","attrName","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","sanitizeEventValue","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","propName","originalStop","isNativeOn","patchProp","shouldSetAsProp","camelize$1","REMOVAL","defineCustomElement","_createApp","VueCustomElement","VueElement","initialProps","BaseClass","_def","_props","createApp","mutations","isAsync","styles","numberProps","asyncDef","declaredPropKeys","shouldReflect","shouldUpdate","baseProps","newStyles","dispatch","nonce","slotName","outlets","o","walker","oldStyles","useHost","caller","useShadowRoot","systemModifiers","modifierGuards","withModifiers","cacheKey","guard","rendererOptions","renderer","ensureRenderer","injectNativeTagCheck","injectCompilerOptionsCheck","mount","containerOrSelector","normalizeContainer","resolveRootNamespace","initDev","getElementAttrs","atts","att","fu","du","vt","mu","Vi","Pr","Tr","Zn","Es","pu","gu","Do","$i","qi","Mr","Ar","Wa","Mt","Bn","Jn","fe","Za","Ja","yu","Lo","Xs","pt","_u","Su","Cu","Eu","Pu","th","Tu","Mu","Au","Iu","Kn","ku","Du","eh","Lu","Xn","An","Ps","Ro","sh","nh","Ve","ih","Ou","zu","Nu","Qt","ji","N","Yu","In","Bu","Xu","Fu","Y","Hi","Ir","Uu","rh","ct","Gt","Vu","Zu","$u","Fn","Oo","zo","Dr","Ts","ef","sf","No","nf","Ws","jg","hh","ch","ae","lh","Lr","Rr","Wi","Or","Bo","Zi","Ji","ye","rf","Ci","Xo","zr","d","f","Fo","uh","fh","of","af","Uo","hf","Nr","ff","Ki","cf","Ei","lf","gn","uf","df","mf","pf","yf","Go","gf","Os","Te","wf","Vo","Pi","Yr","dh","Qn","bf","vf","_f","mh","Sf","ph","Cf","gh","yh","If","Br","ti","ee","ei","ms","Fs","kf","zt","xh","Df","Lf","wh","si","Rf","Dn","Of","zf","Nf","Yf","Bf","Xf","Ff","Uf","Gf","Vf","$f","qf","Zs","bh","Xe","vh","Qi","jf","Hf","Wf","Zf","Jf","Kf","Qf","td","ed","sd","nd","$o","_h","rd","od","ad","hd","cd","ld","ud","fd","Sh","dd","M","U","Ch","Eh","md","tr","Ph","qo","pd","gd","ni","S","jo","Xr","Th","yd","Mh","xd","Ho","Ah","wd","bd","vd","_d","Fr","er","Sd","Cd","Ed","Pd","St","Td","Md","Ad","Ih","Id","Ur","Gr","kd","Dd","Wo","vs","Ln","Ld","Rd","Ti","Od","zd","ii$1","ii","te","Mi","kh","ps","Dh","Nd","Yd","Bd","Un","Zo","Jo","Xd","Fd","Ud","Gd","Lh","Ko","$e","Rh","Vd","$d","w","qd","jd","Hd","Wd","Zd","Qo","ri","Oh","Jd","zh","Kd","ta","sr","Gn","Qd","tm","em","C","D","z","B","nr","M$1","ea","sm","Nh","Ai","sa","Yh","oi","na","nm","Rn","re","Vn$1","Vn","On","Vr","im","rm","om","ir","am","Bh","ht","ht$1","hm","Xh","cm","Fh","Uh","G","Gh","Vh","jh","y","E","P","I","R","$","V","et","yt","Et","J","Ht","Dt","Yt","Wt","L","k","F","H","Ct","Zt","rn","on","ut","se","st","bt","Qe","Re","Oe","be","A","ot","ze","fo","mo","an","Bt","Bl","pi","ln","gi","cn","Xl","Fl","po","ft","go","mi","hn","Ul","xo","yo","$l","Vl","Gl","ie","ql","jl","Hl","Wl","Zl","wo","bo","Jl","Kl","Ql","vo","tu","eu","su","nu","iu","_o","ru","ou","So","Co","Eo","Po","To","yi","Ne","xs","ws","un","hu","xi","au","Xt","ts","ve","ce","bs","ne","le","dn","Mo","Ao","Jt","mn","wi","bi","vi","_i","pn","ue","Si","cu","Io","ko","lu","uu","dm","rt","rr","he","mm","Hh","qe","we","Ie","as","pm","gm","W","$r","Ii","Us","gs","ia","Wh","Zh","Jh","or","Kh","Gs","zn","qr","us","ym","ki","xm","yn","wm","jr","Je","vm","nt","Sm","ra","_m","Cm","kt","lt","Em","Pm","ke","oa","aa","Hr","Tm","Mm","$n","Am","ha","Im","Wr","km","Qh","tc","Zr","Dm","Js","Lm","Jr","ec","sc","nc","ic","Rm","rc","oc","ac","hc","gt","Om","zm","Nm","cc","Ym","Bm","Xm","xe","lc","Kr","Fm","Um","Gm","Vm","uc","$m","qm","Ks","jm","$r$1","Zm","it","Jm","Km","Qr","Qm","tp","ep","sp","np","ip","rp","op","hp","ca","cp","fc","lp","la","up","fp","dp","ar","gp","mp","ua","pp","yp","dc","xp","wp","hi","bp","De","vp","pc","_p","Di","Sp","Ke","ci","Cp","eo","je","Ep","Pp","Tp","Z","X","oy","Fe","Vs","hr","xc","fa","ly","uy","Nn","cr","Ye","_e","lr","ur","wc","Op","zp","Li","Np","Qs$1","Qs","O","Yp","Ae","Pc","$t","Tc","Hp","Wp","Zp","Jp","Kp","Qp","my","ma","li$1","tn","Mc","ho","fr","Ac","co","Ic","gy","t0","dt","q","wt","$s","Ge","qt","He","no","jt","wa","Oi","ba","r0","Pt","wn","o0","a0","_s","zi","va","h0","dr","io","l0","f0","Ce","Is","Ns","Sa","m0","p0","Oc","mr","ks","bn","rs","Me","pr","g0","me","_t","y0","li","vn","oe","_n","Ca","Pa","Ta","Ma","en$1","en","Ni","Ot$1","Ot","ss","w0","b0","Lt","Ee","Sn","Kt","_t$1","v0","Aa","S0","Yc","_1","S1","ka","E0","T1","A1","Ds","k0","T0","$c","M0","K1","nx","D0","Da","qc","qs","jc","lx","di","Hc","O0","Wc","B0","ds","X0","La","ys","ro","F0","U0","xx","bx","G0","V0","$0","q0","Zc","Jc","Kc","Qc","Ix","kx","j0","Vx","$x","qx","jx","Hx","J0","K0","Q0","tg","ng","mt","ig","gr","Jx","rg","tw","og","sn","tl","Ra","aw","Oa","cg","nl","lg","xw","ug","fg","oo","dg","mg","xt","Ys","za","pg","gg","il","xr","Ls","En","We","rl","yg","xg","ol","wg","al","hl","bg","jn","cl","Na","Ya","ll","de","wr","vg","Yi","Bi","br","At$1","At","yr","Ba","_g","Tt","Pn","Sg","Cg","Cs","Xi","Xa$1","Hn$1","Hn","Xa","vr$1","Q$1","Q","vr","Nt","Sw","Cw","Ew","ul","Eg","Pw","Tn","Ft$1","Ft","os","ml","Pe","hs","cs","Fi","Pg","fl","dl","_r","Fa","Ua","Ga","Va","$a","Tw","ls","pl","Sr","gl","js","yl","Ze","xl","wl","bl","vl","_l","Sl","Cl","El","Pl","Tl","Wn","Ml","Rs","Al","Mg","Iw","qa","Ag","kw","Ig","ja","Ow","Dg","zw","Lg","Il","kl","Dl","Rg","Ll","Og","Fw","Uw","Ng","Yg","Be","Mn","Ol","Bg","ns","Bs","Gg","h2","m2","Z2","nb","ib","__props","__emit","color","visible","initParentOverflow","atomReadStyle","setParentOverflow","atomWriteStyle","__expose","It","x1","C1","qn","Ha","K","As","yc","Fc","Nc","Bc","zc","r2","pe","U2","B2","V2","G2","X2","fi","Vt","Rt","Ri","Se","Le","Yo","e0","xn","n0","s0","i0","c0","u0","d0","at","Er","kr","x0","A0","R0","_0","Cr","C0","P0","I0","L0","N0","T","z0","H0","W0","kn","Cn","Y0","Z0","nn","t1","r1","drawContext","resizeSubscription","tapSubscription","cancelAnimationFrame","isEmitMount","isShapesUpdated","newVal","oldVal","startAnimationFrame","box","requestAnimationFrameCycle","DrawContext","rect","tap$","getInnerText","useClipboard","isClicked","throttledClick","throttle","overlayRef","contentRef","contentStyle","status","isAnimating","boxWidth","boxHeight","boxResize","executeAnimate","boxStyle","isDirectionFromSupportAnimate","Timeline","Easing","onAnimateComplete","popOpen","popClose","clickOverlay","className","hasClass","XgParkLocationTypeEnum","Enum","XgParkModeTypeEnum","payload","parseTimeFromArray","formatDistance","parkReducer","immutable","action","nextState","lotReducer","XgBillTypeEnum","parseDate","formatMoney","formatDateTime","billReducer","XgOrderStatusEnum","formatTimeOverflowChinese","parseTimeFromDateDiff","orderReducer","XgPlateColorEnum","plateReducer","groupReducer","userReducer","resultReducer","themeReducer","getColors","colorPattern","getCSSVar","colors","colorReducer","openLog","WebMonitor","INIT_STATE","Context","combineReducers","applyMiddleware","exceptionLoggerMiddleware","executeTimeLoggerMiddleware","useLocalStorage","stateReactive","change","setNestedValue","mapState","mappedState","getNestedValue","getTheme$","theme","matchIconName","stringToIcon","validate","allowSimpleName","provider","colonSeparated","name2","prefix","validateIconName","dashSeparated","icon","defaultIconDimensions","defaultIconTransformations","defaultIconProps","defaultExtendedIconProps","mergeIconTransformations","obj1","obj2","rotate","mergeIconData","getIconsTree","icons","aliases","internalGetIconData","tree","currentProps","parse","parseIconSet","optionalPropertyDefaults","checkOptionalProps","defaults","quicklyValidateIconSet","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","defs","endEnd","mergeDefsAndContent","wrapSVGContent","body","split","isUnsetKeyword","iconToSVG","customisations","fullIcon","fullCustomisations","transformations","hFlip","vFlip","rotation","tempValue","customisationsWidth","customisationsHeight","width","height","attributes","setAttr","viewBox","regex","randomPrefix","counter","replaceIDs","ids","suffix","newID","escapedID","setAPIModule","getAPIModule","createAPIConfig","resources","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","fetchModule","calculateMaxLength","maxHostLength","url","shouldAbort","prepare","results","maxLength","length","getPath","fetchAPIModule","host","iconsList","urlParams","uri","defaultError","response","sortIcons","lastIcon","localStorage","list","removeCallback","storages","items","row","updateCallbacks","hasPending","idCounter","storeCallback","pendingSources","abort","listToIcons","defaultConfig","sendQuery","query","resourcesCount","startIndex","startTime","queriesSent","lastError","timer","doneCallbacks","resetTimer","subscribe","overwrite","getQueryStatus","failQuery","clearQueue","moduleResponse","isError","queued","execNext","resource","status2","initRedundancy","cfg","queries","queryCallback","doneCallback","query2","find","emptyCallback$1","redundancyCache","getRedundancyCache","redundancy","cachedReundancy","sendAPIQuery","send","api","moduleKey","emptyCallback","loadedNewIcons","checkIconNamesForAPI","invalid","parseLoaderResponse","checkMissing","pending","parsePossiblyAsyncResponse","loadNewIcons","icons2","customIconLoader","iconSet","loadIcons","cleanedIcons","sortedIcons","callCallback","newIcons","sources","lastProvider","lastPrefix","providerNewIcons","pendingQueue","mergeCustomisations","valueType","flipFromString","custom","flip","rotateFromString","units","value2","iconToHTML","renderAttribsHTML","attr","encodeSVGforURL","svg","svgToData","svgToURL","defaultExtendedIconCustomisations","svgDefaults","commonProps","monotoneProps","coloredProps","propsToAdd","propsToAddTo","customisationAliases","fixSize","componentProps","mode","propsStyle","customStyle","alias","renderAttribs","localCounter","useMask","html","_window","preload","providers","emptyIcon","Icon","onload","customise","customised","classes","transparentColor","fontSize","padding","borderRadius","opacity","parseNumber","moveCoverColor","clickedCoverColor","showCover","coverColor","backgroundColor","outlineColor","contentColor","changeColor","isThemeDark","panelReverse","panelCommon","gapReverse","gapCommon","fontReverse","fontCommon","primaryPattern","secondaryPattern","gradientPattern","foregroundPattern","currentTheme","nextTheme","mouseover","mouseleave","panelPattern","fontPattern","fontTertiaryPattern","panelPatternLighter","__color","startDateDetail","getDateDetail","endDateDetail","excludeDateDetails","initSelectedDateDetails","initDateDetail","selectDateDetail","getInitAvailableDateDetailInRange","showDateDetail","showYear","showMonth","showDateDetails","expandDateDetails","getCalendarPageItems","setCalendarStyle","currentDateDetail","available","getNthDay","pageItems","expandedPagesItems","rows","isInitSelected","isDisabled","flattenArray","prevMonth","getNthMonth","nextMonth","cancel","confirm","select","year","month","day","direction","shouldSelected","animationStart$","animationEnd$","getPredefinedStyle","defaultStyle","getBasicStyle","clear","forceDirection","predefinedStyle","duration","timingFunction","repeat","delay","transformOrigin","backfaceVisibility","parentOverflow","triggerReverse","safeAreaBottom","safeArea$","useSafeArea$","cssanimationstart","cssanimationend","colorEnd","oppositeColor","focus","blur","input","INIT","RATES","completeRate","sourceRate","PUBLIC_IMAGE_RATE_XG","level1","level2","level3","level4","level5","level1_selected","level2_selected","level3_selected","level4_selected","level5_selected","getImage","rate","selected","rawRate","changeRawRate","foundRate","isControlled","inner","selectRate","selectOption","option","rawOption","deleteArrayItem","inputDetail","popRef","foregroundReverse","cancelButtonMode","confirmButtonMode","showTopIcon","isBtnsVertical","btnCapsule","isTypeNormal","isTypeUnderline","isTypeJump","isTypeJumpEach","placeholders","placeholderJumpEachDuration","isFocus","errorText","inputText","getCEComponent","teleport","temp","div","uniqueKey","pop","directionFrom","Pop","popBottom","popTop","popLeft","popRight","popCenter","popAbsolute","popTel","tel","popCalendar","popRateXg","dialog","toast","loading","plateKeyboard","numberKeyboard","getDevtoolsGlobalHook","getTarget","isProxyAvailable","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","isPerformanceSupported","now","ApiProxy","defaultSettings","localSettingsSaveId","currentSettings","pluginId","_target","setupDevtoolsPlugin","pluginDescriptor","setupFn","enableProxy","isBrowser","isRouteComponent","isESModule","assign","applyToParams","newParams","noop","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","location","currentLocation","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","lastToSegment","position","toPosition","segment","START_LOCATION_NORMALIZED","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","foundEl","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","fromState","listener","pauseListeners","listen","teardown","beforeUnloadListener","history","destroy","buildState","back","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","push","currentState","createWebHistory","historyNavigation","historyListeners","triggerListeners","routerHistory","createWebHashHistory","isRouteLocation","route","isRouteName","NavigationFailureSymbol","NavigationFailureType","ErrorTypeMessages","stringifyRoute","createRouterError","isNavigationFailure","propertiesToLog","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","score","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","subPattern","stringify","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","parser","existingKeys","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","checkChildMissingNameWithEmptyPath","normalizedRecords","originalMatcher","normalizedRecord","parentPath","connectingSlash","checkMissingParamsInAbsolutePath","checkSameParams","isAliasRecord","checkSameNameAsAncestor","removeRoute","isMatchable","insertMatcher","matcherRef","getRoutes","invalidParams","paramName","paramsFromLocation","matched","parentMatcher","mergeMetaFields","clearRoutes","normalizeRecordProps","propsObject","meta","partialOptions","isSameParam","ancestor","lower","upper","mid","insertionAncestor","getInsertionAncestor","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","add","guardToPromiseFn","runWithContext","enterCallbackArray","reject","guardReturn","canOnlyBeCalledOnce","guardCall","resolvedValue","called","extractComponentsGuards","guardType","guards","rawComponent","promise","componentPromise","resolvedComponent","useLink","router","currentRoute","hasPrevious","previousTo","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","linkContextDevtools","preferSingleVNode","RouterLink","elClass","getLinkClass","outer","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","warnDeprecatedUsage","injectedRoute","routeToDisplay","injectedDepth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","currentName","ViewComponent","routePropsOption","routeProps","slotContent","RouterView","parentName","parentSubTreeType","formatRouteLocation","routeLocation","tooltip","copy","omit","formatDisplay","display","routerId","addDevtools","componentInstance","PINK_500","devtoolsData","label","ORANGE_400","textColor","RED_100","RED_700","LIME_500","BLUE_600","refreshRoutesView","routerInspectorId","navigationsLayerId","navigationId","failure","activeRoutesPayload","resetMatchStateOnRouteRecord","isRouteMatching","markRouteRecordActive","formatRouteRecordForInspector","formatRouteRecordMatcherForStateInspector","modifierForKey","fields","CYAN_400","DARK","tags","routeRecordId","EXTRACT_REGEXP_RE","childRoute","found","decodedPath","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","href","matcherLocation","targetParams","fullPath","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","installedApps","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","readyHandlers","errorListeners","ready","isReady","scrollBehavior","started","reactiveRoute","unmountApp","recordFrom","recordTo","useRouter","useRoute","_name","setWindowTitle","src","gotoPay","billsn","ordersn","showWarn","closeWarn","PLATE_COLORS","getPlateColor","plate","plateColor","lastResolve","shouldDeleteLastPage","currentPageIndex","nextPageIndex","pages","pageActions","pageElements","isValidPageIndex","pageIndex","isForward","_getPageEffect","currentPageEffect","nextPageEffect","getPageEffect","routeEffect","_getPageDuration","currentDuration","nextDuration","getPageDuration","_getPageDelay","getPageDelay","currentZIndex","nextZIndex","sameOnTop","nextOnTop","currentOnTop","setRunningStyle","runningEnd","renderPages","page","Page","_goto","_shouldDeleteLastPage","schedule","PromiseSchedule","resetPages","generateUUID","goto","isOpenPop","imageRef","containerWidth","containerHeight","sourceWidth","sourceHeight","showWidth","showHeight","finalX","finalY","finalWidth","finalHeight","popX","popY","popWidth","popHeight","outterResize","useLoadImage","setImageWidthHeight","innerResize","wrapImageRect","computeImageDisplayRect","viewportWidth","viewportHeight","getViewport","viewportImageRect","click","panLeft$","panRight$","currentIndex","routeChangeEnd","fromPageIndex","toPageIndex","routesRef","Image","panLeft","panRight","checkClose","desc","loadOrder","lottag","rs$","pageShow$","searchToRecord","tokenLocal","viewDocument","imageViewEl","viewPhotos","title","subtitle","parentStyle","childStyle","robot","robotAnimate","disabledCaptcha","disabledLogin","commonPhoneValidator","createCommonPhoneValidator","commonLengthValidator","createCommonLengthValidator","phone","inputPhone","checkBtnStatus","captcha","inputCaptcha","captchaInterval","captchaText","clickCaptcha","clickLogin","scrollTop","scrollHeight","clientHeight","isRefreshing","isLoading","isNoMore","refreshing","gotoShape","gotoShowcase","gotoXGLot","gotoRxmarbles","gotoList","Stats","showPanel","addPanel","panel","beginTime","prevTime","frames","fpsPanel","msPanel","memPanel","memory","min","round","PR","WIDTH","HEIGHT","TEXT_X","TEXT_Y","GRAPH_X","GRAPH_Y","GRAPH_WIDTH","GRAPH_HEIGHT","canvas","maxValue","stats","getStep","stepMap","getPercent","lerpMap","percent","maxDotNumber","injectStyle","SVGRawString","SVGShapes","svgStart","svgFrame","CanvasShapes","canvasStart","canvasFrame","linePicture","ShapeCombo","linePictureClone","strokeDashPath","Shape","totalLength","dasharray","dashoffset","changeDasharray","changeDashoffset","currentType","cases","marker","BallShape","markerClone","line","LineShape","lineClone","lineDegree","lineDegreeClone","p2","TreeShapeCombo","treeClone","treeRotate","treeRotateClone","RectShape","rect2","rectClone","rect2Clone","heart","HeartShape","Color","heartClone","heartVariant","HeartVariantShape","heartVariantClone","star","StarShape","starClone","fox","FoxShape","foxClone","rabbit","RabbitShape","rabbitClone","cross","CrossShape","crossClone","ship","ShipShapeCombo","shipClone","SegmentShapeCombo","segmentRotate","segmentClone","segmentRotateClone","slider","SliderShapeCombo","sliderClone","ellipse","EllipseShape","ellipseClone","TextShape","textClone","curve","CurveShape","curveClone","gap","shape1SVG","shape2SVG","shape1Canvas","shape2Canvas","points","PointsShape","psClone","point","arrow","ArrowShape","arrowClone","arrowLine","arrowLineClone","centerX","centerY","followMouseShape","dragBall","dragBallClone","centerSVG","centerCanvas","targetToAfterDropShape","ball1","ball2","animateShapes","numBalls","balls","ballRadius","ball","wall","sun","planet","radius","lines","handle","ballB","ballA","boxes","createBox","activeBox","springMassBalls","springMassLines","color0","numParticles","particle","fromX","fromY","toX","toY","alpha","distance","toDegree","angle","rosetta","trail","subPathD","ConfettiShapeCombo","fire","particleRatio","confetti","randomInt","confettiClone","deletes","redPoint","redPointClone","greenPoint","greenPointClone","boundingRect","boundingRectClone","prevColor","prevShape","t2","tGap","interpolationPathIndex1","interpolationPathIndex2","totalLengthOfPath1","totalLengthOfPath2","y1","x2","y2","after","shapes","polymorphTween","withinErrorMarginNumber","isEnter","mouseEnter$","mouseLeave$","barPercent","toValue","bar","getVerticalScrollTopPercentInPage","subscription","useScroll$","contentMaxHeight","computeHeight","toggleOpen","mouseSubscription","lerp","clientX","usePointerDownMovePoint$","mpg","zone","isOver","useDrop","files","realSelected","realDisabled","gapPattern","toggleValue","booleanBoxRefs","selectedIndex","selectedIndexes","findIndex","isChange","hW","styleSheet","perspectiveChange","pox","perspectiveOriginXChange","poy","perspectiveOriginYChange","cubeT","sideChange","side","cubeA","spinCubeChange","bv","backVisibleChange","buttonRef","absolute","buttonLeft","buttonTop","buttonWidth","contentWidth","contentHeight","contentResize","computeLocation","viewport","popover","rightColor","colorString","oppositeColorString","rightColorString","oppositeRightColorString","hTop","sLeft","vTop","rightColorHSV","colorHSV","hueFieldReady","setH","clamp","useCompatableDownMovePoint$","saturationFieldReady","setSV","PLATE_TYPES","currentTypeIndex","plates","focusIndex","isPlateKeyboardOpen","scrollTopWhenKeyboardShow","numbersRef","numbersTop","openPlateKeyboard","newPlates","flushArray","changePlateType","tapNumber","download","unsubscribe","DOMSVGUtil","isRunning","useVisible$","forceStart","position_prev","TWEEN","defaultEaseDuration","setChildRef","easeName","deferred","ScheduleDependOnResult","onMount","createTask","onComplete","selectedEaseName","onSelect","easeFunction","xA","yA","xB","yB","object","setChild","interpolationName","transitionStart$","transitionEnd$","resize","headerRef","headerTabRefs","setHeaderTabRefs","computeIndicatorLocation","indicatorX","indicatorY","indicatorWidth","parentRect","destRect","isSettled","changeTab","onPlay","video","DOMVideo","play","pause","useLoadScript","mapTDTJSSDK","mapWidth","mapHeight","rectStyle","dotStyle","loading3","cubeStyle","loading7","ringGap","ringWidth","containerRef","flipWidth","lineHeight","timeNext","lastTimeOutCount","starttime","copyTime","parseTime","flipAction","clearInterval","setIntervalAccurate","isTimeOut","currentCount","increaseTime","decreaseTime","setTimeoutAccurate","currentPercent","createRunCycleInMaxRate","ringIndicator","RingIndicatorShapeCombo","frame","widthObj","extractNumber","heightObj","paddingObj","roundLength","roundPositionStart","roundPositionEnd","enabled","rotateSvg","tapOutSide$","isShowDelete","oppositeDeleteColor","closetColor","borderColor","editable","newSelected","commonEmailValidator","createCommonEmailValidator","changeToThemeDark","setTheme","changeToThemeLight","imagesrc1","imagesrc2","imagesrc3","imagemarilyn","imagebike","imageViewMultiRef","openImageViewMulti","handRef","downloadHandWrite","selectedEaseFunction","superRainbowRef","superRainbowRef2","superRainbowEnter","superRainbowLeave","superRainbowEnter2","superRainbowLeave2","CSSAnimationRefs","animationEnter","animationLeave","borderFocusTextRef","circleRef","cssMouseEnter","cssMouseLeave","pageEffect","CSSAnimationNames","changePageEffect","pageRef","openPage","closePage","changeRouteEffect","routeChangeStart","totalPages","resetPage","LayoutCenter","pushPage","popPage","forwardPage","backPage","gotoPage","labels","PlateMobile","videosrc","videoRef","playVideo","pauseVideo","popBottomSample","popBottomFixedSample","popTopSample","popLeftSample","popRightSample","popCenterSample","popAbsoluteSample","openDialogSample","openDialogSample2","dialogToastSample","dialogToastSample2","dialogToastSample3","dialogToastSample4","openDialogLoadingSample","openDialogMiniSample","openDialogMiniSample2","openDialogRedSample","openDialogRedSample2","openDialogBlueSample","openDialogBlueSample2","openNumberKeyboardSample","openPopCalendarSample","clockFlipper","startClockFlipper","formatTime","pauseClockFlipper","resetRingIndicator","addRingIndicator","timestamp","blue","iconClick","openRated","hasLift","operate","init","liftedSource","extendStatics","__extends","__","__awaiter","_arguments","generator","adopt","fulfilled","step","rejected","__generator","verb","__values","__read","__spreadArray","pack","__await","__asyncGenerator","awaitReturn","resume","settle","fulfill","__asyncValues","isArrayLike","createErrorClass","createImpl","_super","ctorFunc","UnsubscriptionError","errors","arrRemove","Subscription","initialTeardown","e_1","e_2","_parentage","_parentage_1","_parentage_1_1","parent_1","e_1_1","initialFinalizer","_finalizers","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","empty","EMPTY_SUBSCRIPTION","isSubscription","timeoutProvider","timeout","delegate","reportUnhandledError","errorContext","Subscriber","destination","_this","EMPTY_OBSERVER","complete","SafeSubscriber","_bind","bind","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","defaultErrorHandler","observable","identity","pipe","pipeFromArray","Observable","operator","subscriber","isSubscriber","sink","promiseCtor","getPromiseCtor","Symbol_observable","operations","isObserver","isInteropObservable","isAsyncIterable","createInvalidObservableTypeError","getSymbolIterator","isIterable","Symbol_iterator","readableStreamLikeToAsyncGenerator","readableStream","reader","isReadableStreamLike","innerFrom","fromInteropObservable","fromArrayLike","fromPromise","fromAsyncIterable","fromIterable","fromReadableStreamLike","obs","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","work","intervalProvider","AsyncAction","_id","_scheduler","_delay","errored","errorValue","actions","dateTimestampProvider","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","asyncScheduler","async","isScheduler","isValidDate","dueTime","intervalOrScheduler","intervalDuration","due","auditTime","closingNotifier","currentBuffer","bufferCount","bufferSize","startBufferEvery","buffers","toEmit","buffers_1","buffers_1_1","toEmit_1","toEmit_1_1","e_3","buffers_2","buffers_2_1","e_3_1","popResultSelector","popScheduler","popNumber","executeSchedule","parentSubscription","scheduleSubscription","bufferTime","bufferTimeSpan","otherArgs","bufferCreationInterval","maxBufferSize","bufferRecords","restartOnEmit","subs","startBuffer","record_1","bufferTimeSubscriber","recordsCopy","recordsCopy_1","recordsCopy_1_1","bufferToggle","openings","closingSelector","openValue","closingSubscription","emitBuffer","bufferWhen","closingSubscriber","openBuffer","getPrototypeOf","objectProto","getKeys","argsArgArrayOrObject","first_1","isPOJO","observeOn","subscribeOn","scheduleObservable","schedulePromise","scheduleArray","scheduleIterable","scheduleAsyncIterable","scheduleReadableStreamLike","scheduled","project","callOrApply","mapOneOrManyArgs","createObject","combineLatest","resultSelector","observables","combineLatestInit","valueTransform","maybeSchedule","active","remainingFirstValues","_loop_1","hasFirstValue","execute","mergeInternals","concurrent","onBeforeNext","expand","innerSubScheduler","additionalFinalizer","checkComplete","outerNext","doInnerSub","innerComplete","bufferedValue","mergeMap","scanInternals","accumulator","seed","hasSeed","emitOnNext","emitBeforeComplete","hasState","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","ignoreElements","mapTo","delayWhen","delayDurationSelector","subscriptionDelay","distinct","keySelector","flushes","distinctKeys","distinctUntilChanged","comparator","defaultCompare","previousKey","first","currentKey","ArgumentOutOfRangeError","EmptyError","throwIfEmpty","errorFactory","defaultErrorFactory","elementAt","hasDefaultValue","every","exhaustMap","innerSub","exhaustAll","finalize","createFind","groupBy","elementOrOptions","connector","element","groups","notify","consumer","activeGroups","teardownAttempted","groupBySourceSubscriber","key_1","group_1","grouped","createGroupedObservable","durationSubscriber_1","groupSubject","groupSubscriber","isEmpty","takeLast","buffer_1","buffer_1_1","mergeScan","pairwise","hasPrev","BehaviorSubject","_value","ReplaySubject","_bufferSize","_windowTime","_timestampProvider","_buffer","_infiniteTimeWindow","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","resetOnRefCountZero","wrapperSource","connection","resetConnection","refCount","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","conn","dest","handleReset","onSubscriber","SequenceError","NotFoundError","single","singleValue","seenValue","skip","skipLast","skipCount","ring","valueIndex","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","timestampProvider","withLatestFrom","inputs","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$","examples","MAX_TIME","STROKE_WIDTH","COLORS","greyDark","bgWhite","DIMENS","fontBase","elevation1","timelineStyle","POSSIBLE_COLORS","sandboxStyle","getElevationPseudoElementStyle","dy","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","curry","inputToMarbles","getInput","getTime","lastInput","calculateNotificationHash","contentHash","getPercentageFn","parentElement","left","elementLeft","isHighlighted","isDraggable","mouseenter","mousedown","moveMarble","mouseUp","circleStyle","textStyle","inputtls","outputtl","timelines","timeline","nav","links","getElementPositionInPage","feRoute","useFeRoute","Lot","Park","Result","Unlocking","LoginInPhone","ViewDocument","ListDemo","Index","ShapeShowCase","ComponentShowCase","RxMarbles","savedPosition","router$1","routeChange$","createFromEventPattern","getCurrentRouteDetail","routeName","newName","foundRoute","propsConfig","_sfc_main","isIE","_openBlock","_createElementBlock","_hoisted_1","subcription","FIRST","NUMBER","ENGLISH","CHINESE","keyboardStep","platesChangeCallback","number","unactive","dotBefore","dotAfter","hasTapDot","clearArray","_computeResult","isNaN","_forward","_back","effectStatus","controller","getControllerResolve","isEmitReady","useElementEventBus","scale","commonStyle","beforeStyle","afterStyle","ResponsiveVideo","mqListener","prevSibling","currentTime","playState","videoLoaded","ResponsiveVideo$1","setRem","comboEffect","fromIndex","toIndex","forwardNewPageAction","newRoute","oldRoute","foundNewIndex","foundOldIndex","keepIndex","getDynamicZIndex","resultIndex","resetNewPage","dismissOldPage","pageOpenStart","pageOpenEnd","pageCloseStart","pageCloseEnd","date","Xg","Footer","Root","List","Box","CSSTransition","CSSAnimation","Overlay","PopTel","PopCalendar","Popover","RateXg","RateXgPanel","RateXgPop","Dialog","DialogLoading","DialogToast","ContentCenter","ContentSpaceBetween","ContentTopCenter","Button","Input","InputFileDrop","ColorPicker","Calendar","Textarea","BgGrid","ImageView","IconStatus","IconLoading","IconWarn","IconArrowRight","CallPhone","PlateDisplay","FPSStats","linkChildrenComponentsStyles","customElementNames","stylePath","customElementName","componentShadowDom","useLoadLink","globalComponentRelation","globalComponentStyles","mergeChildComponentCSS","childComponents","attatchToShadowRoot","parentComponentName","childComponentName","trimScopedCSS","styleContent","styleEl","collectChildComponentCSS","isChild","collected","commonScopeId","isInArray","YZDefineCustomElement","plugins","__style","install","Loading1","Loading2","Loading3","Loading4","Loading5","Loading6","Loading7","Loading9","Loading10","Loading11","BooleanBox","RadioGroup","CheckboxGroup","Switch","Select","SelectAbsolute","SlideLeftItem","Status","InputRange","InputRangeBox","Tabs","ProgressBar","PageVerticalScrollProgressBar","Video","Accordion","ResizeObserver","MapTianditu","HandWritePanel","PlateKeyboard","NumberKeyboard","RingIndicator","RingText","ClockFlipper","EaseGraphDisplay","EaseGroupGraphDisplay","InterpolationGraphDisplay","InterpolationGroupGraphDisplay","CardFlip","Cube","ImageMask","Slide","SlideCorner","LineSingle","LineDouble","Circle","TextBackgroundClip","BorderFocusText"],"mappings":"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CA,mBACA,oBACA,oBACA,qBACA,WACA,iBACA,kBACA,mBACA,oBACA,YACA,kBACA,mBACA,oBACA,qBACA,QACA,aACA,qBACA,oBACA,eACA,SACA,UACA,SACA,aACA,cACA,WACA,aACA,UACA,cACA,eACA,YACA,cACA,OACA,eACA,aACA,gBACA,cACA,cACA,YACA,iBACA,eACA,mBACA,iBACA,oBACA,kBACA,kBACA,gBACA,qBACA,mBACA,iBACA,eACA,iBACA,eACA,uBACA,qBACA,cACA,eACA,YACA,cACA,eACA,gBACA,aACA,eACA,uBACA,sBACA,qBACA,wBACA,iBACA,kBACA,gBACA,mBACA,kBACA,iBACA,gBACA,mBACA,kBACA,iBACA,gBACA,mBACA,mBACA,oBACA,kBACA,qBACA,oBACA,mBACA,qBACA,oBACA,mBACA,kBACA,sBACA,qBACA,oBACA,mBACA,qBACA,oBACA,mBACA,kBACA,sBACA,qBACA,wBACA,uBACA,yBACA,wBACA,uBACA,sBACA,0BACA,yBACA,iBACA,gBACA,iBACA,gBACA,eACA,kBACF,EAAG2rB,GAAMtzB,GAAM,CACb,IAAIxnB,EAAI,KACR,OAAQwnB,EAAC,CACP,IAAK,gBACHxnB,EAAI,MACJ,MACF,IAAK,MACHA,EAAI,iBACJ,MACF,IAAK,MACHA,EAAI,iBACJ,MACF,IAAK,MACHA,EAAI,uBACJ,MACF,IAAK,QACHA,EAAI,kBACJ,MACF,IAAK,MACHA,EAAI,gBACJ,MACF,IAAK,SACHA,EAAI,uCACJ,MACF,IAAK,gBACHA,EAAI,sCACJ,MACF,IAAK,QACHA,EAAI,YACJ,MACF,IAAK,OACHA,EAAI,aACJ,MACF,IAAK,SACHA,EAAI,sBACJ,MACF,IAAK,eACHA,EAAI,OACJ,MACF,IAAK,gBACHA,EAAI,OACF,IAAM,SAAS,UAAU,SAAS,KAAK,OAAO,UAAU,cAAc,EAAE,QAAQ86C,GAAG,QAAQ,EAAG,MAAM,EAAE,QACpG,yDACA,OACV,EAAY,GACZ,EACM,MACF,IAAK,cACH96C,EAAI,mCACJ,MACF,IAAK,eA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","x_google_ignoreList":[0,1,2,3,4,22,48,49,50,51,52,53,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,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282]}